本文档说明了DHCP中继代理的基本操作。它涵盖了当设备和DHCP服务器位于不同子网中时,使用DHCP中继代理进行IP地址分配/租赁,IP地址更新和IP地址释放的过程。它还描述了在此类过程中如何用DHCP中继代理替换DHCP消息的参数。
概述
本文档提供了对DHCP中继代理的技术理解,在该环境中,DHCP客户端和DHCP服务器位于不同的子网中。第二章介绍了为什么在DHCP操作中需要这些DHCP中继代理。第三章介绍了使用DHCP中继代理进行DHCP操作的基本原理。最后,在附录中,将介绍每个DHCP过程中DHCP中继代理使用的特定消息参数。
为什么在DHCP操作中需要DHCP中继代理?
通常,广播DHCP消息。因此,为了在DHCP客户端(PC)和DHCP服务器之间交换消息,客户端和服务器都必须驻留在同一子网中。这是因为路由器不会将任何广播IP数据包(即目标MAC地址为FF:FF:FF:FF:FF:FF且目标IP地址为255.255.255.255的数据包)转发到其他接口。
因此,DHCP客户端发送的广播DHCP数据包无法通过路由器传递到不同子网中的DHCP服务器(如图1-(a)所示)。此限制要求所有单个子网都具有自己的DHCP服务器以进行DHCP操作,这在网络运营商的网络或公司计算机网络中实际上是不可行的(网络中需要太多的DHCP服务器!)。
为了解决这个问题,长期以来一直采用DHCP中继代理的概念[1]。如图1-(b)所示,启用路由器中的DHCP中继代理功能可以使DHCP消息在不同子网中的DHCP客户端和DHCP服务器之间交换。 此DHCP中继代理的核心功能是将广播的DHCP数据包转换为单播,并将其转发到DHCP服务器。
图1.具有和不具有DHCP中继代理的网络之间的DHCP操作比较
DHCP中继代理的基本操作
本章介绍“ 1.1.1.0/24”子网中的PC(例如PC1)如何如图1-(b)所示使用DHCP中继代理与DHCP服务器进行所有DHCP操作(例如IP地址)的通信分配/租赁,IP地址更新和IP地址释放。
3.1 IP地址分配/租赁过程
DHCP中继代理位于PC和DHCP服务器之间,如图2所示。DHCP中继代理接收PC广播的DHCP Discover和Request消息,并将它们直接单播到DHCP服务器。此时,DHCP中继代理将其IP地址(接收DHCP发现/请求消息的接口地址)存储在要中继的DHCP消息的“中继代理IP(=网关IP = giaddr)”字段中。
DHCP服务器将目标IP地址设置为中继IP地址的DHCP Offer / Ack消息单播到DHCP中继。DHCP中继代理在检查接收到的消息的“广播标志”字段后,根据具体情况,将目标IP地址替换为PC的IP地址(广播标志= 0)或广播IP地址(广播标志= 1)。 “广播标志”值。还将源IP地址替换为DHCP中继代理的IP地址,并将修改后的消息转发到PC。
图2.使用DHCP中继代理的网络中的IP地址分配/租赁过程
1. DHCP发现
DHCP客户端在物理以太网子网上广播DHCP Discover消息以发现所有DHCP服务器。在子网中可用。在收到将UDP目标端口设置为67(DHCP发现/请求)的数据包后,DHCP中继代理会按以下方式替换数据包字段中的值,然后将修改后的消息单播到DHCP服务器:
- 目的MAC地址:PC发送的广播MAC地址被DHCP服务器MAC地址(m5)代替。
- 源MAC地址:将PC MAC地址(m1)替换为DHCP中继代理(m3)的上行MAC地址。
- 目标IP地址:PC发送的广播IP地址(255.255.255.255)被替换为DHCP服务器IP地址(100.1.1.1)。
- 源IP地址:将PC发送的IP地址(0.0.0.0)替换为DHCP中继代理的上行IP地址(100.1.1.254)。
- 中继代理IP地址:将PC发送的IP地址(0.0.0.0)替换为DHCP中继代理的下行链路IP地址(1.1.1.254),即DHCP发现消息所在的中继代理接口的IP地址。收到。
2. DHCP提供
DHCP服务器通过参考DHCP Discover消息中的中继代理IP地址(giaddr),从IP池中选择要分配给DHCP客户端的IP地址,并发送目标地址设置为DHCP IP的DHCP Offer消息。中继代理IP地址。DHCP中继代理收到消息后,按如下所示替换数据包字段中的值,然后将修改后的消息发送到DHCP客户端(PC):
- 目的MAC地址:如果DHCP服务器发送的DHCP Offer消息的“广播标志”字段为0(零),则DHCP中继代理将该字段中的值替换为PC MAC地址(客户端MAC字段:m1),并单播消息。但是,如果“广播标志”值为1(一),则中继代理将其替换为广播MAC地址(FF:FF:FF:FF:FF:FF),并广播消息。
- 源MAC地址:将DHCP服务器的MAC地址(m5)替换为DHCP中继的下行MAC地址(m2)。
- 目标IP地址:DHCP服务器将DHCP优惠消息(在DHCP发现消息(1.1.1.254)中将目标地址设置为中继代理IP地址)发送到DHCP中继代理。如果消息中的“广播标志”值为0,则中继代理用分配给PC的IP地址(您的IP字段:1.1.1.10)替换该值以进行单播。但是,如果“广播标志”值为1,则中继代理将其替换为广播IP地址(255.255.255.255)进行广播。
- 源IP地址:将DHCP服务器IP地址(100.1.1.1)替换为DHCP中继代理的下行IP地址(1.1.1.254)。
3. DHCP请求
收到DHCP提供消息的DHCP客户端(PC)在物理以太网子网上广播DHCP请求消息,以请求网络信息数据(例如IP地址)。DHCP中继代理收到此消息后,按如下所示替换数据包字段中的值(与DHCP Discover消息中的值相同),然后将消息单播到DHCP服务器:
- 目的MAC地址:PC发送的广播MAC地址被DHCP服务器MAC地址(m5)代替。
- 源MAC地址:将PC MAC地址(m1)替换为DHCP中继代理(m3)的上行MAC地址。
- 目标IP地址:PC发送的广播IP地址(255.255.255.255)被替换为DHCP服务器IP地址(100.1.1.1)。
- 源IP地址:将PC发送的IP地址(0.0.0.0)替换为DHCP中继的上行IP地址(100.1.1.254)
- 中继代理IP地址:将PC发送的IP地址(0.0.0.0)替换为DHCP中继代理的下行链路IP地址(1.1.1.254),即DHCP发现消息所在的中继代理接口的IP地址。收到。
4. DHCP确认
DHCP服务器发送DHCP Ack消息,其中目的地IP地址被设置为中继代理IP地址(giaddr)。DHCP中继代理收到此消息后,按如下所示替换数据包字段中的值,然后将消息单播到DHCP客户端(PC):
- 目的MAC地址:如果DHCP服务器发送的DHCP Ack消息的“广播标志”字段为0(零),则DHCP中继代理将该字段中的值替换为PC MAC地址(客户端MAC字段:m1),并单播消息。但是,如果“广播标志”值为1(一),则中继代理将其替换为广播MAC地址(FF:FF:FF:FF:FF:FF),并广播消息。
- 源MAC地址:将DHCP服务器的MAC地址(m5)替换为DHCP中继的下行MAC地址(m2)。
- 目标IP地址:DHCP服务器将DHCP Ack消息(目标地址设置为DHCP请求消息(1.1.1.254)中的中继代理IP地址)发送到DHCP中继代理。如果消息中的“广播标志”值为0,则中继代理用分配给PC的IP地址(您的IP字段:1.1.1.10)替换该值以进行单播。但是,如果“广播标志”值为1,则中继代理将其替换为广播IP地址(255.255.255.255)进行广播。
- 源IP地址:将DHCP服务器IP地址(100.1.1.1)替换为DHCP中继代理的下行IP地址(1.1.1.254)。
3.2 IP地址更新流程
根据参考文献[1],DHCP客户端(PC)在IP地址分配过程中保留/存储通过DHCP Ack消息获取的DHCP服务器IP地址(在DHCP服务器标识符字段中)。然后,如果需要在租用期限之外使用IP地址,则会通过单播而不是广播的方式向DHCP服务器发送DHCP请求消息。DHCP服务器响应该消息,将DHCP Ack消息单播到DHCP客户端。
这样,如果要单播DHCP消息,则DHCP中继代理无需为DHCP操作扮演其角色(将广播消息转换为单播消息)。因此,如图3所示,在IP地址更新过程中,DHCP中继代理不参与任何DHCP操作。
图3.使用DHCP中继代理的网络中的IP地址更新过程
1. DHCP请求
DHCP客户端(PC)以目标IP地址设置为DHCP服务器的IP地址单播DHCP请求消息。因此,DHCP中继代理不会收到此消息。换句话说,在IP地址更新过程中,DHCP中继代理不会替换DHCP请求消息的任何字段。
2. DHCP确认
DHCP服务器以目标IP地址设置为DHCP客户端(PC)的IP地址的方式单播DHCP Ack消息。同样,DHCP中继代理不会收到此消息。换句话说,在IP地址更新过程中,DHCP中继代理不会替换DHCP Ack消息的任何字段。
3.3 IP地址释放步骤
根据参考文献[1],RFC 1542,当释放IP地址时,DHCP客户端(PC)直接将DHCP释放消息单播到DHCP服务器。因此,如图4所示,DHCP中继代理不参与IP地址释放过程。
图4.使用DHCP中继代理的网络中的IP地址释放过程
1. DHCP版本
DHCP客户端以目标IP地址设置为DHCP服务器的IP地址单播DHCP Release消息。因此,DHCP中继代理不会收到此消息。换句话说,在IP地址释放过程中,DHCP中继代理不会替换DHCP Ack消息的任何字段。
注释
1.通常,路由器和L3交换机支持所有DHCP中继代理功能。
2. 除非将DHCP中继代理的IP地址设置为“ 0.0.0.0”,否则DHCP服务器始终将DHCP提议消息单播到DHCP中继代理,而不管广播标志值如何。
3. 除非将DHCP中继代理的IP地址设置为“ 0.0.0.0”,否则DHCP服务器将始终向DHCP中继代理单播DHCP Ack消息,而不管广播标志值如何。