6.3 动态主机配置协议DHCP
实际的问题:如果一个局域网中多个主机,如何配置IP,才能使得客户主机正常访问服务器?可以手动配置,但是配置比较麻烦。DHCP 动态主机配置协议就是自动配置 IP 的服务。在局域网中增加一个 DHCP 服务器提供服务。客户向 DHCP 服务器请求自己的网络配置信息即可。
DHCP 提供了即插即用联网:允许一台计算机,加入新网络时,可自动获取IP地址等网络配置信息,而不是上手动参与(Dynamic Host Configuration Protocol)。
DHCP 报文在运输层封装成 UDP 用户数据报。客户端通过 UDP 68 端口发送报文,服务器通过 UDP 67 端口接收报文。
获取 IP 阶段
1、客户端发送 DISCOVER 报文(广播发送,源地址 0.0.0.0 目的地址 255.255.255.255)
2、服务器接收报文,并发出响应 OFFER 报文(源地址是服务器的地址,目的地址是 255.255.255.255)包括事务ID和配置信息(IP地址,子网掩码,地址租期,默认网关,DNS服务器信息)DHCP服务器从自己的 IP 地址池中选择待租用给主机的 IP 地址。使用 ARP 确保选中的 IP 没有被其他主机占用。
3、客户端可能收到多个 DHCP 服务器发送的 OFFER 报文,选择先到的报文。
4、客户端继续广播 REQUEST 报文(包括事务ID,DHCP客户端的MAC地址,接收租约中的IP地址,提供租约的DHCP服务器端的IP地址)源地址 0.0.0.0 目的地址 255.255.255.255
4、服务器收到报文后,发送 ACK 报文。客户端接收后,使用 ARP 检测分配的 IP 地址是否被网络的其他主机占用。如果占用,给 DHCP 发送 DECLINE 撤销报文,然后从第一步重新发送 DISCOVER 报文。如果没有占用,可以使用这个 IP 地址和其他主机进行通信了。
IP 续约阶段(当0.5倍租用期到了)
1、客户端给服务器发送 REQUEST 报文(源地址是租用的IP地址,目的地址是 服务器的地址)
2、服务器接收到报文后:如果可以续约,发出 ACK 报文(源地址是服务器地址,目的地址是租用的 IP 地址),得到新的租用期;如果不可以续约,发出 NACK 报文,客户端必须停止使用之前租用到的 IP 地址,重新发送 DISCOVER 报文获取IP。
3、如果服务器无响应,0.875倍租用期到达后,客户端继续发送 REQUEST 报文,如果继续无响应,在租用期到达后停止使用 IP 并重新发送 DISCOVER 报文。
客户端主动解除IP续约
1、客户端向 DHCP 服务器发送 RELEASE 释放报文(源地址0.0.0.0,目标地址 255.255.255.255)
路由器中继问题:如果一个主机在路由器后面,路由器外面配置 DHCP 服务器,那么这个主机不能自动获取 IP 地址。主机会发出 DISCOVER 报文,但是会被路由器丢弃,服务器无法获取到。所以路由器需要配置 DHCP 服务器的地址并成为中继代理,这样就可以获取 IP 和网络配置信息了。
实际上,我们不需要,也不愿意在每一个网络上都配置 DHCP 服务器,所以每一个网络至少设置一个 DHCP 中继代理(路由器),作为各个网络中计算机和 DHCP 服务器的桥梁。
|