DHCP代理和安全性

本文说明了DHCP代理的基本操作。它涵盖了通过DHCP代理程序进行IP地址分配/租赁,IP地址更新和IP地址释放的过程。它还描述了在DHCP过程中如何用DHCP代理替换DHCP消息参数。它还介绍了DHCP代理的DHCP安全功能。

概述

本文档提供了如何同时充当DHCP服务器或DHCP客户端的DHCP代理的技术摘要。第二章介绍了DHCP代理的功能和优点,第三章介绍了DHCP代理的基本操作原理。第四章介绍了DHCP代理的安全功能。最后,附录介绍了DHCP代理在DHCP过程中使用的特定消息参数。

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代理之间的比较

图1. DHCP中继代理和DHCP代理之间的比较

使用DHCP代理代替DHCP中继具有以下好处:

  • 由于用户(DHCP客户端)无法查看DHCP服务器的IP地址,因此可以保护DHCP服务器免受以服务器为目标的外部攻击,例如拒绝服务(DoS)(DHCP客户端只能看到IP地址)。 DHCP代理)。
  • 由于DHCP代理保留所有通过DHCP消息分配的用户IP地址的列表,因此它可以基于该信息创建IP到MAC绑定表。这使代理可以阻止来自未经授权的用户的任何通信,这些未经授权的用户的IP地址尚未通过DHCP程序分配(即静态IP用户)(请参阅DHCP安全功能)。

DHCP代理的基本操作

本章介绍1.1.1.0/24子网中的PC(例如,图2中的PC1)如何使用DHCP代理代理与DHCP服务器通信,以进行所有DHCP操作,例如IP地址分配/租赁,IP地址更新和IP地址。释放。

img

图2. 网络图

3.1 IP地址分配/租赁过程

DHCP代理位于PC和DHCP服务器之间,如图2所示。DHCP代理接收PC广播的DHCP Discover和Request消息,然后直接将DHCP消息单播到DHCP服务器。此时,DHCP代理将其自己的IP地址(接收DHCP发现/请求消息的接口地址)输入到DHCP消息中的“中继代理IP 1 (=网关IP = giaddr)”字段中。

当DHCP服务器单播DHCP Offer / Ack消息时,它将中继代理的IP地址包括在消息的“目标IP地址”字段中,然后将消息发送到DHCP代理。在检查接收到的消息的“广播标志”值之后,DHCP代理根据目标服务器的值将目标IP地址替换为PC IP地址(广播标志= 0)或广播IP地址(广播标志= 1)。广播标志字段[2],以及带有DHCP代理IP地址的源IP。最后,它将修改后的消息转发到PC。

至此,该过程与[3]中描述的DHCP中继代理的过程类似。DHCP代理与DHCP中继之间的重要区别在于,前者将DHCP提供/确认消息中包含的DHCP服务器标识符(选项54)字段中的DHCP服务器IP替换为相关DHCP代理的IP地址。 。通过此过程,DHCP代理被PC(DHCP客户端)识别为DHCP服务器。

图3.使用DHCP代理的IP地址分配/租赁过程

图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 Offer消息,并将中继代理的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服务器标识符”字段中的值

图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地址更新过程

图5. 具有DHCP代理的网络中的IP地址更新过程

如参考“了解DHCP中继代理” [3]中所述,此过程中不涉及DHCP中继代理,但是DHCP代理在客户端和服务器之间的通信中接收并重新处理DHCP请求/确认消息。

1. DHCP请求

DHCP客户端(PC)单播DHCP请求消息,并将代理程序的IP地址插入到消息的“目标IP”字段中。收到消息后,DHCP代理会替换消息中“目标/源MAC地址”,“目标/源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地址释放过程

图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安全功能。

图7. DHCP代理的DHCP安全功能

图7. DHCP代理的DHCP安全功能

4.1创建IP到MAC绑定表的过程

图8描述了如何通过DHCP消息为DHCP代理创建IP到MAC绑定表。

图8.创建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计时器到期(在分配IP地址1800秒之后),DHCP客户端便开始IP地址更新过程[2]。同时,DHCP代理使用DHCP确认消息中包含的IP地址租用时间(3600秒)更新IP到MAC绑定表的租用时间和过期时间字段。

❸让我们假设稍后关闭DHCP客户端(PC)。在这种情况下,DHCP代理程序和DHCP服务器都不会意识到这种情况。因此,“过期时间”字段中的值继续每秒减少一(1),直到达到“ 0”为止,从而删除了IP到MAC绑定表中的相关条目。显然,当DHCP客户端(PC)发送DHCP释放消息时,与DHCP客户端相关的条目也会被删除。

4.2禁止来自IP地址异常用户的流量

通常在DHCP客户端的默认网关路由器(即客户端连接的第一台路由器)中启用DHCP代理功能。在收到DHCP客户端发送的ARP请求数据包后,DHCP代理会检查自己的IP到MAC表,以检查DHCP客户端的有效性。图9详细显示了该过程。

图9.使用IP到MAC绑定表阻止流量

图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. DHCP中继代理和DHCP代理之间的比较

注释

1 两种代理都执行一项在DHCP客户端和DHCP服务器之间中继消息的通用功能,并且IETF标准要求代理的IP地址存储在网关IP地址(giaddr)字段中。在本文档中,中继代理IP是指“网关IP地址”字段中的地址。

2 DHCP中继代理也支持本章介绍的安全功能。但是,在这种情况下,DHCP中继代理应该能够侦听IP地址分配和释放过程中使用的所有DHCP消息(单播)。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁