了解DHCP服务
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
由internet工作任务小组设计开发
专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
使用DHCP的好处
减少管理员的工作量 (静态地址动态地址不要同时使用)
避免输入错误的可能
避免IP地址冲突 (冲突:掉网)
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
DHCP的分配方式
自动分配:分配到一个IP地址后永久使用
手动分配:由DHCP服务器管理员专门指定IP地址
(主要)动态分配:使用完后释放该IP,供其他客户机使用
DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分四个步骤 (服务有端口号)
1.客户端正网络中搜索服务器 DHCP客户端 → DHCP服务器
2.服务器向客户端响应服务 DHCP客户端 ← DHCP服务器
3.客户端向目标服务器发出服务请求 DHCP客户端 → DHCP服务器
4.服务器向客户端提供服务 DHCP客户端 ← DHCP服务器
附加:客户机端口号67 服务器端口号68 UDP协议
具体步骤如下:
一:客户机请求IP地址(此时为空)
1.当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
2.此时DHCP客户机以广播方式发生DHCP Discover发现信息来寻找DHCP服务器
二、服务器响应(通过端口号)
1.DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
2.如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播——则DHCP Offer消息
三.客户机选择IP地址(先到先得)
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
四.服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
5.重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
以下两种情况分别为:
1.IP地址没被分配出去的情况
2.IP地址被分配出去的情况
六:更新租约
1、当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
2、客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
使用DHCP动态配置主机地址
DHCP服务
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提高网络配置效率
可分配的地址信息主要包括
网卡的IP地址、子网掩码
对应的网关地址、广播地址
默认网关地址
DNS服务器地址
租期
安装dhcp服务
(属于udp服务)(可以利用rpm-q 来查看是否安装该命令)
[root@server1 ~]# yum -y install dhcp
将网卡转换为仅主机模式,以此来验证如下实验(之所以一开始网卡为NAT模式,是因为需要安装DHCP服务)
配置静态ip
[root@server1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改为
静态网卡配置完成后:
重启网卡:[root@server1 ~]# systemctl restart network
查看DHCP服务是否开启
[root@server1 ~]# netstat -nuap (此时发现dhcp的服务并没有开启)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:54960 0.0.0.0:* 602/avahi-daemon: r
udp 0 0 192.168.122.1:53 0.0.0.0:* 1570/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1570/dnsmasq
udp 0 0 0.0.0.0:5353 0.0.0.0:* 602/avahi-daemon: r
配置、启动DHCP服务
首先找到配置dhcp服务的路径:(qc)
[root@server1 ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd //服务启动脚本
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@server1 ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file. //DHCP服务的配置文件
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
[root@server1 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
//覆盖/etc/dhcp/dhcpd.conf 之前的配置文件
修改覆盖之后的配置文件
[root@sserver1 ~]# vim /etc/dhcp/dhcpd.conf
7 option domain-name "example.org"; //搜索域
8 option domain-name-servers ns1.example.org, ns2.example.org; //修改该行
8 option domain-name-servers 8.8.8.8; //分DNS地址
10 default-lease-time 600; //默认租约时间
14 #ddns-update-style none; //动态更新
附加:subnet划分出来的相当于子段落,其内部的功能只对该子段落,其他的段落无效,但是一开始的全局是针对所有内容都是有效的。如果,全局上面设置的租约时间与之段落内设置的租约时间相冲突,那么该之段落以半身的租约时间为准。(区域的优先级高于全局 )
27 subnet 10.152.187.0 netmask 255.255.255.0 {
修改该两行内容,服务无法启动,与该配置文件相关
28 }
27 subnet 20.0.0.0 netmask 255.255.255.0 {
28 range 20.0.0.5 20.0.0.100;
29 option routes 20.0.0.2;
30 }
range:地