DHCP原理和配置
1.DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议。DHCP采用C/S(Client/Server,客户端/服务器)通信模式,协议报文基于UDP的方式进行交互,采用67(DHCP服务器)和68(DHCP客户端)两个端口号:
正常工作时由客户端向服务器提出配置申请。
服务器返回为客户端分配的IP地址等相应的配置信息
2.DHCP客户端首次接入网络的工作原理
1.发现阶段,即DHCP客户端发现DHCP服务器的阶段。
DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。DHCP DISCOVER报文中携带了客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息。
2.提供阶段,即DHCP服务器提供网络配置信息的阶段。
服务器接收到DHCP DISCOVER报文后,选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。
3.选择阶段,即DHCP客户端选择IP地址的阶段。
如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。
4.确认阶段,即DHCP服务器确认所分配IP地址的阶段。
DHCP客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IP地址。

3.DHCP报文格式
4.DHCP的消息类型
DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型。如下图所示,当Type=53,Length=1,Value取值从01到08分别表示不同的DHCP报文类型。
1-DHCP DISCOVER
2-DHCP OFFER
3-DHCP REQUEST
4-DHCP DECLINE
5-DHCP ACK
6-DHCP NAK
7-DHCP RELEASE
8-DHCP INFORM
5.Option 43应用举例
在WLAN三层组网中,当AP上线时,需要获取AC的IP地址,并与AC之间建立CAPWAP隧道。
AP的IP地址通过DHCP服务器分配,当AC的IP地址与AP不在同一个广播域,AP无法通过广播的方式获取AC的IP地址,则CAPWAP隧道无法建立成功。
AP通过DHCP报文中的Option 43选项字段获取AC的IP地址,当AP获取AC的IP地址后,可以进一步完成CAPWAP隧道的建立,从而实现AP上线。
AC的IP地址是10.23.101.2,AP所在网络的网关地址为10.23.100.1,AP通过DHCP的方式从IP地址池Huawei1中获取IP地址,DHCP服务器通过option 43选项字段向AP通告AC的IP地址

6.DHCP地址续租
当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功。
当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功。
如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址。
7.DHCP客户端重用曾经使用过的地址
DHCP客户端非首次接入网络时,可以重用曾经使用过的地址。例如,网络中的主机作为DHCP客户端,在关机再开机的过程中,需要重新获取相关网络参数,则可以请求分配曾经使用过的IP地址
选择阶段
客户端广播发送包含前一次分配的IP地址的DHCP REQUEST报文,报文中的Option 50(请求的IP地址选项)字段填入曾经使用过的IP地址。
确认阶段
DHCP服务器收到DHCP REQUEST报文后,根据DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录。如果有则返回DHCP ACK报文,通知DHCP客户端可以继续使用这个IP地址,如果没有租约记录,则不响应。
8.DHCP分配IP地址顺序
DHCP服务器按照如下次序为客户端选择IP地址:
DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址。
客户端以前曾经使用过的IP地址,即客户端发送的请求报文中请求IP地址选项的地址。
在DHCP地址池中,顺序查找可供分配的空闲IP地址,最先找到的IP地址。
如果在DHCP地址池中未找到可供分配的空闲IP地址,则依次查询超过租期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告错误。
9.DHCP Relay工作原理
发现阶段:DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。
提供阶段:DHCP服务器根据DHCP DISCOVER报文中的Giaddr字段选择地址池为客户端分配相关网络参数,DHCP中继收到DHCP OFFER报文后,以单播或组播方式发送给DHCP Client。
选择阶段:中继接收到来自客户端的DHCP REQUEST报文的处理过程同“发现阶段”。
确认阶段:中继接收到来自服务器的DHCP ACK报文的处理过程同“提供阶段”。