DHCP 侦听
Junos OS 设备上的 DHCP 侦听会验证 DHCP 消息并丢弃无效流量。您可以配置 DHCP 中继代理如何处理 DHCP 侦听数据包。根据配置,DHCP 中继代理会转发或丢弃接收的侦听数据包。有关更多信息,请阅读本主题。
DHCP 侦听支持
DHCP 侦听通过识别传入的 DHCP 数据包并拒绝网络中不受信任的设备确定无法接受的 DHCP 流量,从而提供额外的安全性。
什么是 DHCP 侦听
DHCP 会动态分配 IP 地址,租赁地址给设备,以便在被分配到的设备不再需要这些地址时可重用这些地址。需要通过 DHCP 获取 IP 地址的主机和终端设备必须通过 LAN 与 DHCP 服务器通信。
DHCP 侦听会检查传入的 DHCP 数据包并检查 DHCP 消息。它会提取分配给客户端的 IP 地址和租赁信息,并建立数据库。使用此数据库,它可以确定到达的数据包是否来自有效客户端,即 DHCP 服务器分配的客户端 IP 地址。通过这种方式,DHCP 侦听可以跟踪可信 DHCP 服务器(服务器连接到可信网络端口)分配给下游网络设备的有效 IP 地址,从而保护网络安全。
DHCP 侦听的优势
DHCP 侦听通过动态 IP 源过滤提供一层额外的安全保护。
DHCP 侦听可以通过过滤掉到达错误端口或内容错误的 DHCP 数据包来防止网络中恶意 DHCP 活动。
配置 DHCP 侦听
在默认 DHCP 侦听配置中,所有流量均被侦听。
在 Junos OS 设备上,当您在路由实例中配置以下选项时,DHCP 侦听在路由实例中已启用:
dhcp-relay
层级的[edit forwarding-options]
语句dhcp-local-server
层级的[edit system services]
语句您可以选择使用该
forward-snooped-clients
语句评估侦听的流量,并根据接口是否配置为组的一部分来确定是转发还是丢弃流量。
如果没有订阅者与数据包关联,路由器会默认丢弃侦听的数据包。要启用对侦听数据包的正常处理,必须在层次结构级别显式配置 allow-snooped-clients
语句 [edit forwarding-options dhcp-relay]
。
您可以为特定路由实例配置 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 中继代理。请参阅 扩展 DHCP 中继代理概述。
概述
在此示例中,通过完成以下操作,您将配置 DHCP 侦听支持 DHCP 中继代理:
覆盖默认 DHCP 侦听配置,并为组 frankfurt内接口启用 DHCP 侦听支持。
配置 DHCP 中继代理,以便将侦听的数据包转发至仅配置的接口。
默认情况下,DHCP 侦听是全局启用的。
配置
程序
逐步过程
要为 DHCP 侦听配置 DHCP 中继支持,
指定要配置 DHCP 中继代理。
[edit] user@host# edit forwarding-options dhcp-relay
指定支持 DHCP 侦听的指定接口组。
[edit forwarding-options dhcp-relay] user@host# edit group frankfurt
指定要包含在组中的接口。DHCP 中继代理在确定是转发还是丢弃流量时将其视为配置的接口。
[edit forwarding-options dhcp-relay group frankfurt] user@host# set interface fe-1/0/1.3 upto fe-1/0/1.9
指定要覆盖组的默认配置。
[edit forwarding-options dhcp-relay group frankfurt] user@host# edit overrides
为组启用 DHCP 侦听支持。
[edit forwarding-options dhcp-relay group frankfurt overrides] user@host# set allow-snooped-clients
[edit forwarding-options dhcp-relay]
返回层次结构级别以配置转发操作,并指定 DHCP 中继代理仅在已配置的接口上转发侦听的数据包:[edit forwarding-options dhcp-relay group frankfurt overrides] user@host# up 2
为 DHCP 中继代理启用 DHCP 侦听数据包转发。
[edit forwarding-options dhcp-relay] user@host# edit forward-snooped-clients
指定仅在配置的接口(组中的接口)
frankfurt
上转发侦听的数据包。[edit forwarding-options dhcp-relay forward-snooped-clients] user@host# set configured-interfaces
结果
在配置模式下,输入命令以确认 show forwarding-options
您的配置。如果输出未显示预期的配置,请重复此示例中的说明进行更正。以下输出还显示了法兰克福组中的一系列配置接口。
[edit] user@host# show forwarding-options dhcp-relay { forward-snooped-clients configured-interfaces; group frankfurt { overrides { allow-snooped-clients; } interface fe-1/0/1.3 { upto fe-1/0/1.9; } } }
完成设备配置后,请从配置模式进入 commit
。
为 DHCP 中继代理配置 DHCP 侦听数据包转发支持
您可以配置 DHCP 中继代理如何处理 DHCP 侦听数据包。根据配置,DHCP 中继代理会转发或丢弃接收的侦听数据包。
DHCP 中继使用两部分配置来确定如何处理 DHCP 侦听的数据包。本主题介绍如何使用 forward-snooped-clients
语句管理 DHCP 中继代理是转发还是丢弃侦听的数据包,具体取决于侦听数据包的接口类型。在 DHCP 中继代理侦听配置的另一部分,您可以启用或禁用 DHCP 中继侦听功能。
表 1 显示了当语句启用 DHCP 侦听时,路由器或交换机对被侦听的数据包执行的操作 allow-snooped-clients
。
路由器或交换机还使用 DHCP 中继代理转发支持的配置来确定如何处理侦听的 BOOTREPLY 数据包。
forward-snooped-clients 配置 |
对配置的接口执行的操作 |
对未配置接口的操作 |
---|---|---|
|
侦听的数据包会导致创建订阅者(DHCP 客户端) |
下降 |
|
转发 |
转发 |
|
转发 |
下降 |
|
侦听的数据包会导致创建订阅者(DHCP 客户端) |
转发 |
表 2 显示了当语句禁用 DHCP 侦听时,路由器(或交换机)对侦听的数据包执行的操作no-allow-snooped-clients
。
forward-snooped-clients 配置 |
对配置的接口执行的操作 |
对未配置接口的操作 |
---|---|---|
|
下降 |
下降 |
|
下降 |
转发 |
|
下降 |
下降 |
|
下降 |
转发 |
表 3 显示了路由器(或交换机)对侦听的 BOOTREPLY 数据包执行的操作。
forward-snooped-clients 配置 |
行动 |
---|---|
|
如果找不到客户端,则丢弃侦听 BOOTREPLY 的数据包 |
|
未找到客户端时转发的侦听 BOOTREPLY 数据包 |
已配置的接口已在层次结构中group
[edit forwarding-options dhcp-relay]
使用语句进行配置。未配置的接口位于逻辑系统/路由实例中,但尚未通过语句进行group
配置。
要为 DHCP 中继代理配置 DHCP 侦听数据包转发和 BOOTREPLY 侦听数据包转发:
例如,要配置 DHCP 中继代理,以仅在配置的接口上转发 DHCP 侦听的数据包:
[edit] forwarding-options { dhcp-relay { forward-snooped-clients configured-interfaces; } }