[转]了解DHCP代理和安全性
2020-6-22 1336
 
摘要

本文档是我们的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客户端)无法查看DHCP服务器的IP地址,因此可以保护DHCP服务器免受以服务器为目标的外部攻击,例如拒绝服务(DoS)(DHCP客户端只能看到IP地址)。 DHCP代理)。
  • 由于DHCP代理保留所有通过DHCP消息分配的用户IP地址的列表,因此它可以基于该信息创建IP到MAC的绑定表。这使代理可以阻止来自未经授权的用户的任何通信,这些未经授权的用户的IP地址尚未通过DHCP程序分配(即静态IP用户)(请参阅第四章:DHCP安全功能)。实际上,当我们提供系统集成(SI)服务时,我们的“ Netmanias”曾经将这种安全功能应用于由我们的一个客户(荷兰电信运营商)运营的网络。 

 

三、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-IP地址分配/租赁过程中DHCP消息的格式

 

附录A提供了DHCP消息参数的详细示例,这些参数在IP地址分配过程中被DHCP代理替换。

 

DHCP发现消息

10 IP地址分配/租赁过程:DHCP发现消息

 

以太网头

  • 目的MAC地址:广播MAC地址(0xFFFFFFFFFFFF)被替换为DHCP服务器的MAC地址(m5)。
  • 源MAC地址:将PC MAC地址(m1)替换为DHCP代理(m3)的上行链路MAC地址。

IP头

  • 源IP地址:将IP地址(0.0.0.0)替换为DHCP代理的上行IP地址(100.1.1.254)。
  • 目的IP地址:广播IP地址(255.255.255.255)被替换为DHCP服务器的IP地址(100.1.1.1)。

DHCP消息有效负载

  • 网关IP地址(giaddr):IP地址(0.0.0.0)替换为DHCP代理的下行IP地址(1.1.1.254),在该IP处接收来自PC的DHCP发现消息。

 

DHCP提供消息

11 IP地址分配/租赁过程:DHCP提供消息

 

以太网头

  • 目的MAC地址:代理MAC的上行MAC地址(m3)替换为广播MAC地址(0xFFFFFFFFFFFF)。
  • 注意:在此示例中,由于我们假设“广播标志”值设置为1,因此代理代理广播了该消息。 
  • 源MAC地址:将DHCP服务器MAC地址(m5)替换为DHCP代理的下行链路MAC地址(m2)。

IP头

  • 源IP地址:将DHCP服务器(100.1.1.1)的IP地址替换为DHCP代理的下行IP地址(1.1.1.254)'
  • 目的IP地址:DHCP代理的下行IP地址(giaddr = 1.1.1.254)被替换为广播IP地址(255.255.255.255)。

注意:在此示例中,由于我们假设“广播标志”值设置为1,因此代理代理广播了该消息。 

 

DHCP消息有效负载

  • DHCP服务器标识符(选项54):将DHCP IP地址(100.1.1.1)替换为DHCP代理的上行IP地址(100.1.1.254)。 

 

DHCP请求消息

12 IP地址分配/租赁过程:DHCP请求消息

 

以太网头

  • 目的MAC地址:广播MAC地址(0xFFFFFFFFFFFF)被替换为DHCP服务器的MAC地址(m5)。
  • 源MAC地址:将PC MAC地址(m1)替换为DHCP代理(m3)的上行链路MAC地址。

IP头

  • 源IP地址:将IP地址(0.0.0.0)替换为DHCP代理的上行IP地址(100.1.1.254)。
  • 目的IP地址:广播IP地址(255.255.255.255)被替换为DHCP服务器的IP地址(100.1.1.1)。

DHCP消息有效负载

  • 网关IP地址(giaddr):IP地址(0.0.0.0)替换为从PC接收DHCP请求消息的DHCP代理的下行IP地址(1.1.1.254)。
  • DHCP服务器标识符(选项54):将DHCP代理的上行IP地址(100.1.1.254)替换为DHCP服务器的IP地址(100.1.1.1)。 

 

DHCP确认消息

13 IP地址分配/租赁过程:DHCP确认消息

 

以太网头

  • 目的MAC地址:代理MAC的上行MAC地址(m3)替换为广播MAC地址(0xFFFFFFFFFFFF)。
  • 注意:在此示例中,由于我们假设“广播标志”值设置为1,因此代理代理广播了该消息。 
  • 源MAC地址:将DHCP服务器MAC地址(m5)替换为DHCP代理的下行链路MAC地址(m2)。

IP头

  • 源IP地址:将DHCP服务器的IP地址(100.1.1.1)替换为DHCP代理的下行IP地址(1.1.1.254)。
  • 目的IP地址:DHCP代理的下行IP地址(giaddr = 1.1.1.254)被替换为广播IP地址(255.255.255.255)。

注意:在此示例中,由于我们假设“广播标志”设置为1,因此代理代理广播了该消息。 

 

DHCP消息有效负载

  • DHCP服务器标识符(选项54):将DHCP服务器IP地址(100.1.1.1)替换为DHCP代理的上行IP地址(100.1.1.254)。

 

附录B – IP地址更新过程中DHCP消息的格式

 

附录B提供了DHCP消息参数的详细示例,这些参数在IP地址更新过程中被DHCP代理替换。

 

DHCP请求消息

14 IP地址更新过程:DHCP请求消息

 

以太网头

  • 目的MAC地址:DHCP代理的下行MAC地址(m2)替换为DHCP服务器MAC地址(m5)。
  • 源MAC地址:将PC MAC地址(m1)替换为DHCP代理(m3)的上行链路MAC地址。

IP头

  • 源IP地址:PC IP地址(m3)替换为DHCP代理的上行IP地址(100.1.1.254)。
  • 目的IP地址:DHCP代理的上行IP地址(100.1.1.254)被替换为DHCP服务器IP地址(100.1.1.1)。

DHCP消息有效负载

  • 网关IP地址(giaddr):IP地址(0.0.0.0)替换为从PC接收DHCP请求消息的DHCP代理的下行IP地址(1.1.1.254)。

 

DHCP确认消息

15 IP地址更新过程:DHCP确认消息

 

以太网头

  • 目的MAC地址:代理的上行MAC地址(m3)替换为PC MAC地址(m1)。
  • 源MAC地址:将DHCP服务器MAC地址(m5)替换为DHCP代理的下行链路MAC地址(m2)。

IP头

  • 源IP地址:将DHCP服务器的IP地址(100.1.1.1)替换为DHCP代理的下行IP地址(1.1.1.254)。
  • 目的IP地址:DHCP代理的下行IP地址(giaddr = 1.1.1.254)被替换为PC IP地址(1.1.1.10)。

DHCP消息有效负载

  • DHCP服务器标识符(选项54):将DHCP服务器IP地址(100.1.1.1)替换为DHCP代理的上行IP地址(100.1.1.254)。

 

附录C – IP地址发布过程中DHCP消息的格式

 

附录C提供了DHCP消息参数的详细示例,这些参数在IP地址释放过程中被DHCP代理替换。

 

DHCP释放消息

16 IP地址释放过程:DHCP释放消息

 

以太网头

  • 目的MAC地址:DHCP代理的下行MAC地址(m2)替换为DHCP服务器MAC地址(m5)。
  • 源MAC地址:将PC MAC地址(m1)替换为DHCP代理(m3)的上行链路MAC地址。

       IP头

  • 源IP地址:PC IP地址(m3)替换为DHCP代理的上行IP地址(100.1.1.254)。
  • 目的IP地址:DHCP代理的上行IP地址(100.1.1.254)被替换为DHCP服务器IP地址(100.1.1.1)。

DHCP消息有效负载

  • 网关IP地址(giaddr):IP地址(0.0.0.0)替换为DHCP代理的下行IP地址(1.1.1.254),在该IP处接收到来自PC的DHCP释放消息。
  • DHCP服务器标识符(选项54):DHCP代理的上行IP地址(100.1.1.254)被替换为DHCP服务器IP地址(100.1.1.1)。
收藏
点赞
道具卡
分享
官方QQ群:872611894(人少,慎加😜,群密码无需输入https://)
最新回复 (0)
返回