资源描述
DHCPrelay简介
DHCPRelayDHCP中继 也叫做DHCP中继代理
如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。用DHCP Relay代理可以去掉在每个物理的网段都要有DHCP服务器的必要,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机。
DHCPrelay原理折叠
1 当dhcp client 启动并进行dhcp 初始化时,它会在本地网络广播配置请求报文。
2 如果本地网络存在dhcp server,则可以直接进行dhcp 配置,不需要dhcp relay。
3 如果本地网络没有dhcp server,则与本地网络相连的具有dhcprelay 功能的网络设备收到该广播报文后,将进行适当处理并转发给指定的其它网络上的dhcp server。
4 dhcp server 根据dhcp client 提供的信息进行相应的配置,并通过dhcp relay 将配置信息发送给dhcp client,完成对dhcp client 的动态配置。
DHCPrelay通信过程分析
从开始到最终,需要多个这样的报文交互过程。dhcp relay设备修改dhcp消息中的相应字段,把dhcp的广播包改成单播包,并负责在服务器与客户机之间转换。
1. 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。因为DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP Discover报文来寻找DHCP服务器,只有DHCP Server才会进行响应。
2. 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP Server接收到Client的DHCP Discover报文后,从IP地址池中挑选一个尚未分配的IP地址分配给客户端,向该客户端发送包含出租IP地址和其它设置的DHCP Offer报文。
3. 选择阶段,即DHCP Client选择IP地址的阶段。如果有多台DHCP Server向该客户端发来DHCP Offer报文,客户端只接受第一个收到的DHCP Offer报文,然后以广播方式向各DHCP服务器回应DHCP Request报文,该信息中包含向所选定的DHCP服务器请求IP地址的内容。
4. 确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP Request报文后,判断Option字段中的DHCP Server的IP地址是否与自己的相同。如果不相同,则不作任何处理;否则,DHCP Server会向客户端发送包含它所提供的IP地址和其它设置的DHCP ACK确认报文。DHCP Client收到DHCP ACK报文后,检查DHCP Server分配给自己的IP地址是否能够使用,比如在以太网络中,DHCP Client会发免费的ARP请求来确定IP地址是否已经被其他客户端使用。如果IP地址已经被其他客户端使用,则该DHCP Client会发DHCP Decline报文通知DHCP Server禁用这个IP地址以免引起冲突;否则,该DHCP Client成功获取IP地址。
5. 更新租约,DHCP服务器向DHCP客户端出租的IP地址都有一个租界期限,期满后DHCP服务器便会回收出租的IP地址。如果DHCP客户端要延长其IP租约,须更新其IP租约。DHCP客户端在IP租约期限过一半时,会自动向DHCP服务器发送单播的DHCP Request报文续延租期。
6. 更新租约,DHCP服务器收到DHCP Request续租报文后,根据报文中的ciaddr信息申请IP地址,如果成功,给DHCP客户端回应DHCP ACK报文。
7. 更新租约,DHCP客户端如果收到DHCP ACK报文,则租期相应向后延长。如果没有收到DHCP ACK报文,客户端继续使用这个IP地址,在使用租期过去7/8时,向DHCP服务器发送广播的DHCP Request报文。
8. 更新租约,如果此IP地址无法再分配给该DHCP客户端时,DHCP服务器给DHCP客户端回应DHCP NAK报文,否则给DHCP客户端回应DHCP ACK报文。DHCP客户端收到DHCP ACK报文后,租期相应延长。如果没有收到DHCP ACK,也没有收到DHCP NAK报文,则客户端可以继续使用这个IP地址,直到租期到期。如果收到DHCP NAK报文,则客户端不能继续使用这个IP地址。DHCP客户端在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP服务器收到DHCP Release报文后,会回收相应的IP地址重新分配。DHCP客户端断开后重新接入ME60时,如果IP地址租期没到,不会发送DHCP Discover报文了,而是直接发送包含前一次所分配的IP地址的DHCP Request请求消息。当DHCP服务器收到这一信息后,就会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK报文。如果此IP地址已无法再分配给原来的DHCP客户端使用时,则DHCP服务器给DHCP客户端回应一个DHCP NAK报文。当原来的DHCP客户端收到此DHCP NAK报文后,会重新广播发送DHCP Discover发现信息来请求新的IP地址。
步骤1:
DHCPclient使用众所周知的UDP服务器67号端口,以“用户数据报协议(UDP)”的数据报形式向relay发送广播DHCP(DHCPDISCOVER),源Mac地址为client mac 000E.5E00.0002
报文经过relay,由广播包变为单播包发向server,源Mac更换为relay设备的Mac地址000e.5e62.b90c,目的IP为server设备IP地址20.0.0.1 ,目的Mac为serverMac 000e.5e08.8750
步骤2:DHCP服务器收到此消息时,它会为该DHCP服务器可用于提供IP地址租约的DHCP作用域检查其网关IP地址字段。如果DHCP服务器有多个DHCP作用域,网关IP地址字段(GIADDR)中的地址会标识服务器应当从哪个地址池提供IP地址租约。
同步骤1,relay将offer报文由单播变为广播:
步骤3
展开阅读全文