本文档是我们的DHCP技术文档系列中的第四本,并说明了DHCP代理的基本操作。它涵盖了通过DHCP代理程序进行IP地址分配/租赁,IP地址更新和IP地址释放的过程。它还描述了在DHCP过程中如何用DHCP代理替换DHCP消息参数。它还介绍了DHCP代理的DHCP安全功能。
目录
一、概述 二、DHCP代理简介 三、DHCP代理的基本操作 四、DHCP代理的安全功能
五、总结与闭幕
附录A-IP地址分配/租赁过程中DHCP消息的格式
附录B-IP地址更新过程中DHCP消息的格式
附录C-IP地址释放过程中DHCP消息的格式
一、概述
本文档提供了如何同时充当DHCP服务器或DHCP客户端的DHCP代理的技术摘要。第二章介绍了DHCP代理的功能和优点,第三章介绍了DHCP代理的DHCP操作的基本原理。第四章介绍了DHCP代理的安全功能。最后,附录介绍了DHCP代理在DHCP过程中使用的特定消息参数。
在阅读本文档之前,建议您参考以下三个随附文档“ 了解DHCP的基本操作 ” [1],“ 了解DHCP的详细操作 ” [2]和“ 了解DHCP中继代理 ” [3 ]。
二、DHCP代理简介
每当DHCP中继代理从位于同一子网中的DHCP客户端接收到数据包时,它就将广播的DHCP数据包(DHCP发现/请求)中继到位于其他子网中的DHCP服务器。另一方面,DHCP代理不仅在子网之间中继DHCP数据包,而且还代表DHCP服务器,同时还充当DHCP客户端。也就是说,它充当DHCP客户端的DHCP服务器,但充当DHCP服务器的DHCP客户端。
图1显示了DHCP中继代理和DHCP代理之间的比较。如您所见,DHCP中继代理仅中继IP地址分配/租赁过程中使用的广播数据包,而同时执行DHCP服务器和客户端功能的DHCP代理则将所有DHCP数据包从一个中继转发到另一个(广播或单播)用于IP地址分配/租赁,IP地址更新和IP地址发布过程。
图1. DHCP中继代理和DHCP代理之间的比较
使用DHCP代理代替DHCP中继具有以下好处:
三、DHCP代理的基本操作
本章介绍1.1.1.0/24子网中的PC(例如,图2中的PC1)如何使用DHCP代理对所有DHCP操作(例如IP地址分配/租赁,IP地址更新和IP地址)与DHCP服务器进行通信。释放。
图2.网络图
3.1 IP地址分配/租赁过程
DHCP代理位于PC和DHCP服务器之间,如图2所示。DHCP代理接收PC广播的DHCP Discover和Request消息,然后直接将DHCP消息单播到DHCP服务器。此时,DHCP代理将其自己的IP地址(接收DHCP发现/请求消息的接口地址)输入到DHCP消息的“中继代理IP (=Gateway IP=giaddr)”字段中。
当DHCP服务器单播DHCP Offer / Ack消息时,它将中继代理的IP地址包括在该消息的“目标IP地址”字段中,然后将消息发送到DHCP代理。在检查接收到的消息的“广播标志”值之后,DHCP代理根据目标IP的值将目标IP地址替换为PC IP地址(Broadcast Flag=0)或广播IP地址(Broadcast Flag=1)。广播标志字段[2],以及带有DHCP代理IP地址的源IP。最后,它将修改后的消息转发到PC。
至此,该过程与[3]中描述的DHCP中继代理的过程类似。DHCP代理与DHCP中继之间的重要区别在于,前者将DHCP提供/确认消息中包含的DHCP服务器标识符(Option 54)字段中的DHCP服务器IP替换为相关DHCP代理的IP地址。 。通过此过程,DHCP代理被PC(DHCP client)识别为DHCP服务器。
图3.使用DHCP代理的IP地址分配/租赁过程
1. DHCP发现
DHCP客户端(PC)在物理以太网子网[1]上广播DHCP发现消息。DHCP代理接收所有将UDP目标端口设置为67(DHCP发现/请求)的数据包,替换目标/源MAC地址,目标/源IP地址和网关IP地址(即中继代理IP地址)中的值)消息的字段。然后,它将消息单播到DHCP服务器。
这里要注意的一件事是,在DHCP Discover消息中,源IP地址和中继代理IP地址被替换为DHCP代理的上行IP地址(100.1.1.254)和DHCP代理的下行IP地址。代理(1.1.1.254)。在将消息转发到DHCP服务器之前,会发生这种情况。
进行这些替换的原因如下:首先,替换了源IP地址,因为DHCP Discover消息应将传出接口的IP地址(从其发送传出数据包的端口)作为其源IP地址。因此,DHCP Discover消息的源IP被替换为DHCP代理的上行IP地址。其次,替换中继代理IP地址字段中的地址,因为DHCP服务器在选择要分配的IP池时引用该字段中的IP地址。因此,该字段现在具有DHCP代理的下行IP地址,该IP地址与DHCP客户端位于同一子网。
2. DHCP提供
DHCP服务器基于DHCP发现消息的中继代理IP地址(giaddr),首先选择一个IP池,然后从该IP池中选择一个IP地址以分配给DHCP客户端。接下来,它发送DHCP提议消息,并将中继代理的IP地址插入到消息的“目标IP”字段中。收到消息后,DHCP代理将替换“ DHCP提议”消息中“目标/源MAC地址”,“目标/源IP地址”和“ DHCP服务器标识符(选项54)”字段中的值,然后将消息单播或广播到DHCP客户端(PC)[2]。
DHCP服务器标识符字段将DHCP服务器彼此区分开。DHCP代理将DHCP服务器的IP地址(100.1.1.1)替换为其上行IP地址(100.1.1.254)。因此,DHCP客户端将DHCP代理视为DHCP服务器。
3. DHCP请求
DHCP客户端(PC)收到代理服务器发送的DHCP Offer消息后,在物理以太网子网上广播DHCP Request消息,以查询包括IP地址[1]的网络信息数据。DHCP代理收到此消息后,将替换目标/源MAC地址,目标/源IP地址,网关IP地址(即中继代理IP地址)和DHCP服务器标识符(选项54)字段中的值消息。然后,它将修改后的消息单播到DHCP服务器。
DHCP请求消息的“源IP地址”和“网关IP地址”(即中继代理IP地址)字段中的值以与DHCP发现消息中相同的方式替换。对于“ DHCP服务器标识符”字段,如果此字段的IP地址与自己的IP地址不匹配,则DHCP服务器将丢弃DHCP消息。因此,DHCP代理将其上行链路IP地址(100.1.1.254)替换为DHCP服务器IP地址(100.1.1.1)。
4. DHCP确认
DHCP服务器最终确定一个IP地址以分配/租赁给DHCP客户端。然后,服务器会发送一条DHCP Ack消息,并在目标IP地址中插入DHCP请求消息中的中继代理IP地址(giaddr)。收到此消息后,DHCP代理会替换消息的“目标/源MAC地址”,“目标/源IP地址”和“ DHCP服务器标识符(选项54)”字段中的值。接下来,它将修改后的消息单播或广播到DHCP客户端[2]。此处替换的消息字段与DHCP Offer消息中的消息字段相同。
同样,DHCP代理在IP地址分配/租赁过程中执行的一项重要功能是替换在DHCP客户端和服务器之间交换的DHCP消息中的“ DHCP服务器标识符”字段中的值。图4总结并说明了所述功能和过程。
图4.替换“ DHCP服务器标识符”字段中的值
3.2 IP地址更新流程
根据参考文献“了解DHCP的基本操作” [1],DHCP客户端(PC)在IP地址分配过程中保留/存储通过DHCP Ack消息获取的DHCP服务器IP地址(在DHCP服务器标识符字段中)。 。然后,当DHCP客户端需要延长IP地址的租用时间时,它不会广播,而是将DHCP请求消息单播到DHCP服务器。如图5所示,DHCP客户端已知的DHCP服务器IP地址是DHCP代理的上行IP地址。因此,消息被单播到DHCP代理,然后该代理重新处理并将消息转发到DHCP服务器。
为了响应该消息,DHCP服务器将DHCP Ack消息单播到DHCP客户端。此时使用的目标IP地址是DHCP请求消息的中继IP地址(giaddr)。因此,此消息将转发到DHCP代理,然后该代理将重新处理并将消息转发到DHCP客户端。
图5.具有DHCP代理的网络中的IP地址更新过程
如参考文献“了解DHCP中继代理” [3]中所述,此过程中不涉及DHCP中继代理,但是DHCP代理在客户端和服务器之间的通信中接收并重新处理DHCP请求/确认消息。 。
1. DHCP请求
DHCP客户端(PC)单播DHCP请求消息,并将代理代理的IP地址插入到消息的“目标IP”字段中。收到消息后,DHCP代理会替换消息中“目标/源MAC地址”,“目标/源IP地址”和“网关IP地址”(即,中继代理IP地址)字段中的值。接下来,它将修改后的消息单播到DHCP服务器。
2. DHCP确认
DHCP服务器发送DHCP Ack消息,并将DHCP请求消息的中继代理IP地址(giaddr)插入到消息的“目标IP地址”字段中。收到消息后,DHCP代理会替换消息中“目标/源MAC地址”,“目标/源IP地址”和“ DHCP服务器标识符(选项54)”字段中的值。接下来,它将修改后的消息单播到DHCP客户端。
3.3 IP地址释放步骤
在释放IP地址的情况下,DHCP客户端(PC)将DHCP释放消息单播到DHCP服务器。如图6所示,DHCP客户端已知的DHCP服务器IP地址是DHCP代理的上行IP地址。因此,邮件将转发到DHCP代理,该代理将重新处理并将邮件转发到DHCP服务器。
如参考文献“了解DHCP中继代理” [3]所述,此过程中不涉及DHCP中继代理,但是DHCP代理在客户端和服务器之间的通信中接收并重新处理DHCP释放消息。
图6.具有DHCP代理的网络中的IP地址释放过程
1. DHCP版本
DHCP客户端(PC)单播一条DHCP释放消息,并将DHCP代理地址插入到“目标IP地址”字段中。收到消息后,DHCP代理会替换目标/源MAC地址,目标/源IP地址,网关IP地址(即,中继代理IP地址)和DHCP服务器标识符(选项54)消息字段中的值。接下来,它将修改后的消息单播到DHCP服务器。
四、DHCP代理的安全功能
如前几章所述,在DHCP客户端和服务器之间交换的所有DHCP消息中都包含DHCP代理。本章介绍了DHCP代理的安全功能,特别是用于阻止来自未经授权用户的任何数据通信的过程,这些未经授权用户的IP地址尚未通过常规DHCP过程分配。图7概述了DHCP安全功能。
4.1创建IP到MAC绑定表的过程
图8描述了如何通过DHCP消息为DHCP代理创建IP到MAC绑定表。
图8.创建IP到MAC绑定表的过程
❶的DHCP委托代理解析中的IP地址分配/租赁过程的最后阶段接收到的DHCP ACK消息的参数。然后,在IP到MAC的绑定表中,它存储收集的信息-客户端(PC)MAC地址(m1),客户端(PC)IP地址(1.1.1.10),IP地址租用时间(3600秒)。连接到DHCP客户端的DHCP代理的接口信息(Ge1 / 1)。另外,DHCP代理维护“过期时间”字段。最初,此字段中的值设置为与IP地址租赁时间字段中的值相同,然后随时间每秒减少一(1)。
❷一旦DHCP客户端的T1计时器期满(1800秒IP地址分配之后),DHCP客户机启动的IP地址更新过程[2]。同时,DHCP代理使用DHCP Ack消息中包含的IP地址租用时间(3600秒)更新IP到MAC绑定表的租用时间和过期时间字段。
❸让我们假设稍后关闭DHCP客户端(PC)。在这种情况下,DHCP代理程序和DHCP服务器都不会意识到这种情况。因此,“过期时间”字段中的值继续每秒减少一(1),直到达到“ 0”为止,从而删除了IP到MAC绑定表中的相关条目。显然,当DHCP客户端(PC)发送DHCP释放消息时,与DHCP客户端相关的条目也会被删除。
4.2阻止来自IP地址异常的用户的流量的过程
通常在DHCP客户端的默认网关路由器(即客户端连接的第一台路由器)中启用DHCP代理功能。在收到DHCP客户端发送的ARP Request数据包后,DHCP代理会检查自己的IP到MAC表,以检查DHCP客户端的有效性。图9详细显示了该过程。
图9.使用IP到MAC绑定表阻止流量
❶由于上图中的PC1通过正常的DHCP过程获得了IP地址,因此DHCP代理已在其IP到MAC绑定表中收集了有关PC1的信息。当DHCP代理收到PC1发送的ARP请求数据包时,将检查数据包中的发件人MAC地址(m1)和IP地址(1.1.1.10)是否都已注册在IP到MAC绑定表中。如果是,则代理将ARP应答消息发送到PC1。
❷由于PC2代表具有静态IP地址的客户端,因此IP到MAC绑定表中没有有关该客户端的信息(MAC地址或IP地址)。因此,当DHCP代理收到PC2发送的ARP请求数据包时,由于未在表中找到有关客户端的信息(MAC地址(m2)和IP地址(1.1.1.20)),因此它不发送ARP Reply数据包。 。因此,PC2无法获取DHCP代理(即默认网关路由器)的MAC地址,并且最终将无法访问Internet。
启用这些安全功能意味着通过对ARP请求数据包的响应来管理用户访问网络(例如Internet)的尝试。请注意,这并不意味着将检查来自用户的所有数据流量。如果黑客知道默认网关(DHCP代理)的MAC地址(这对黑客来说并不困难),则可以取消DHCP代理的安全功能。为了弥补此漏洞,一些网络运营商采用了一种新的健壮的安全网络系统,称为BRAS(宽带远程访问服务器)。BRAS系统可以监视和检查所有上行和下行用户流量。韩国国内网络运营商推出的一些BRAS产品包括Juniper E320和Redback(被爱立信收购)SE800。
在本文中,我们回顾了由DHCP代理执行的IP地址分配/租赁,IP地址更新和IP地址释放的所有过程。我们还检查了其安全功能。表1总结了我们的发现,将DHCP中继代理与DHCP代理进行了比较。
表1. DHCP中继代理和DHCP代理之间的比较
参考资料
[1] Netmanias技术文件,“了解DHCP的基本操作”,2013年11月
[2] Netmanias技术文件,“了解DHCP的详细操作”,2013年10月
[3] Netmanias技术文档,“了解DHCP中继代理”,2013年10月
脚注
1 两种代理都执行一项在DHCP客户端和DHCP服务器之间中继消息的通用功能,并且IETF标准要求代理的IP地址存储在网关IP地址(giaddr)字段中。在本文档中,中继代理IP是指“网关IP地址”字段中的地址。
2 DHCP中继代理还支持本章中介绍的安全功能。但是,在这种情况下,DHCP中继代理应该能够侦听IP地址分配和释放过程中使用的所有DHCP消息(单播)。
附录A提供了DHCP消息参数的详细示例,这些参数在IP地址分配过程中被DHCP代理替换。
DHCP发现消息
图10 。IP地址分配/租赁过程:DHCP发现消息
以太网头
IP头
DHCP消息有效负载
DHCP提供消息
图11 。IP地址分配/租赁过程:DHCP提供消息
注意:在此示例中,由于我们假设“广播标志”值设置为1,因此代理代理广播了该消息。
DHCP请求消息
图12 。IP地址分配/租赁过程:DHCP请求消息
DHCP确认消息
图13 。IP地址分配/租赁过程:DHCP确认消息
注意:在此示例中,由于我们假设“广播标志”设置为1,因此代理代理广播了该消息。
附录B – IP地址更新过程中DHCP消息的格式
附录B提供了DHCP消息参数的详细示例,这些参数在IP地址更新过程中被DHCP代理替换。
图14 。IP地址更新过程:DHCP请求消息
图15 。IP地址更新过程:DHCP确认消息
附录C – IP地址发布过程中DHCP消息的格式
附录C提供了DHCP消息参数的详细示例,这些参数在IP地址释放过程中被DHCP代理替换。
DHCP释放消息
图16 。IP地址释放过程:DHCP释放消息