1 DHCP
1.1前言
一个网络如果要正常运行,则网络中的主机必须要知道某些重要的网络参数,如IP地址、网络掩码、网关地址、DNS服务器地址等等,显然给每个主机手动配置这些参数是十分复杂的。为此,DHCP(dynamic host configuration protocol)被发布出来用于实现网络参数配置过程的自动化。
1.2 DHCP工作过程
DHCP采用了Client/Server模型;DHCP client需要从DHCP Server那里获得各种网络配置参数,这个过程是通过DHCP Client与DHCP Server直接交互各种DHCP消息来实现的。DHCP消息封装在UDP报文中,DHCP Server使用端口号67来接受DHCP消息,DHCP Client使用端口号68来接收DHCP消息。
如图所示,DHCP Client通过DHCP申请IP地址的过程分为四个阶段:
(1)发现阶段。DHCP client运行后,以广播的方式发送DHCP Discover消息
(2)提供阶段。DHCP Server收到DHCP Discover消息后,从IP地址池中选择一个IP地址,以单播的方式发送DHCP Offer消息给客户端
(3)请求阶段。DHCP Client收到DHCP offer消息后,以广播方式发送一个DHCP Request消息,这个DHCP request消息携带DHCP Server的标识,意图向Server请求获取offer中提供的IP地址。DHCP client如果收到多份offer信息,一般取第一个收到的,其他的Server收到Request广播后,会明白client拒绝了自己的offer,进而收回给予该Client的offer。
(4)确认阶段。DHCP收到Request消息后,向client发送单播DHCP Ack消息,确认获取IP地址失败,或者单播发送DHCP Nak消息,说明IP地址获取失败,需要重新获取IP地址。