如果客户的与服务器不在同一个子网内就用到DHCP全局和DHCP中继
DHCP中继
R2: 中继
int g0/0/0
ip address 172.16.12.2 24
dhcp select relay---->开启dhcp中继功能
dhcp relay server-ip 192.168.24.4
AR1发送dhcp discovery
dhcp discovery | udp sport 68 dport 67 | sip 0.0.0.0 dip 255.255.255.255 | eth smac R1 dmac FFFF
AR2中继处理,发给R4
dhcp discovery | udp sport 67 dport 67 | sip 172.16.12.2 dip 192.168.24.4 | eth smac R2 dmac R4
AR4收到dhcp discovery 回复offer
dhcp offer | udp sport 67 dport 67 | sip 192.168.24.4 dip 172.16.12.2 | eth smac R4 dmac R2
中继做了一个转换
AR2中继处理,发给R1
dhcp offer | udp sport 67 dport 68 | sip 172.16.12.2 dip 172.16.12.99 | eth smac R2 dmac R1
看拓扑图
AR1是client,AR4是server,分配172.16.12.0/24的子网地址
问题1:
AR1发送discovery AR4收不到
原因解析:
AR1发送dhcp discovery是广播,广播不能穿越路由器
解决方案:
AR2配置dhcp relay,把广播转换为单播,具体封装看上面
问题2:
AR1发送discovery AR2中继成单播发给AR4,AR4收到discovery回复offer,不发
原因解析:
AR4单播转发,需要查询路由表是否有172.16.12.2的路由,如果没有就丢弃
解决方案:
AR4上配置静态路由,172.16.12.0/24--->192.168.24.2(下一跳)
R4: dhcp server 接口IP地址:192.168.24.4/24
dhcp enable
ip pool vlan12 (172.16.12.0/24)
netowrk 172.16.12.0 mask 24
gateway-list 172.16.12.2
dns-list 114.114.114.114 8.8.8.8
exclude-address 172.16.12.200 172.16.12.254
static-bind ip-address 172.16.12.11 mac-address xxxx-xxxx-xxxx
ip dhcp pool vlan13 (172.16.13.0/24)
netowrk 172.16.13.0 mask 24
gateway-list 172.16.13.2
dns-list 114.114.114.114
exclude-address 172.16.13.200 172.16.13.254
static-bind ip-address 172.16.13.11 mac-address xxxx-xxxx-xxxx
实验拓扑图

基础配置
R2:
int gi0/0/0 #进入gi0/0/0接口中
ip add 172.16.12.2 24 #配置IP地址和子网掩码
undo shutdown #开启接口
int gi0/0/1 #进入gi0/0/0接口中
ip add 192.168.24.2 24 #配置IP地址和子网掩码
undo shutdown #开启接口
R4:
int gi0/0/1 #进入gi0/0/0接口中
ip add 192.168.24.4 24 #配置IP地址和子网掩码
undo shutdown #开启接口
R4配置为DHCP服务器
[R4]dhcp enable #全局开启dhcp服务
Info: The operation may take a few seconds. Please wait for a moment.done.
[R4]ip pool vlan12 #创建地址池名称
Info: It's successful to create an IP address pool.
[R4-ip-pool-vlan12]network 172.16.12.0 mask 24 #创建下发地址池
[R4-ip-pool-vlan12]gateway-list 172.16.12.2 #设置网关
[R4-ip-pool-vlan12]dns-list 202.103.24.68 114.114.114.114 #下发多个dns地址
[R4-ip-pool-vlan12]excluded-ip-address 172.16.12.100 172.16.12.254 #添加排除地址,排除172.16.12.100-172.16.100.254,这样客户端获取的第一个地址是172.16.100.99
[R4]int gi0/0/1 #进入dhcp服务器出接口
[R4-GigabitEthernet0/0/1]dhcp select global #设置模式为全局接口下发地址模式
[R4]ip route-static 172.16.12.0 24 192.168.24.2 #还需要配置一条静态路由,由于当前dhcp服务器在不在同一子网,需要有一条能够到达客户端的网段
R2配置DHCP中继
[R2]dhcp enable #全局开启dhcp服务
[R2]int gi0/0/0 #进入与客户端相连的地址池接口
[R2-GigabitEthernet0/0/0]dhcp select relay #开启dhcp中继,这里开启dhcp中继的意思,dhcp服务器有一个去往客户端的路由,但是客户端需要回一个包给dhcp服务器
[R2-GigabitEthernet0/0/0]dhcp relay server-ip 192.168.24.4 #配置dhcp中继地址就是dhcp服务器的出接口IP地址
R1客户的获取IP地址
[R1]dhcp enable #全局开启dhcp服务
Info: The operation may take a few seconds. Please wait for a moment.done.
[R1]int gi0/0/0 #进入gi0/0/0接口中
[R1-GigabitEthernet0/0/0]ip address dhcp-alloc #配置接口使用dhcp获取IP地址和子网掩码
R1测试
[R1]display ip interface brief #查看接口是否获取到IP地址和子网掩码信息

[R1]ping 192.168.24.4 #测试R1客户端能否与R4DHCP服务器通信

R4查看地址池分配IP地址信息
[R4]display ip pool name vlan12 used
