什么是DHCP协议?
DHCP(Dynamic Host Configuration Protocol ,动态主机配置协议)通常被用在大型的局域网络中,主要作用是集中的管理,分配IP地址,使网络环境中的主机动态的获得IP地址,Gateway地址,DNS服务器地址等信息,并能够提升地址的使用率。

DHCP协议的工作过程?
    1.发现阶段:即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播的方式发送DHCP discover 发现信息来寻找DHCP服务器(因为DHCP服务器的IP地址对客户机来说是未知的),即向255.255.255.255发送特定的广播信息,网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会作出响应。
   2.提供阶段:即DHCP服务器提供IP地址的阶段。在网络中收到DHCP discover发现信息的DHCP服务器都会作出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置额DHCP offer提供信息。
  3.选择阶段:DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。  如果有多台DHCP服务器向DHCP客户机发来的DHCP offer,客户机只接收第一个收到的DHCP offer,然后它以广播的方式回答一个DHCP request请求信息。该信息中包含它所选定的DHCP服务器请求IP地址的内容。之所以要以广播的方式回答,是为了通知所有的DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。
    4.确认阶段:即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP resquest请求后,它便向DHCP客户机发送一个包含它提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,除了DHCP客户机所选择的服务器IP外,其他的DHCP服务器都将收回曾提供的IP地址
   5.重新登陆:以后DHCP客户机每次登陆网络时,就不需要再发送DHCP discover发现信息了。而是直接发送包含前一次所分配IP地址的DHCP resquest请求。当DHCP服务器收到这一信息后,它会尝试让客户机继续使用原来的IP并回答一个DHCP ACK确认信息,如果此IP地址无法分配个原来的DHCP客户机时(比如IP分配给其他DHCP客户机使用) ,则DHCP服务器给DHCP客户机回答一个DHCP NACK 否认消息,当原来的DHCP客户机收到此消息后,它就必须重新发送DHCP discover发现信息重新请求新的IP地址。
   6.更新租约:DHCP服务器向DHCP客户机出租的IP地址一般都由一个租借期限,期满后DHCP服务器会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送其更新租约的信息。
  
DHCP由三种机制分配IP地址:
 1.自动分配方式:DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器租用到IP地址,就可以永久使用该地址。
 2.动态分配方式:DHCP服务器给主机指定一个有时间限制的IP地址, 时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  3.手工分配方式:客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。 
三种地址分配方式中, 只有动态分配方式可以重复使用客户端不再需要的地址

DHCP服务配置

在开始之前注意selinux状态disable  防火墙关闭
[root@localhost ~]# yum install -y dhcp            ##安装服务
[root@localhost ~]# 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@localhost ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@localhost ~]# cp /usr/share/doc/dhc*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
  7 option domain-name "westos.com";           ##设置DNS域
  8 option domain-name-servers 172.25.8.10;    ##设置DNS服务器地址
  9 
 10 default-lease-time 600;                    ##设置默认租约时间,单位为秒
 11 max-lease-time 7200;                       ##设置最大租约时间,单位为秒
 14 #ddns-update-style none;                   ##设置dns的更新方式
 22 log-facility local7;                       ##指定日志设备
#####注释前面的subnet修改最后一个subnet声明
 27 #subnet 10.152.187.0 netmask 255.255.255.0 {    
 28 #}
 32 subnet 172.25.8.0 netmask 255.255.255.0 {  ##子网网段和子网掩码
 33   range 172.25.8.100 172.25.8.105;  ##设置ip地址池范围100-105
 34   option routers 172.25.8.254;      ##设置客户机的默认网关
 35 }
[root@localhost ~]# systemctl restart dhcpd  ##重启服务

服务器的配置到此结束,下面进行客户机的配置

[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
BOOTPROTO=dhcp    ###找到BOOTPROTO改称dhcp
[root@server ~]# systemctl restart network  ##重启网络

重启之前客户端的IP(ps:不要在意主机名)

重启之后IP变成了设置的范围最小值(100-105)中的100

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐