DHCP 协议

发布时间: 更新时间: 总字数:942 阅读时间:2m 作者: IP上海 分享 网址

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是一个局域网的网络协议,由 DHCP Server 控制一段IP地址范围,客户机请求 服务器 就可以自动获得服务器分配的 IP地址子网掩码

DHCP

DHCP 使用 UDP 报文,交互过程:

DHCP session
  1. Discover 阶段:当 Client(客户机) 启动时,若是配置的 DHCP 方式,由于没有 ip 地址,会自动发送 discover 广播报文(携带MAC地址),等待 DHCP Server 响应的报文,示例:I’m a client at MAC address 00:0c:29:4a:1a:f0, I need an IP address
  2. Offer 阶段: 当 DHCP Server 监听到 Client 发来的 DHCP discover 广播报文 后,会检查 租约表,将地址范围内未租出,且空闲IP(顺序分配),连同租约期限等信息封装为 offer 报文,广播回应给 DHCP Client,示例:OK 00:0c:29:4a:1a:f0, I’m offering IP address 172.20.0.128
  3. 接受 IP 租约阶段:如果 Client 收到局域网内多台 DHCP Server 的响应,只会挑选最先抵达的 DHCP Offer 报文 进行解析,然后发送 arp 报文,检查该 IP 在局域网内是否已经被其他主机占用
    • 如果发现该 IP 已被使用,Client 会发送一个 DHCP Decline 报文DHCP Server ,拒绝接受它的 DHCP Offer,并重新发送 Discover报文
    • 如果检查该 IP 未被使用,则会广播一个 Request 报文,告诉所有服务器自己接受了哪台 DHCP Server 的 IP 地址。示例:Server 172.20.0.2, I would like to have IP 172.20.0.128
  4. 确认阶段: 当 DHCP Server 收到 Client 回答的 Request 请求报文 后,向 Client 发送一个包含它提供的 IP 和其他设置的 DHCP ACK 确认报文,告诉 Client IP 地址,Client 在收到 ACK 报文之后绑定 IP 到网卡,并使用该 IP 与之前主机通信。示例:OK 00:0c:29:4a:1a:f0, IP 172.20.0.128 is yours
  5. 重新开机时:当 Client 重新登陆网络时,会直接广播发送前一次分配 IP 地址的Request 请求
    • DHCP Server 收到信息之后,会尝试让 Client 使用原来的IP地址,并回答一个 DHCP ACK 确认信息
    • 如果该 IP 无法再次分配给 Client,则 DHCP Server 会回答一个 DHCP NAK否认信息给Client,当 Client 收到否认信息后,会重新发送 DHCP discover报文 来重新获取新的 IP 地址
  6. 更新租约:通过 DHCP 方式获取到的 IP 地址都有一个租约,租约过期后,DHCP Server 将回收该 IP 地址。所以如果 DHCP Client 想继续使用该 IP 地址,则必须请求 DHCP Server 更新器租约
    • 在租约期限一半(租约的50%)的时候也会发出 DHCP Request,如果此时得不到 DHCP ACK 确认报文Client 还可以继续使用该 IP
    • 在剩下的租约期限的一半(租约的75%)的时候,若还得不到 DHCP ACK 确认报文,在租约到期之后 Client 需重新发送 DHCP discover报文(一般虚机突然没有 IP 地址就是由于该问题引起,即 DHCP Server 因故障无响应)

参考

  1. https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数