DHCP ——动态主机配置协议
目录
便于统一分发管理IP地址
DHCP:C/S架构,DHCP通过UDP协议通讯,DHCP客户端使用UDP68号端口,DHCP服务器使用67号端口
第一步:
当客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。
第二步:
DHCP服务器从尚未分配的IP地址池中挑选一个分配给客户端,向客户端发送一个包含分配的IP地址和其他设置的DHCP offer提供信息。
第三步:
客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。
(1)客户端初始化时,广播发送DHCP Request报文来回应服务器的DHCP offer报文
(2)客户端重启初始后,广播发送DCHP Request报文来确认先前被分配的IP地址等配置信息。
(3)当客户端已知和某个IP地址绑定后,单播发送DHCP Request报文来延长IP地址租期
第四步:
服务器收到request报文以后,确认地址池中的这个地址没有被分配,如果没有被分配就回复ACK报文,如果被分配了 ,就会回复DHCP-NAK报文,告诉CLient 地址已经被分配了。
第五步:
当客户端收到DHCP服务器分配的地址后,会向这个广播域内发送一个免费ARP的请求,如果没有人响应这个请求,客户端才正式使用这个地址,如果有人回应的话,会返回一个DHCP-Decline报文,要求服务器重新获取地址。
第六步:
当客户端的IP租期到达一半的时候,会单播发送DHCP-Request报文,请求服务器更新租期,服务器收到以后,如果可以继续使用该IP地址的话,会响应客户端 DHCP-ACK,如果该IP不能继续分配,则响应客户端DHCP-NAK。此时客户端会在租期的75%再次询问DHCP服务器进行续约,如果该IP地址可用则回复ACK,反则回复NAK。
DHCP中的报文类型:
DHCP DISCOVER:客户端开始DHCP过程发送的包,是DHCP协议的开始。以广播的方式发送DHCP DISCOVER报文。
来寻找局域网中的DHCP服务器。
源地址为0.0.0.0 目的地址为255.255.255.255, 网络上所有支持TCP/IP的主机都会收到该DHCP DISCOVER
报文,但是只有DHCP Server会响应该报文。
DHCP OFFER:服务器接收到DHCP DISCOVER之后做出的响应,通过解析报文,查询dhcpd.conf配置文件,如果在地址池中
能找到合适的IP地址,DHCP Server会给DHCP Client发送Offer报文。它包括了给予客户端的IP(yiaddr)、客户端的
MAC地址、租约过期时间、服务器的识别符自己其他信息。
**如果存在多个DHCP服务器,依然会发送多个DHCP OFFER报文。**
DHCP REQUEST:客户端对于服务器发出的DHCP OFFER所做出的响应,在续约租期的时候同样会使用。
Client根据先收到的Offer报文来决定使用哪个服务器提供的DHCP的地址。(优先先到的offer报文)
然后根据这个Offer提供的地址信息,发送Request报文请求。
a.客户端初始化时,发送广播的DHCP Request报文来回应服务器的DHCP Offer报文
b.客户端重启初始化后,发送广播的DHCP的DHCP Request报文来确认先前被分配的IP地址等配置信息。
c.当客户端已知和某个IP地址绑定后,发送单播的DHCP Request报文来延长IP地址租期。
DHCP ACK:服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到
这个报文之后才会确认分配给他的IP和其他信息可以被允许使用。
服务器接收到request报文以后,确认地址池中的这个地址没有被分配,如果没有被分配就回复ACK报文,如果被
分配了,就会回复DHCP-NAK报文,告诉Client地址已经被分配了。
DHCP NAK:DHCP ACK的相反报文,表示服务器拒绝了客户端的请求。
当Client收到服务器分配到的地址后,会向这个广播域内发送一个免费的ARP的请求,如果没有人响应这个请求,Client才正式
使用这个IP,如果有人回应的话,会返回一个DHCP-DECLINE报文,要求客户端重新获取IP。
当Client的IP租期到达一半时,会单播发送DHCP-REQUEST报文,请求服务器更新租期,服务器收到以后,如果可以继续使用IP
地址的话,会响应Client DHCP-ACK,如果该IP不能继续分配,则响应Client DHCP-NAK。此时Client会在租期的75%再次询问
server进行续约,如果该IP地址可用则回复ACK,反则回复NAK。
如果客户端重启后,会自动发送DHCP REQUEST广播给DHCP服务器以便请求继续租用原来使用的IP地址,如果服务器收到这个消
息,确认客户端可以使用该地址,则回答一个DHCP ACK确认消息,如果此IP地址已经无法再分配,则返回一个DHCP NAK否认信
息,客户端收到这个信息以后,则必须重新发送DHCP Discover消息获取新的地址。 若没有得到响应,则尝试与网关通信,如果
通信正常,这个租期还没到期的话,则可以继续使用,但是不能和网关通信的话,则会获得169.254.0.1~169.254.255.254之间的IP
地址,然后每隔5min尝试更新租约。
DHCP RELEASE:一般出现在客户端关机、下线等情况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址。
当客户端可通过DHCP RELEASE报文主动释放服务器分配给它的地址,当服务器收到此报文后,可将这个IP地址分
配给其他客户端。
DHCP INFORM:客户端发出的服务器请求一些信息的报文。如DNS, 网关。
DHCP DECLINE: 当客户端发现服务器分配的IP地址无法使用(IP地址冲突),将发出此报文,通知服务器禁止使用该IP地址。