前言
动态主机配置协议 DHCP 该协议允许服务器向客户端动态分配 IP 地址和配置信息。端口号 UDP67[服务端] 和 UDP68[客户端]
报文种类
1、DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。

2、DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。

3、DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。
4、DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
5、DHCP ACK:服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
6、DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。
7、DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。
8、DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。
交互过程
第一步 DHCP客户端广播发送DHCP服务器 广播报文 <DHCP DISCOVER报文>
第二步 探测分配的地址是否可用 通过Ping以及ARP解析 <ARP报文>


第三步 DHCP服务端发送DHCP响应报文 并且指定了服务器地址 客户端IP以及MAC 广播报文 <DHCP OFFER报文>

第四步 客户端请求地址 此时还未获取到IP地址 广播报文 <DHCP REQUEST报文>

第五步 服务器确认请求 客户端获取到IP地址 广播报文 <DHCP ACK报文>

DHCP中继
默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继(DHCP Relay)
DHCP相关配置
dhcp server enable // 开启dhcp服务
dhcp server ip-pool pool_name // 创建dhcp地址池
gateway-list ip-address&<1-64> // 配置网关
network network-address [ mask-length | mask mask ] // 配置地址池范围
expired [ day hour minute second | unlimited ] // 配置租约时间 unlimited无限期 缺省一天
option 43 hex 8007000001c0a86401 // 配置option43字段 用于指示AC地址[192.168.100.1]
// 清除指定IP地址的正式绑定和临时绑定信息。如果未指定本参数,则清除所有IP地址的正式绑定和临时绑定信息。
reset dhcp server ip-in-use [ ip ip-address | pool pool-name ]
dhcp snooping enable // 全局开启dhcp snooping功能
dhcp snooping trusted // 接口视图下 指定信任接口 默认不信任
dhcp select relay // 接口视图下开启dhcp中继
dhcp select server-address 192.168.10.1 // 指定dhcp中继地址
DHCP配置案例

RTA配置
[RTA]dhcp server enable
[RTA]interface GigabitEthernet 0/1
[RTA-GigabitEthernet0/1]ip address 192.168.0.254 255.255.255.0
[RTA-GigabitEthernet0/1]quit
[RTA]dhcp server ip-pool dhcp
[RTA]gateway-list 192.168.0.1 192.168.0.254
[RTA]network 192.168.0.0 mask 255.255.255.0
PCA验证配置

DHCP中继配置举例

SWA配置
[SWA]dhcp enable
[SWA]vlan 10
[SWA-vlan10]quit
[SWA]vlan 20
[SWA-vlan20]quit
[SWA]interface GigabitEthernet1/0/2
[SWA-GigabitEthernet1/0/2]port link-type trunk
[SWA-GigabitEthernet1/0/2]port trunk permit vlan 10 20
[SWA-GigabitEthernet1/0/2]port trunk pvid vlan 20
[SWA-GigabitEthernet1/0/2]undo port trunk permit vlan 1
[SWA-GigabitEthernet1/0/2]quit
[SWA]interface GigabitEthernet1/0/3
[SWA-GigabitEthernet1/0/3]port link-type trunk
[SWA-GigabitEthernet1/0/3]port trunk permit vlan 10 20
[SWA-GigabitEthernet1/0/3]port trunk pvid vlan 20
[SWA-GigabitEthernet1/0/3]undo port trunk permit vlan 1
[SWA-GigabitEthernet1/0/3]quit
[SWA]interface vlan 10
[SWA-Vlan-interface10]ip address 192.168.10.254 24
[SWA-Vlan-interface10]quit
[SWA]interface vlan 20
[SWA-Vlan-interface20]ip address 192.168.20.254 24
[SWA-Vlan-interface20]dhcp select relay // 开启DHCP中继服务
[SWA-Vlan-interface20]dhcp relay server-address 192.168.10.1 // 指定DHCP中继对应的DHCP服务器地址
[SWA-Vlan-interface20]quit
[SWA]
DHCP配置
[DHCP]dhcp enable
[DHCP]interface GigabitEthernet 0/1
[DHCP-GigabitEthernet0/1]ip address 192.168.10.1 24
[DHCP-GigabitEthernet0/1]qu
[DHCP]dhcp server ip-pool vlan20
[DHCP-dhcp-pool-vlan10]gateway-list 192.168.20.254
[DHCP-dhcp-pool-vlan10]network 192.168.20.0 mask 255.255.255.0
[DHCP-dhcp-pool-vlan10]quit
[DHCP]ip route-static 0.0.0.0 0 192.168.10.254
关于DHCP获取失败问题
- 二级路由器导致 [二级路由器重置DHCP服务默认开启 私接小路由]
- 品牌问题 [设备死机导致向所有端口发送ARP包]
- 未开DHCP服务 [DHCP中继也需要启用DHCP服务]