一般情况下中小型网络中DHCP服务器和客户端是同一个局域网也就是一个网段,但是在大型网络中可能是服务器在另外一个广播域中,我们知道DHCP通过广播寻找服务器,但是跨广播域就无法进行请求和分配了,因此出现了DHCP中继的概念。
DHCP中继概述
DHCP Relay即DHCP中继,它是为解决DHCP服务器和DHCP客户端不在同一个广播域而提出的,提供了对DHCP广播报文的中继转发功能,能够把DHCP客户端的广播报文“透明地”传送到其它广播域的DHCP服务器上,同样也能够把DHCP服务器端的应答报文“透明地”传送到其它广播域的DHCP客户端。
简单讲就是相当于一个中转代理的功能,前提是中继和DHCP能够正常通信,路由可达。
DHCP报文格式
DHCP Relay主要负责转发DHCP客户端与DHCP服务器之间的DHCP报文,所以DHCP Relay的报文格式只是把DHCP的报文部分字段做了相应的修改,报文格式没有发生变化,如下图所示:
Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1。Hops字段的作用是限制DHCP报文所经过的DHCP中继数目。服务器和客户端之间的DHCP中继数目不能超过16个,也就是Hops值不能大于16,否则DHCP报文将被丢弃。
Giaddr(gateway ip address):表示第一个DHCP中继的IP地址。当客户端发出DHCP请求时,第一个DHCP中继在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段。
DHCP中继的工作原理
发现阶段:DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。
提供阶段:DHCP服务器根据DHCP DISCOVER报文中的Giaddr字段选择地址池为客户端分配相关网络参数,DHCP中继收到DHCP OFFER报文后,以单播或组播方式发送给DHCP Client。
选择阶段:中继接收到来自客户端的DHCP REQUEST报文的处理过程同“发现阶段”。
确认阶段:中继接收到来自服务器的DHCP ACK报文的处理过程同“提供阶段”。
DHCP中继收到DHCP DISCOVER报文后,处理规则为:
检查DHCP报文中的Hops字段,如果大于16,则丢弃DHCP报文;否则,将Hops字段加1(表明经过一次DHCP中继),并继续下面的操作。
检查DHCP报文中的Giaddr字段。如果是0,将Giaddr字段设置为接收DHCP DISCOVER报文的接口IP地址。如果不是0,则不修改该字段,继续下面的操作。
将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址,源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。
DHCP服务器接收到DHCP DISCOVER报文后,选择与报文中Giaddr字段为同一网段的地址池,并为客户端分配IP地址等参数,然后向Giaddr字段标识的DHCP中继单播发送DHCP OFFER报文,DHCP中继收到DHCP OFFER报文后,会进行如下处理:
检查报文中的Giaddr字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作。
DHCP中继检查报文的广播标志位。如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;否则将DHCP OFFER报文单播发送给DHCP客户端。
DHCP中继配置
DHCP Server配置:
# 正常配置全局地址池
# 全局DHCP
dhcp enable
# 配置路由
ip route-static 192.168.1.0 24 45.1.1.5
# 配置全局地址池
ip pool ippool
gateway-list 192.168.1.254
network 192.168.1.0 mask 255.255.255.0
excluded-ip-address 192.168.1.253
lease day 0 hour 8 minute 0
dns-list 8.8.8.8 114.114.114.114
# 在接口选择全局应用
interface GigabitEthernet0/0/1
ip address 45.1.1.4 255.255.255.0
dhcp select global
DHCP Relay中继配置:
# 全局开启dhcp
dhcp enable
# 配置接口,在隔离广播域接口(接近客户端侧)
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
dhcp select relay # 开启中继代理
dhcp relay server-ip 45.1.1.4 # 设置服务器地址
# 配置接口
interface GigabitEthernet0/0/1
ip address 45.1.1.5 255.255.255.0
DHCP中继报文
设置代理服务器有两种方式,上面直接使用IP地址。
也可以设置DHCP服务器组:
# 创建DHCP服务器组,可以设置多个DHCP服务器IP
dhcp server group AR4
dhcp-server 45.1.1.4 0
quit
# 接口配置
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
dhcp select relay
dhcp relay server-select AR4
总结
DHCP中继在两个网段间代理客户端和服务器请求,中继服务器也需要开启DHCP功能,然后路由可达。大概就是中继服务器在客户端广播域监听信息,然后讲信息转发给另外广播域的DHCP服务器,接收DHCP服务器的回复,转发给客户端实现地址获取。 如果觉得文章感兴趣欢迎关注公众号:不喜欢热闹的孩子