Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

用于网络安全的 DHCP 侦听

DHCP 侦听支持

DHCP 侦听通过识别传入的 DHCP 数据包并拒绝网络中不受信任设备确定为不可接受的 DHCP 流量来提供额外的安全性。

什么是 DHCP 侦听

DHCP 动态分配 IP 地址,将地址租赁给设备,以便在分配它们的设备不再需要这些地址时可以重复使用这些地址。需要通过 DHCP 获取 IP 地址的主机和终端设备必须通过 LAN 与 DHCP 服务器通信。

DHCP 侦听会调查传入的 DHCP 数据包并检查 DHCP 消息。它提取分配给客户端的 IP 地址和租赁信息并构建数据库。使用此数据库,它可以确定到达的数据包是否来自有效的客户端,即客户端的 IP 地址是由 DHCP 服务器分配的。这样,DHCP 侦听通过跟踪受信任的 DHCP 服务器(服务器连接到受信任的网络端口)分配给下游网络设备的有效 IP 地址,充当网络安全的守护者。

DHCP 侦听的优势

  • DHCP 侦听通过动态 IP 源过滤提供额外的安全层。

  • DHCP 侦听可以通过过滤掉到达错误端口或内容不正确的 DHCP 数据包来防止网络中的恶意 DHCP 活动。

激活 DHCP 侦听

使用 DHCP 侦听功能时,了解如何启用 DHCP 侦听功能非常重要。

在 Junos OS 设备上,不能将 DHCP 侦听功能配置为独立功能。每当为设备的特定 VLAN 或接口或路由实例配置 DHCP 安全或 DHCP 中继或 DHCP 服务器时,都会在该 VLAN/接口/路由实例上自动启用 DHCP 侦听以执行其任务。

例如:

  • 在特定路由实例的给定接口列表上启用 DHCP 中继时
  • DHCP侦听会在这些接口上为该路由实例自动启用。
  • 在特定 VLAN 上启用 DHCP 安全后,系统会自动在该 VLAN 上启用 DHCP 侦听功能。

Junos OS 在以下位置的交换机/路由器/防火墙上启用 DHCP 侦听:

  • 在路由实例中配置以下选项时的路由实例:

    • dhcp-relay [edit forwarding-options] 层次结构级别的语句。
    • dhcp-local-server [edit system services] 层次结构级别的语句。
  • 为任何端口安全功能配置以下选项时的交换机:

    • dhcp-security [edit vlans vlan-name forwarding-options] 层次结构级别的语句。
提示:

如果需要配置 DHCP 中继,请使用该 forward-only 语句,除非需要订阅者管理或服务等级 (CoS)。

我们建议您阅读 DHCP 文档,并使用启用了 DHCP 跟踪选项的实验室来检查和了解配置。

配置 DHCP 侦听

在默认的 DHCP 侦听配置中,所有流量都会被侦听。

在 Junos OS 设备上,当您在路由实例中配置以下选项时,将在路由实例中启用 DHCP 侦听:

  • dhcp-relay[edit forwarding-options]层次结构级别的语句

  • dhcp-local-server[edit system services]层次结构级别的语句

  • 您可以选择使用该 forward-snooped-clients 语句来评估侦听的流量,并根据接口是否配置为组的一部分来确定流量是转发还是丢弃流量。

如果没有与数据包关联的订阅者,则默认情况下路由器会丢弃该数据包。要启用侦听数据包的正常处理,必须在层次结构级别显式[edit forwarding-options dhcp-relay]配置allow-snooped-clients语句。

您可以为特定路由实例配置 DHCP 侦听支持:

  • DHCPv4 中继代理 — 覆盖路由器(或交换机)的默认侦听配置,并指定对命名接口组或命名组中的特定接口全局启用或禁用 DHCP 侦听。

    在单独的过程中,您可以设置全局配置,以指定 DHCPv4 中继代理是转发还是丢弃所有接口、仅配置接口或仅未配置接口的侦听数据包。路由器还使用全局 DHCP 中继代理侦听配置来确定是转发还是丢弃侦听的 BOOTREPLY 数据包。续订请求可以直接单播到 DHCP 服务器。这是一个 BOOTPREQUEST 数据包,并被窥探。

  • DHCPv6 中继代理 — 与 DHCPv4 中继代理的侦听支持一样,您可以覆盖路由器上的默认 DHCPv6 中继代理侦听配置,以显式启用或禁用全局侦听支持、命名接口组或具有命名接口组的特定接口。

    在多中继拓扑中,如果 DHCPv6 客户端和 DHCPv6 服务器之间有多个 DHCPv6 中继代理,侦听使客户端和服务器之间的干预 DHCPv6 中继代理能够正确接收和处理来自客户端的单播流量,并将其转发到服务器。DHCPv6 中继代理通过在每个转发表的基础上设置 UDP 端口 547(DHCPv6 UDP 服务器端口)的过滤器来侦听传入的单播 DHCPv6 数据包。然后,DHCPv6 中继代理处理过滤器截获的数据包,并将这些数据包转发到 DHCPv6 服务器。

    与 DHCPv4 中继代理不同,DHCPv6 中继代理不支持对 DHCPv6 侦听数据包的转发支持的全局配置。

  • DHCP 本地服务器 — 配置 DHCP 本地服务器是转发还是丢弃所有接口、仅配置接口或仅未配置接口的侦听数据包。

  • 您还可以禁用侦听过滤器。在上述配置中,所有 DHCP 流量都会在转发或丢弃路由实例之前转发到路由实例中速度较慢的路由平面。禁用侦听过滤器会导致可以直接从速度更快的硬件控制平面转发的 DHCP 流量绕过路由控制平面。

为 DHCP 本地服务器配置 DHCP 侦听数据包转发支持

您可以配置 DHCP 本地服务器处理 DHCP 侦听数据包的方式。根据配置,DHCP 本地服务器会转发或丢弃它收到的侦听数据包。

表 1 显示了路由器对 DHCP 本地服务器侦听数据包执行的操作。

注意:

配置的接口是已使用层次结构中的[edit system services dhcp-local-server]语句配置group的那些接口。未配置的接口是指位于逻辑系统/路由实例中但尚未由group语句配置的接口。

表 1:DHCP 本地服务器侦听数据包的操作

forward-snooped-clients 配置

对已配置接口的操作

对未配置接口的操作

forward-snooped-clients 未配置

下降

下降

all-interfaces

转发

转发

configured-interfaces

转发

下降

non-configured-interfaces

下降

转发

要为 DHCP 本地服务器配置 DHCP 侦听数据包转发,请执行以下操作:

  1. 指定要配置 DHCP 本地服务器。
  2. 为 DHCP 本地服务器启用 DHCP 侦听数据包转发。
  3. 指定侦听数据包转发支持的接口。

例如,要将 DHCP 本地服务器配置为仅在已配置的接口上转发 DHCP 侦听数据包,请执行以下操作:

启用和禁用 DHCP 中继代理的 DHCP 侦听数据包支持

DHCP 中继代理使用由两部分组成的配置来确定如何处理 DHCP 侦听数据包。本主题介绍第一个过程,在该过程中,您可以启用或禁用对 DHCP 中继代理的侦听支持,并选择性地覆盖默认侦听配置。

第二个过程仅适用于 DHCPv4 中继代理,在为 DHCP 中继代理配置 DHCP 侦听数据包转发支持中进行了介绍,并为侦听客户端配置转发操作,该操作指定 DHCP 中继代理是转发还是丢弃侦听流量。

您可以为 DHCP 中继、一组接口或组中的特定接口全局启用或禁用 DHCP。

默认情况下,为 DHCP 中继启用 DHCP 侦听。要全局启用或禁用 DHCP 侦听支持,请执行以下操作:

  1. 指定要配置 DHCP 中继代理。
    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  2. 指定要覆盖默认配置。
    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  3. 启用或禁用 DHCP 侦听支持。
    • 要启用 DHCP 侦听,请执行以下操作:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

    • 要禁用 DHCP 侦听:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

例如,要启用全局 DHCP 侦听支持,请执行以下操作:

要启用或禁用对一组接口的 DHCP 侦听支持,请执行以下操作:

  1. 指定要配置 DHCP 中继代理。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  2. 指定命名组。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  3. 指定要覆盖默认配置。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  4. 启用或禁用 DHCP 侦听支持。

    • 要启用 DHCP 侦听,请执行以下操作:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

    • 要禁用 DHCP 侦听:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

例如,要在组 boston中的所有接口上启用 DHCP 侦听支持:

要在特定接口上启用或禁用 DHCP 侦听支持,请执行以下操作:

  1. 指定要配置 DHCP 中继代理。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  2. 指定包含接口的命名组。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  3. 指定要为其配置 DHCP 侦听的接口。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  4. 指定要覆盖接口上的默认配置。

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  5. 启用或禁用 DHCP 侦听支持。

    • 要启用 DHCP 侦听,请执行以下操作:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

    • 要禁用 DHCP 侦听:

      • 对于 DHCP 中继代理:

      • 对于 DHCPv6 中继代理:

例如,要在组中boston的接口ge-2/1/8.0上禁用 DHCP 侦听支持:

要在组中sunnyvale的接口ge-3/2/1.1上启用 DHCPv6 侦听支持,请执行以下操作:

配置 DHCP 侦听数据包转发支持 DHCP 中继代理

您可以配置 DHCP 中继代理处理 DHCP 侦听数据包的方式。根据配置,DHCP 中继代理会转发或丢弃它收到的侦听数据包。

DHCP 中继使用两部分配置来确定如何处理 DHCP 侦听数据包。本主题介绍如何使用该 forward-snooped-clients 语句来管理 DHCP 中继代理是转发还是丢弃侦听数据包,具体取决于侦听数据包的接口类型。在 DHCP 中继代理侦听配置的另一部分中,启用或禁用 DHCP 中继侦听功能。

表 2 显示了当语句启用 allow-snooped-clients DHCP 侦听时路由器或交换机对侦听数据包执行的操作。

路由器或交换机还使用 DHCP 中继代理转发支持的配置来确定如何处理侦听的 BOOTREPLY 数据包。

表 2:启用 DHCP 侦听时 DHCP 中继代理侦听数据包的操作

forward-snooped-clients 配置

对已配置接口的操作

对未配置接口的操作

forward-snooped-clients 未配置

侦听数据包会导致创建订阅者(DHCP 客户端)

下降

all-interfaces

转发

转发

configured-interfaces

转发

下降

non-configured-interfaces

侦听数据包会导致创建订阅者(DHCP 客户端)

转发

表 3 显示了当语句禁用 no-allow-snooped-clients DHCP 侦听时路由器(或交换机)对侦听数据包执行的操作。

表 3: 禁用 DHCP 侦听时 DHCP 中继代理侦听数据包的操作

forward-snooped-clients 配置

对已配置接口的操作

对未配置接口的操作

forward-snooped-clients 未配置

下降

下降

all-interfaces

下降

转发

configured-interfaces

下降

下降

non-configured-interfaces

下降

转发

表 4 显示了路由器(或交换机)对侦听的 BOOTREPLY 数据包执行的操作。

表 4:侦听的 BOOTREPLY 数据包的操作

forward-snooped-clients 配置

行动

forward-snooped-clients 未配置

如果未找到客户端,则丢弃侦 BOOTREPLY 听数据包

forward-snooped-clients 所有配置

如果未找到客户端,则转发侦 BOOTREPLY 听数据包

已配置的接口已使用层次结构中的[edit forwarding-options dhcp-relay]语句进行group配置。未配置的接口位于逻辑系统/路由实例中,但尚未通过group语句进行配置。

要为 DHCP 中继代理配置 DHCP 侦听数据包转发和 BOOTREPLY 侦听数据包转发,请执行以下操作:

  1. 指定要配置 DHCP 中继代理。
  2. 启用 DHCP 侦听数据包转发。
  3. 指定侦听数据包转发支持的接口。

例如,要将 DHCP 中继代理配置为仅在已配置的接口上转发 DHCP 侦听数据包,请执行以下操作:

禁用 DHCP 侦听过滤器

DHCP 侦听通过识别传入的 DHCP 数据包来提供 DHCP 安全性。在默认的 DHCP 侦听配置中,所有流量都会被侦听。您可以选择使用该 forward-snooped-clients 语句来评估侦听的流量,并根据接口是否配置为组的一部分来确定流量是转发还是丢弃流量。

在默认配置和使用语句的 forward-snooped-clients 配置中,所有 DHCP 流量都将从硬件控制平面转发到路由实例的路由平面,以确保拦截所有 DHCP 数据包。在某些拓扑(如城域路由环拓扑)中,将所有 DHCP 流量转发到控制平面可能会导致流量过多。 no-snoop 配置语句禁用可直接在硬件控制平面上转发的 DHCP 流量(如具有有效路由的第 3 层单播数据包)的侦听过滤器,从而导致这些 DHCP 数据包绕过速度较慢的路由平面。您可以从 Junos OS 15.1R2 版开始禁用 DHCP 侦听过滤器。

要在 DHCP 本地服务器上禁用 DHCP 侦听过滤器,请执行以下操作:

  1. 指定要配置 DHCP 本地服务器。
  2. 禁用 DHCP 本地服务器的 DHCP 侦听过滤器。
  3. 指定要配置 DHCPv6 本地服务器。
  4. 禁用 DHCPv6 本地服务器的 DHCP 侦听过滤器。

要在 DHCP 中继服务器上禁用 DHCP 侦听过滤器,请执行以下操作:

  1. 指定要配置 DHCP 中继服务器。

  2. 禁用 DHCP 本地服务器的 DHCP 侦听过滤器。

  3. 指定要配置 DHCPv6 中继服务器。

  4. 禁用 DHCPv6 本地服务器的 DHCP 侦听过滤器。

示例:配置 DHCP 中继代理的 DHCP 侦听支持

此示例说明如何为 DHCP 中继代理配置 DHCP 侦听支持。

要求

概述

在此示例中,您可以通过完成以下操作来配置 DHCP 中继代理的 DHCP 侦听支持:

  • 覆盖默认的 DHCP 侦听配置,并为组中 frankfurt的接口启用 DHCP 侦听支持。

  • 配置 DHCP 中继代理以仅将侦听数据包转发到已配置的接口。

配置

程序

分步过程

要为 DHCP 侦听配置 DHCP 中继支持,请执行以下操作:

  1. 指定要配置 DHCP 中继代理。

  2. 指定支持 DHCP 侦听的已命名接口组。

  3. 指定要包含在组中的接口。DHCP 中继代理在确定是转发还是丢弃流量时,会将这些接口视为已配置的接口。

  4. 指定要覆盖组的默认配置。

  5. 为组启用 DHCP 侦听支持。

  6. [edit forwarding-options dhcp-relay]返回到层次结构级别以配置转发操作,并指定 DHCP 中继代理仅在已配置的接口上转发侦听数据包:

  7. 为 DHCP 中继代理启用 DHCP 侦听数据包转发。

  8. 指定仅在已配置的接口(组中 frankfurt的接口)上转发侦听数据包。

结果

在配置模式下,输入 show forwarding-options 命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以进行更正。以下输出还显示了法兰克福组中配置的接口范围。

如果完成设备配置,请从配置模式输入 commit

示例:为 DHCPv6 中继代理启用 DHCP 侦听支持

默认情况下,路由器上禁用对 DHCPv6 中继代理的侦听支持。此示例说明如何覆盖默认 DHCPv6 中继代理侦听配置,以便为命名接口组和不同命名组中的特定接口显式启用 DHCPv6 侦听。

注意:

您还可以通过在层次结构级别使用[edit forwarding-options dhcp-relay dhcpv6 overrides]语句全局allow-snooped-clients启用 DHCPv6 侦听支持。

要求

此示例使用以下硬件和软件组件:

  • MX 系列 5G 通用路由平台

  • Junos OS 12.1 或更高版本

准备工作:

概述

在此示例中,您将覆盖默认的 DHCPv6 中继代理侦听配置,以便为以下两项显式启用 DHCP 侦听:

  • 组中名为 boston

  • ge-3/2/1.1名为sunnyvale

配置

要覆盖默认 DHCPv6 中继代理侦听配置,以便为命名接口组和命名组中的特定接口显式启用 DHCPv6 侦听,请执行以下操作:

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到层次结构级别的 CLI [edit] 中。

为指定的接口组启用 DHCPv6 侦听支持

分步过程

要为指定的接口组启用 DHCPv6 侦听支持,请执行以下操作:

  1. 指定要配置 DHCPv6 中继代理。

  2. 指定要为其启用 DHCPv6 侦听的已命名接口组。

  3. 指定要覆盖该组中接口的默认 DHCPv6 配置。

  4. 为组 boston中的所有接口启用 DHCPv6 侦听支持。

结果

在配置模式下,通过在层次结构级别发出 show 语句 [edit forwarding-options dhcp-relay] 来确认配置结果。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。

如果完成路由器配置,请从配置模式输入 commit

为命名组中的特定接口启用 DHCPv6 侦听支持

分步过程

要为命名接口组中的特定接口启用 DHCPv6 侦听支持,请执行以下操作:

  1. [edit forwarding-options dhcp-relay dhcpv6]返回到层次结构级别以指定要配置 DHCPv6 中继代理。

  2. 指定包含接口的命名组。

  3. 指定要为其启用 DHCPv6 侦听的组中 sunnyvale 的接口。

  4. 指定要覆盖组中sunnyvale接口ge-3/2/1.1的默认 DHCPv6 配置。

  5. 为组中sunnyvale的接口ge-3/2/1.1启用 DHCPv6 侦听支持。

结果

在配置模式下,通过在层次结构级别发出 show 语句 [edit forwarding-options dhcp-relay] 来确认配置结果。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。

如果完成路由器配置,请从配置模式输入 commit

验证

要验证多中继拓扑中的 DHCPv6 配置,请执行以下任务:

验证 DHCPv6 中继代理客户端的地址绑定

目的

验证动态主机配置协议 (DHCP) 客户端表中的 DHCPv6 地址绑定。

行动

显示有关 DHCPv6 中继代理客户端的地址绑定的详细信息。

意义

Server Address命令输出中的show dhcpv6 relay binding detail字段通常显示 DHCPv6 服务器的 IP 地址。在此示例中,字段中的值unknownServer Address指示这是一个多中继拓扑,其中 DHCPv6 中继代理不直接与 DHCPv6 服务器相邻,并且不会检测到服务器的 IP 地址。

在这种情况下,输出将改为包含该 Next Hop Server Facing Relay 字段,该字段显示 DHCPv6 服务器方向上的下一跃点地址。

防止 DHCP 欺骗

DHCP DHCP spoofing有时会出现一个问题是。在 DHCP 欺骗中,不受信任的客户端会用 DHCP 消息淹没网络。通常,这些攻击利用源 IP 地址欺骗来隐藏攻击的真正来源。

DHCP 侦听通过将 DHCP 消息复制到控制平面并使用数据包中的信息创建反欺骗过滤器来帮助防止 DHCP 欺骗。反欺骗过滤器将客户端的 MAC 地址绑定到其 DHCP 分配的 IP 地址,并使用此信息过滤欺骗性的 DHCP 消息。在典型拓扑中,运营商边缘路由器(在此函数中也称为宽带网络网关 [BNG])连接 DHCP 服务器和执行侦听的 MX 系列路由器(或宽带服务聚合器 [BSA])。MX 系列路由器连接到客户端和 BNG。

要配置 DHCP 侦听,请在 DHCP 组中包括相应的接口。您可以为 VPLS 环境和网桥域配置 DHCP 侦听。

  • 在 VPLS 环境中,DHCP 请求通过伪线转发。您可以在层次结构级别配置 [edit routing-instances routing-instance-name] DHCP 侦听 VPLS。

  • 在网桥域中,DHCP 侦听基于每个学习网桥工作。每个学习域都必须配置一个上游接口。此接口充当来自客户端的 DHCP 请求的泛洪端口。DHCP 请求在桥接域中的学习域之间转发。您可以在层次结构级别对 [edit routing-instances routing-instance-name bridge-domains bridge-domain-name] 桥接域配置 DHCP 侦听。

要配置 DHCP 中继以防止 DHCP 欺骗,请执行以下操作:

  1. 访问 VPLS 或桥接域配置的相应层次结构。
  2. 指定要配置 DHCP 中继。
  3. 创建组并分配名称。

  4. 指定一个或多个接口的名称。DHCP 将仅信任在指定接口上获知的 MAC 地址。
注意:

您可以显式启用和禁用对 DHCP 侦听客户端的接口支持。请参阅 启用和禁用 DHCP 中继代理的 DHCP 侦听数据包支持

版本历史记录表
释放
描述
15.1R2
您可以从 Junos OS 15.1R2 版开始禁用 DHCP 侦听过滤器。