本页内容
DHCP 中继代理
DHCP 中继代理作为 DHCP 客户端和服务器之间的接口运行。DHCP 中继代理在不同 IP 网络上的 DHCP 客户端和 DHCP 服务器之间中继 DHCP 消息。有关更多信息,请阅读本主题。
了解 DHCP 中继代理操作
作为 DHCP 中继代理操作的瞻博网络设备会将来自 BOOTP 和 DHCP 客户端的传入请求转发到指定的 BOOTP 或 DHCP 服务器。客户端请求可以通过虚拟专用网 (VPN) 隧道进行传输。
您不能将单个设备接口配置为同时作为 DHCP 客户端和 DHCP 中继运行。
接口上收到的 DHCP 请求与位于某个接口上的主 IP 地址/子网相同的子网中的 DHCP 池相关联。如果某个接口与多个 IP 地址/子网相关联,设备将使用分配的数字最低的 IP 地址作为接口的主 IP 地址/子网。要更改接口上列为主地址的 IP 地址/子网,请使用 set interfaces < interface name > unit 0 family inet xxx.xxx.xxx.xxx/yy primary
命令并提交更改。
通过 DHCP 未配置接口传输的所有 DHCP 数据包都可能会丢失。
启用 DHCP 中继或 DHCP 服务器功能还启用了 DHCP 侦听功能,该功能可以分析通过设备的任何接口(DHCP 配置和未配置的接口)接收的所有 DHCP 数据包。
未在 DHCP 设置下列出的接口被视为 unconfigured
接口。根据配置,将丢弃在 DHCP 未配置接口上接收的 DHCP 数据包。
DHCP 中继代理、DHCP 客户端和 DHCP 服务器之间的交互
无论软件安装在路由器上还是交换机上,DHCP 中继代理、DHCP 客户端和 DHCP 服务器之间的交互模式都是相同的。但是,使用细节存在一些差异。
路由器 — 在典型的运营商边缘网络配置中,DHCP 客户端位于订阅者计算机上,DHCP 中继代理配置在 DHCP 客户端与一个或多个 DHCP 服务器之间的路由器上。
在交换机上 — 在典型的网络配置中,DHCP 客户端位于访问设备上,如个人计算机,DHCP 中继代理配置在 DHCP 客户端与一个或多个 DHCP 服务器之间的交换机上。
以下步骤高层介绍了在包含两个 DHCP 服务器的配置中 DHCP 客户端、DHCP 中继代理和 DHCP 服务器如何交互。
DHCP 客户端发送一个 discover 数据包,以查找网络中要获取订阅者(或 DHCP 客户端)的配置参数(包括 IP 地址)的 DHCP 服务器。
DHCP 中继代理接收发现数据包,并将副本转发到两个 DHCP 服务器中的每个服务器。然后,DHCP 中继代理在其内部客户端表中创建一个条目,以跟踪客户端的状态。
为了响应接收发现数据包,每个 DHCP 服务器都会向客户端发送一个优惠数据包。DHCP 中继代理接收优惠数据包并将其转发至 DHCP 客户端。
收到优惠数据包后,DHCP 客户端将选择要从其获取配置信息的 DHCP 服务器。通常,客户端会选择在 IP 地址上提供最长租用时间的服务器。
DHCP 客户端发送一个请求数据包,用于指定从其获取配置信息的 DHCP 服务器。
DHCP 中继代理接收请求数据包,并将副本转发到两个 DHCP 服务器中的每个服务器。
客户端请求的 DHCP 服务器发送一个包含客户端配置参数的确认 (ACK) 数据包。
DHCP 中继代理接收 ACK 数据包并将其转发给客户端。
DHCP 客户端接收 ACK 数据包并存储配置信息。
如果配置为这样做,DHCP 中继代理将为此客户端安装主机路由和地址解析协议 (ARP) 条目。
在 IP 地址上建立初始租约后,DHCP 客户端和 DHCP 服务器使用单播传输协商租约续订或解除。DHCP 中继代理对客户端与通过路由器(或交换机)的服务器之间的所有单播数据包进行“侦听”,以确定此客户端的租约何时过期或何时释放。此过程称为 租约影子 或 被动侦听。
在所有 Junos OS 设备上,当 DHCP 中继配置选项 forward-only
时,如果逻辑隧道接口,DHCP 客户端在逻辑隧道接口上终止
包含多个逻辑接口
在同一接口的多个逻辑接口上使用同一
lt
VLAN
在这种情况下,DHCP 中继可能无法发送 OFFER 消息。
这个问题适用于 Junos OS 19.3R3、19.4R2、18.4R3、19.4R1、19.3R2、18.4R3-S1、17.4R3 版本。
DHCP 中继代理最低配置
此示例显示了在路由器或交换机上使用扩展 DHCP 中继代理所需的最低配置:
[edit forwarding-options] dhcp-relay { server-group { test 203.0.113.21; } active-server-group test; group all { interface fe-0/0/2.0; } }
本主题中的接口类型只是一个示例。 fe-
EX 系列交换机不支持接口类型。
forward-only
DHCP 中继配置不需要安装 S-SA-FP 许可证。
此示例将创建一个 IP 地址为 test
203.0.113.21 的服务器组和一个活动服务器组。DHCP 中继代理配置将应用于名为的 all
组。在此组内,在接口 fe-0/0/2.0 上启用了 DHCP 中继代理。
在环路接口上配置 IPv4 和 IPv6 地址
在其他服务 VRF 中配置 DHCP 服务器时,必须在服务器 VRF 配置中的环路接口上配置 IPv4 和 IPv6 地址,以便 DCHP 中继功能在所有其他 VRF 中工作。
配置 dhcp 中继转发仅回复选项,以启用转发至其他 VRF 中 DHCP 客户端的 DHCP 响应数据包。
[edit routing-instances] Svr-1 { instance-type vrf; routing-options { auto-export; } protocols { evpn { ip-prefix-routes { advertise direct-nexthop; encapsulation vxlan; vni 11000; export type5-export; } } } forwarding-options { dhcp-relay { dhcpv6 { forward-only-replies; } forward-only-replies; } } interface lo0.2; route-distinguisher 103.0.0.1:5000; vrf-import import-tenant; vrf-target target:5000:1; vrf-table-label; } lo0 { unit 0 { family inet { address 103.0.0.1/32; } family inet6 { address 1003::1/128; } } unit 1 { family inet { address 103.0.0.1/32; } family inet6 { address 1003::1/128; } } unit 2 { family inet { address 103.0.0.2/32; } family inet6 { address 1003::2/128; } }
配置 DHCP 中继代理
DHCP 中继代理作为 DHCP 客户端和服务器之间的接口运行。DHCP 中继代理在不同 IP 网络上的 DHCP 客户端和 DHCP 服务器之间中继 DHCP 消息。
此示例介绍如何在 SRX 系列设备上配置 DHCP 中继代理。充当 DHCP 中继代理的 SRX 系列设备负责在 DHCP 客户端和属于不同路由实例的服务器之间转发请求和响应。
要求
此示例使用以下硬件和软件组件:
采用 Junos OS 15.1X49-D10 或更高版本的 SRX 系列设备。
概述
您可以配置 DHCP 中继代理,以在 DHCP 服务器和位于不同虚拟路由实例中的 DHCP 客户端之间交换 DHCP 消息时提供额外的安全性。当 DHCP 服务器驻留在与客户端网络隔离的网络中时,此配置适用于 DHCP 服务器和 DHCP 客户端之间的 DHCP 中继连接。
拓扑
要在不同路由实例之间交换 DHCP 消息,必须同时启用 DHCP 中继代理面向服务器的接口和面向客户端的接口,以识别和转发 DHCP 数据包。
下图 1 显示了 DHCP 性能,即 DHCP 本地服务器、DHCP 客户端和 DHCP 中继代理

以下列表概述了在不同路由实例之间创建 DHCP 消息交换所需的任务:
配置 DHCP 中继代理面向客户端的 DHCP 中继代理。
配置 DHCP 中继代理面向服务器端。
配置安全区域以允许 DHCP 协议。
表1:DHCP 中继参数:
参数
客户端详细信息
服务器端详细信息
接口
ge-0/0/3.0
ge-0/0/4.0
路由接口
trust-vr
untrust-vr
IP 地址
10.1.1.2/24
20.1.1.1/24
注意:为了使此设置正常工作,DHCP 服务器连接路由和中继代理接口路由必须同时位于路由实例中。例如,在上述拓扑中,服务器路由 30.1.1.0/24 需要与 dhcp 中继 VR 共享,dhcp-中继接口路由 10.1.1.0/24 确切需要与默认路由实例共享。
此外,必须使用 DHCP 服务器的路由实例中添加一个虚拟 dhcp 中继配置。如果未配置此功能,dhcp 中继将无法从 DHCP 服务器接收数据包。
配置
CLI 快速配置
以下过程介绍了在不同路由实例中的 DHCP 服务器和客户端之间创建 DHCP 消息交换的配置任务。要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层级的 [edit]
CLI 中,然后从配置模式进入 commit
。
面向客户端的支持快速配置:
set routing-instances trust-vr instance-type virtual-router set routing-instances trust-vr interface ge-0/0/3.0 set interfaces ge-0/0/3 unit 0 family inet address 10.1.1.2/24
面向服务器的支持的快速配置:
set routing-instances untrust-vr instance-type virtual-router set routing-instances untrust-vr interface ge-0/0/4.0 set routing-instances untrust-vr forwarding-options dhcp-relay forward-only-replies set interfaces ge-0/0/4 unit 0 family inet address 20.1.1.1/24
DHCP 中继支持的快速配置:
set routing-instances untrust-vr forwarding-options dhcp-relay server-group dummy-config set routing-instances untrust-vr routing-options instance-import import_relay_route_to_server_vr set routing-instances untrust-vr routing-options static route 30.1.1.0/24 next-hop 20.1.1.2 set routing-instances trust-vr forwarding-options dhcp-relay server-group server-1 30.1.1.2 set routing-instances trust-vr forwarding-options dhcp-relay active-server-group server-1 set routing-instances trust-vr forwarding-options dhcp-relay group relay-in-vr interface ge-0/0/3.0 set routing-instances trust-vr routing-options instance-import export_dhcp_server_route set policy-options policy-statement export_dhcp_server_route term 1 from instance untrust-vr set policy-options policy-statement export_dhcp_server_route term 1 from route-filter 30.1.1.0/24 exact set policy-options policy-statement export_dhcp_server_route term 1 then accept set policy-options policy-statement export_dhcp_server_route term 2 then reject set policy-options policy-statement import_relay_route_to_server_vr term 1 from instance trust-vr set policy-options policy-statement import_relay_route_to_server_vr term 1 from route-filter 10.1.1.0/24 exact set policy-options policy-statement import_relay_route_to_server_vr term 1 then accept set policy-options policy-statement import_relay_route_to_server_vr term 2 then reject set routing-options static route 30.1.1.2/32 next-table untrust-vr.inet.0
安全区域以允许 DHCP 协议的快速配置:
set security policies default-policy permit-all set security zones security-zone untrust interfaces ge-0/0/4.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/4.0 host-inbound-traffic protocols all set security zones security-zone trust interfaces ge-0/0/3.0 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/3.0 host-inbound-traffic protocols all
程序
逐步过程
以下示例要求您在配置层次结构中的各个级别上导航。有关如何操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置 DHCP 中继代理面向客户端的支持:
将路由实例类型设置为虚拟路由器。
[edit] user@host# set routing-instances trust-vr instance-type virtual-router
设置虚拟路由器的接口
[edit] user@host# set routing-instances trust-vr interface ge-0/0/3.0
将 IP 地址设置为接口。
[edit] user@host# set interfaces ge-0/0/3 unit 0 family inet address 10.1.1.2/24
程序
逐步过程
要配置 DHCP 中继代理面向服务器端的支持:
设置虚拟路由器。
[edit] user@host# set routing-instances untrust-vr instance-type virtual-router
设置虚拟路由器的接口。
[edit] user@host# set routing-instances untrust-vr interface ge-0/0/4.0
设置“仅转发回复”选项。
[edit] user@host# set routing-instances untrust-vr forwarding-options dhcp-relay forward-only-replies
将 IP 地址设置为接口。
[edit] user@host# set interfaces ge-0/0/4 unit 0 family inet address 20.1.1.1/24
程序
逐步过程
要配置 DHCP 本地服务器以支持:
在 dhcp 中继中为不信任 vr 路由实例设置配置
[edit ] user@host# set routing-instances untrust-vr forwarding-options dhcp-relay server-group dummy-config user@host# set routing-instances untrust-vr routing-options instance-import import_relay_route_to_server_vr user@host# set routing-instances untrust-vr routing-options static route 30.1.1.0/24 next-hop 20.1.1.2
在 dhcp 中继中为 trust-vr 路由实例设置配置
[edit ] user@host# set routing-instances trust-vr forwarding-options dhcp-relay server-group server-1 30.1.1.2 user@host# set routing-instances trust-vr forwarding-options dhcp-relay active-server-group server-1 user@host# set routing-instances trust-vr forwarding-options dhcp-relay group relay-in-vr interface ge-0/0/3.0 user@host# set routing-instances trust-vr routing-options instance-import export_dhcp_server_route
设置配置,在路由实例之间共享路由。
[edit ] user@host# set policy-options policy-statement export_dhcp_server_route term 1 from instance untrust-vr user@host# set policy-options policy-statement export_dhcp_server_route term 1 from route-filter 30.1.1.0/24 exact user@host# set policy-options policy-statement export_dhcp_server_route term 1 then accept user@host# set policy-options policy-statement export_dhcp_server_route term 2 then reject user@host# set policy-options policy-statement import_relay_route_to_server_vr term 1 from instance trust-vr user@host# set policy-options policy-statement import_relay_route_to_server_vr term 1 from route-filter 10.1.1.0/24 exact user@host# set policy-options policy-statement import_relay_route_to_server_vr term 1 then accept user@host# set policy-options policy-statement import_relay_route_to_server_vr term 2 then reject user@host# set routing-options static route 30.1.1.2/32 next-table untrust-vr.inet.0
注意:您可以启用 SRX 系列设备作为 DHCP 本地服务器运行。DHCP 本地服务器会根据客户端请求提供 IP 地址和其他配置信息。
程序
逐步过程
要配置安全区域以允许 DHCP 协议:
设置默认安全策略以允许所有流量。
[edit ] user@host# set security policies default-policy permit-all
在接口 ge-0/0/4.0 上设置所有系统服务和协议。
[edit ] user@host# set security zones security-zone untrust interfaces ge-0/0/4.0 host-inbound-traffic system-services all user@host# set security zones security-zone untrust interfaces ge-0/0/4.0 host-inbound-traffic protocols all
在接口 ge-0/0/3.0 上设置所有系统服务和协议。
[edit ] user@host# set security zones security-zone trust interfaces ge-0/0/3.0 host-inbound-traffic system-services all user@host# set security zones security-zone trust interfaces ge-0/0/3.0 host-inbound-traffic protocols all
结果
面向客户的支持结果:
在配置模式下,输入命令以确认 show routing-instances
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show routing-instances trust-vr { instance-type virtual-router; interface ge-0/0/3.0; }
面向服务器的支持成果:
在配置模式下,输入命令以确认
show routing-instances
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show routing-instances untrust-vr { instance-type virtual-router; interface ge-0/0/4.0; forwarding-options { dhcp-relay { forward-only-replies; } } }
DHCP 本地服务器支持的结果:
在配置模式下,输入 、
show policy-options
和show routing-options
命令,show routing-instances
以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show routing-instances trust-vr { routing-options { instance-import export_dhcp_server_route; } forwarding-options { dhcp-relay { server-group { server-1 { 30.1.1.2; } } active-server-group server-1; group relay-in-vr { interface ge-0/0/3.0; } } } } untrust-vr { routing-options { static { route 30.1.1.0/24 next-hop 20.1.1.2; } instance-import import_relay_route_to_server_vr; } forwarding-options { dhcp-relay { server-group { dummy-config; } } } } [edit] user@host# show policy-options policy-statement export_dhcp_server_route { term 1 { from { instance untrust-vr; route-filter 30.1.1.0/24 exact; } then accept; } term 2 { then reject; } } policy-statement import_relay_route_to_server_vr { term 1 { from { instance trust-vr; route-filter 10.1.1.0/24 exact; } then accept; } term 2 { then reject; } } [edit] user@host# show routing-options static { route 30.1.1.2/32 next-table untrust-vr.inet.0; }
安全区域允许 DHCP 协议的结果:
在配置模式下,输入和
show security zones
命令以确认show security policies
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show security policies default-policy { permit-all; } [edit] user@host# show security zones security-zone HOST { interfaces { all; } } security-zone untrust { interfaces { ge-0/0/4.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } security-zone trust { interfaces { ge-0/0/3.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
完成设备配置后,请从配置模式进入 commit
。
验证
验证 DHCP 中继统计信息配置:
目的
验证 DHCP 中继统计信息是否已配置。
行动
在操作模式下,输入
show dhcp relay statistics routing-instance dhcp-relay
命令。Packets dropped: Total 0 Messages received: BOOTREQUEST 1 DHCPDECLINE 0 DHCPDISCOVER 0 DHCPINFORM 0 DHCPRELEASE 0 DHCPREQUEST 1 Messages sent: BOOTREPLY 1 DHCPOFFER 0 DHCPACK 1 DHCPNAK 0 DHCPFORCERENEW 0
在 EX 系列交换机上配置 DHCP 中继代理
您可以将 EX 系列交换机配置为扩展 DHCP 中继代理。这意味着本地连接的主机可以作为广播消息发出 DHCP 请求,而为 DHCP 中继配置的交换机会将消息中继到指定的 DHCP 服务器。将交换机配置为 DHCP 中继代理(如果有本地连接的主机和远程 DHCP 服务器)。
开始之前:
确保交换机可以连接到 DHCP 服务器。
要将交换机配置为扩展 DHCP 中继代理服务器:
配置 DHCP Smart 中继(传统 DHCP 中继)
您可以使用 DHCP 智能中继为您的 DHCP 中继配置提供冗余和弹性。智能中继还提供额外的中继功能,并且需要 DHCP 中继所需的所有配置设置。要使用 DHCP 智能中继,还需要为其分配了多个 IP 地址的接口。您可以通过执行以下任一任务来实现这一目标:
创建一个路由的 VLAN 接口并为其分配至少两个 IP 地址。有关此方法的信息,请参阅 在交换机上配置 IRB 接口 和 示例:使用 IRB 接口在交换机上配置 VLAN 之间的路由 。
创建一个第 3 层逻辑接口(使用 VLAN 标记)并为其分配至少两个 IP 地址。有关此方法的信息,请参阅了解第 3 层逻辑接口和配置第 3 层逻辑接口。
创建具有多个 IP 地址的接口后,输入以下语句之一,以完成智能中继配置:
set forwarding-options helpers bootp smart-relay-global
:使用此语句在所有配置为中继代理的接口上启用智能中继。set forwarding-options helpers bootp interface interface-name smart-relay-agent
:使用此语句在特定接口上启用智能中继。
为某个接口配置智能中继时,交换机会首先从该接口发送 DHCP 请求(发现)消息,并将接口的主地址用作 DHCP 消息的网关 IP 地址(在 giaddr 字段中)。如果未从回复服务器收到 DHCP 优惠消息,则交换机允许客户端使用相同的网关 IP 地址再发送三条发现消息。如果三次重试后未收到 DHCP 优惠消息,交换机将使用备用 IP 地址作为网关 IP 地址重新发送发现消息。如果在中继代理接口上配置了两个以上的 IP 地址,交换机将重复此过程,直到收到 DHCP 提供消息或所有 IP 地址均未成功使用。
另请参阅
禁用 Stray DHCP 请求的自动绑定
已接收但在数据库中没有条目的 DHCP 请求称为杂散请求。默认情况下,DHCP 中继、DHCP 中继代理和 DHCPv6 中继代理试图通过创建数据库条目并将请求转发到 DHCP 服务器来绑定请求客户端。如果服务器使用 ACK 进行响应,则客户端将绑定,并将 ACK 转发到客户端。如果服务器使用 NAK 进行响应,则数据库条目将被删除,并将 NAK 转发到客户端。无论是否配置了身份验证,都会出现此行为。
您可以在全局级别、命名接口组或指定组内的特定接口覆盖默认配置。覆盖默认会使 DHCP 中继、DHCP 中继代理和 DHCPv6 中继代理丢弃所有杂散请求,而不是尝试绑定客户端。
默认情况下,已启用杂散请求的自动绑定。
要禁用自动绑定行为,
no-bind-on-request
请在全局、组或接口级别配置 DHCP 覆盖时包括语句。[edit forwarding-options dhcp-relay overrides] user@host# set no-bind-on-request
要覆盖 DHCPv6 中继代理的默认行为,请在层次结构级别配置覆盖
[edit forwarding-options dhcp-relay dhcpv6]
。[edit forwarding-options dhcp-relay dhcpv6 overrides] user@host# set no-bind-on-request
以下两个示例显示了禁用一组接口的杂散请求自动绑定的配置,以及禁用特定接口上的自动绑定的配置。
要对一组接口禁用杂散请求的自动绑定:
要禁用特定接口上的杂散请求的自动绑定:
指定接口所属的命名组。
[edit forwarding-options dhcp-relay] user@host# edit group boston
指定要禁用自动绑定的接口。
[edit forwarding-options dhcp-relay group boston] user@host# edit interface fe-1/0/1.2
指定要配置覆盖的指定。
[edit forwarding-options dhcp-relay group boston interface fe-1/0/1.2] user@host# edit overrides
禁用接口上的自动绑定。
[edit forwarding-options dhcp-relay group boston interface fe-1/0/1.2 overrides] user@host# set no-bind-on-request
对 DHCP 数据包使用第 2 层单播传输而不是广播
您可以将 DHCP 中继代理配置为覆盖 DHCP 请求数据包中的广播位设置。然后,DHCP 中继代理在发现过程中使用第 2 层单播传输方法将 DHCP 提供回复数据包和 DHCP ACK 回复数据包从 DHCP 服务器发送到 DHCP 客户端。
要覆盖 DHCP 请求数据包中广播位的默认设置:
将网关 IP 地址 (giaddr) 字段更改为 DHCP 中继代理的字段
您可以配置 DHCP 中继代理,以更改它在 DHCP 客户端和 DHCP 服务器之间转发的数据包中的网关 IP 地址 (giaddr) 字段。
在将数据包转发到 DHCP 服务器之前,要用 DHCP 中继代理的 giaddr 覆盖每个 DHCP 数据包的数据包:
配置 DHCP 中继代理,以使用网关 IP 地址替换请求和释放数据包
您可以配置 DHCP 中继代理,在将数据包转发到 DHCP 服务器之前,用网关 IP 地址 (giaddr) 替换请求和释放数据包。
要用 giaddr 替换源地址:
覆盖默认 DHCP 中继配置设置
您可以在全局级别覆盖默认 DHCP 中继配置设置,以覆盖一组指定接口,或覆盖指定组内的特定接口。
要覆盖全局默认 DHCP 中继代理配置选项,请将语句
overrides
及其从属语句包含在[edit forwarding-options dhcp-relay]
层次结构级别。要覆盖一组指定接口的 DHCP 中继配置选项,请将语句包含在
[edit forwarding-options dhcp-relay group group-name]
层次结构级别。要覆盖指定接口组内特定接口的 DHCP 中继配置选项,请将语句包含在
[edit forwarding-options dhcp-relay group group-name interface interface-name]
层次结构级别。要在全球级别、组级别或每个接口上为 DHCPv6 中继配置覆盖,请在层次结构级别使用相应的语句
[edit forwarding-options dhcp-relay dhcpv6]
。
要覆盖默认 DHCP 中继代理配置设置:
禁用接口、组或全局 DHCP 中继代理
您可以在所有接口或一组接口上禁用 DHCP 中继。
要禁用 DHCP 中继代理:
示例:根据 DHCP 选项字符串配置 DHCP 中继代理选择性流量处理
此示例说明如何将 DHCP 中继代理配置为使用 DHCP 选项字符串,以有选择地识别、过滤和处理客户端流量。
要求
此示例使用以下硬件和软件组件:
MX 系列 5G 通用路由平台或 EX 系列交换机
在配置 DHCP 中继代理选择性处理支持之前,确保您:
配置 DHCP 中继代理。
请参阅 扩展 DHCP 中继代理概述。
(可选)如果要将客户端流量转发到服务器组,请配置指定的 DHCP 本地服务器组。
请参阅 对具有通用 DHCP 配置的接口进行分组。
概述
在此示例中,您将 DHCP 中继代理配置为在客户端数据包中使用 DHCP 选项字符串,以便有选择地识别、过滤和处理客户端流量。要配置选择性处理,请执行以下过程:
识别客户端流量 — 指定 DHCP 中继代理用于识别要处理的客户端流量的 DHCP 选项。您指定的选项与客户端流量中的选项匹配。
配置默认操作 — 指定默认处理操作,DHCP 中继用于不满足任何配置的匹配标准的已识别客户端流量。
创建匹配过滤器并将操作与每个过滤器关联 — 指定过滤客户端流量的匹配标准。标准可以是客户端流量中与选项字符串的完全匹配,也可以是部分匹配。将处理操作与每个匹配标准相关联。
配置
要基于 DHCP 选项信息配置 DHCP 中继代理选择性处理,请执行以下操作:
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 [edit]
CLI 中。
set forwarding-options dhcp-relay relay-option option-number 60 set forwarding-options dhcp-relay relay-option equals ascii video-gold forward-only set forwarding-options dhcp-relay relay-option equals ascii video-bronze local-server-group servergroup-15 set forwarding-options dhcp-relay relay-option starts-with hexadecimal fffff local-server-group servergroup-east set forwarding-options dhcp-relay relay-option default-action drop
配置 DHCP 中继代理,以便根据 DHCP 选项字符串选择性地处理客户端流量
逐步过程
要配置 DHCP 中继选择性处理:
指定要配置 DHCP 中继代理支持。
[edit forwarding-options] user@host#
edit dhcp-relay
指定 DHCP 中继代理用于识别传入客户端流量的 DHCP 选项。
[edit forwarding-options dhcp-relay] user@host#
set relay-option option-number 60
配置默认操作,当传入的客户端流量不满足任何配置的匹配标准时,DHCP 中继代理将使用该操作。
[edit forwarding-options dhcp-relay] user@host#
set relay-option default-action drop
配置 DHCP 中继用于处理已识别的客户端流量的确切匹配条件和关联操作。
[edit forwarding-options dhcp-relay] user@host#
set relay-option equals ascii video-gold
forward-only配置 DHCP 中继用于处理客户端流量的第二个完全匹配条件和相关操作。
[edit forwarding-options dhcp-relay] user@host#
set relay-option equals ascii video-bronze
local-server-group servergroup-15配置 DHCP 中继用于处理客户端流量的部分匹配标准和关联操作。
[edit forwarding-options dhcp-relay] user@host#
set relay-option starts-with hexadecimal fffff local-server-group servergroup-east
结果
在配置模式下,通过在层次结构级别发出 show
语句 [edit forwarding-options]
来确认配置结果。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit forwarding-options] user@host# show dhcp-relay { relay-option { option-number 60; equals { ascii video-gold { forward-only; } } equals { ascii video-bronze { local-server-group servergroup-15; } } default-action { drop; } starts-with { hexadecimal fffff { local-server-group servergroup-east; } } } }
完成设备配置后,请从配置模式进入 commit
。
验证
要验证 DHCP 中继代理选择性流量处理的状态,请执行以下任务:
验证 DHCP 中继代理选择性流量处理的状态
目的
验证 DHCP 中继代理选择性流量处理状态。
行动
显示 DHCP 中继代理的统计信息。
user@host> show dhcp relay statistics Packets dropped: Total 30 Bad hardware address 1 Bad opcode 1 Bad options 3 Invalid server address 5 No available addresses 1 No interface match 2 No routing instance match 9 No valid local address 4 Packet too short 2 Read error 1 Send error 1 Option 60 1 Option 82 2 Messages received: BOOTREQUEST 116 DHCPDECLINE 0 DHCPDISCOVER 11 DHCPINFORM 0 DHCPRELEASE 0 DHCPREQUEST 105 Messages sent: BOOTREPLY 0 DHCPOFFER 2 DHCPACK 1 DHCPNAK 0 DHCPFORCERENEW 0 Packets forwarded: Total 4 BOOTREQUEST 2 BOOTREPLY 2
意义
Packets forwarded
命令输出中的show dhcp relay statistics
字段显示由于选择性流量处理配置而转发的客户端数据包数。在此示例中,输出指示 DHCP 中继代理转发的数据包总数,以及转发的数据包数和BOOTREPLY
数据包的BOOTREQUEST
细分。
验证和管理 DHCP 中继配置
目的
查看或清除 DHCP 中继代理客户端的地址绑定或统计信息。
行动
要显示 DHCP 中继代理客户端的地址绑定:
user@host>
show dhcp relay binding
要显示 DHCP 中继代理统计信息:
user@host>
show dhcp relay statistics
要清除 DHCP 中继代理客户端的绑定状态:
user@host>
clear dhcp relay binding
要清除所有 DHCP 中继代理统计信息:
user@host>
clear dhcp relay statistics
要清除或查看有关路由实例中客户端绑定和统计信息的信息,请运行以下命令:
show dhcp relay binding routing instance <routing-instance name>
show dhcp relay statistics routing instance <routing-instance name>
clear dhcp relay binding routing instance <routing-instance name>
clear dhcp relay statistics routing instance <routing-instance name>
在所有 SRX 系列设备上,DHCP 中继都无法根据DHCP_RENEW和DHCP_RELEASE消息更新绑定状态。
另请参阅
扩展 DHCP 中继代理概述
您可以在路由器或交换机上配置扩展 DHCP 中继选项,并使路由器(或交换机)充当 DHCP 中继代理。DHCP 中继代理在 DHCP 客户端和 DHCP 服务器之间转发 DHCP 请求和回复数据包。
DHCP 中继支持动态配置文件的附件,还可以与本地 AAA 服务框架交互,以使用后端身份验证服务器(如 RADIUS)提供订阅者身份验证或 DHCP 客户端身份验证。您可以附加动态配置文件,并按全局或为特定接口组配置身份验证支持。
PTX 系列数据包传输路由器不支持 DHCP 中继代理的身份验证。
在路由器上,您可以在视频/IPTV 等运营商边缘应用程序中使用 DHCP 中继获取订阅者的配置参数,包括 IP 地址。
在交换机上,您可以使用 DHCP 中继获取配置参数,包括 DHCP 客户端的 IP 地址。
使用 dhcp-relay
语句配置的扩展 DHCP 中继代理选项与使用 bootp
语句配置的 DHCP/BOOTP 中继代理选项不兼容。因此,您无法在路由器上同时启用扩展 DHCP 中继代理和 DHCP/BOOTP 中继代理。
有关 DHCP/BOOTP 中继代理的信息,请参阅 将路由器、交换机和接口配置为 DHCP 和 BOOTP 中继代理。
您还可以将扩展 DHCP 中继代理配置为支持 IPv6 客户端。有关DHCPv6 中继代理 功能的信息,请参阅 DHCPv6 中继代理概述。
要配置路由器(或交换机)上的扩展 DHCP 中继代理,请在 dhcp-relay
层级添加语句 [edit forwarding-options]
。
您还可以将 dhcp-relay
语句包含在以下层级:
[edit logical-systems logical-system-name forwarding-options]
[edit logical-systems logical-system-name routing-instances routing-instance-name forwarding-options]
[edit routing-instances routing-instance-name forwarding-options]
DHCP 中继代理、DHCP 客户端和 DHCP 服务器之间的交互
无论软件安装在路由器上还是交换机上,DHCP 中继代理、DHCP 客户端和 DHCP 服务器之间的交互模式都是相同的。但是,使用细节存在一些差异。
路由器 — 在典型的运营商边缘网络配置中,DHCP 客户端位于订阅者计算机上,DHCP 中继代理配置在 DHCP 客户端与一个或多个 DHCP 服务器之间的路由器上。
在交换机上 — 在典型的网络配置中,DHCP 客户端位于访问设备上,如个人计算机,DHCP 中继代理配置在 DHCP 客户端与一个或多个 DHCP 服务器之间的交换机上。
以下步骤高层介绍了在包含两个 DHCP 服务器的配置中 DHCP 客户端、DHCP 中继代理和 DHCP 服务器如何交互。
DHCP 客户端发送一个 discover 数据包,以查找网络中要获取订阅者(或 DHCP 客户端)的配置参数(包括 IP 地址)的 DHCP 服务器。
DHCP 中继代理接收发现数据包,并将副本转发到两个 DHCP 服务器中的每个服务器。然后,DHCP 中继代理在其内部客户端表中创建一个条目,以跟踪客户端的状态。
为了响应接收发现数据包,每个 DHCP 服务器都会向客户端发送一个优惠数据包。DHCP 中继代理接收优惠数据包并将其转发至 DHCP 客户端。
收到优惠数据包后,DHCP 客户端将选择要从其获取配置信息的 DHCP 服务器。通常,客户端会选择在 IP 地址上提供最长租用时间的服务器。
DHCP 客户端发送一个请求数据包,用于指定从其获取配置信息的 DHCP 服务器。
DHCP 中继代理接收请求数据包,并将副本转发到两个 DHCP 服务器中的每个服务器。
客户端请求的 DHCP 服务器发送一个包含客户端配置参数的确认 (ACK) 数据包。
DHCP 中继代理接收 ACK 数据包并将其转发给客户端。
DHCP 客户端接收 ACK 数据包并存储配置信息。
如果配置为这样做,DHCP 中继代理将为此客户端安装主机路由和地址解析协议 (ARP) 条目。
在 IP 地址上建立初始租约后,DHCP 客户端和 DHCP 服务器使用单播传输协商租约续订或解除。DHCP 中继代理对客户端与通过路由器(或交换机)的服务器之间的所有单播数据包进行“侦听”,以确定此客户端的租约何时过期或何时释放。此过程称为 租约影子 或 被动侦听。
DHCP 实时检测
DHCP 订阅者或 DHCP 客户端 IP 会话的实时检测使用主动的实时检测协议对相关客户端进行实时检测检查。客户需要在特定时间内响应实时检测请求。如果在此期间未收到给定次数的连续尝试的响应,则活动检测检查将失败,并会实施失败操作。
全局或按 DHCP 组进行 DHCP 实时检测。