DHCP 活动检测
DHCP 客户端 IP 会话的 DHCP 活跃度检测利用活动活跃度检测协议对相关客户端进行活跃度检测检查。当配置活体检测协议时,如果给定客户端未能响应配置的连续活体检测请求,则客户端绑定将被删除,其资源将被释放。有关更多信息,请阅读本主题。
使用 功能资源管理器 确认平台和版本对特定功能的支持。
查看 特定于平台的 DHCP 中继活跃度检测行为 部分,了解与您的平台相关的注意事项。
DHCP 活跃度检测概述
与 PPP 不同,DHCP 不会将本机激活机制定义为 DHCPv4 或 DHCPv6 协议的一部分。如果没有激活机制,DHCP 本地服务器、DHCP 中继和 DHCP 中继代理就无法快速检测其中任何一个是否与用户或 DHCP 客户端断开连接。相反,它们必须依赖于标准 DHCP 用户会话或 DHCP 客户端会话终止消息。
DHCP 客户端在退出网络之前通常不会发送 DHCP 释放消息。是否发现它们不存在取决于现有的 DHCP 租用时间和释放请求机制。在充当 DHCP 订阅者访问或 DHCP 托管网络中客户端的会话运行状况检查时,这些机制通常不够用。由于 DHCP 租期时间通常过长,无法为会话运行状况故障提供足够的响应时间,而配置较短的 DHCP 租期时间会给控制平面处理带来过度的负担,因此,实施 DHCP 活跃度检测机制可以更好地监控绑定的 DHCP 客户端。配置活跃度检测协议后,如果给定的用户(或客户端)未能响应配置的连续活跃度检测请求数量,则会删除订阅者(或客户端)绑定并释放其资源。
DHCP 用户 IP 或 DHCP 客户端 IP 会话的 DHCP 活跃性检测利用活动性检测协议对相关客户端进行活跃性检测检查。客户端必须在指定的时间内响应活体检测请求。如果在给定的连续尝试次数内未在该时间内收到响应,则活跃度检测检查将失败并实施失败操作。
活跃度检测协议的示例包括面向 DHCPv4 和 DHCPv6 订阅者的双向转发检测 (BFD)、面向 DHCPv4 订阅者的 IPv4 地址解析协议 (ARP),以及面向 DHCPv6 订阅者的使用邻接方发现 (ND) 数据包的 IPv6 邻接方不可达检测 (NUD)。
两种活体检测方法是互斥的。
配置 BFD 活体检测时,请记住以下几点:
您可以为 DHCP 本地服务器和 DHCP 中继配置活跃度检测。
您可以全局配置 DHCPv4 和 DHCPv6 活性检测,也可以按 DHCPv4 或 DHCPv6 组配置。
不支持 BFD 的 DHCPv4 或 DHCPv6 用户访问客户端不受活跃度检测配置的影响。这些客户端可以继续访问网络(在经过验证后),即使路由器(或交换机)上启用了 BFD 活跃度检测也是如此。
配置后,当支持 BFD 的客户端进入绑定状态时,DHCPv4 或 DHCPv6 会为这些客户端启动活跃度检测检查。
为 BFD 客户端启动特定于协议的消息后,这些消息会定期发送到客户端的用户(或客户端)IP 地址,预计会在配置的时间内响应这些活跃性检测请求。
如果在配置的连续尝试次数内未收到支持 BFD 的客户端的活跃度检测响应,则视为活跃度检测检查失败。将应用配置的失败操作来清除客户端绑定。
第 2 层活跃度检测支持的唯一故障操作是
clear-binding。
配置 DHCP ARP 和 ND 第 2 层活跃度检测时,请记住以下几点:
您可以为 DHCP 本地服务器和 DHCP 中继配置活跃度检测。
您可以为每个 DHCPv4 或 DHCPv6 组以及每个双堆栈组全局配置 DHCPv4 和 DHCPv6 ARP 和 ND 活性检测。
ARP/ND 活跃度检测仅适用于符合以下条件的 DHCP 客户端:
通过动态 VLAN 直接连接。
具有永久性第 2 层条目。
DHCPv6 客户端必须具有唯一的源 MAC 地址和链路本地地址。与特定客户端会话关联的所有 IPv6 地址仅使用单个活跃度检测条目。
DHCP 活跃度检测的优势
使用 DHCP 活跃度检测,一旦活跃度检测检查失败,就会对 IP 会话采取行动。更快的响应时间有助于:
针对用户(或 DHCP 客户端)会话提供更准确的基于时间的计数。
更好地保留路由器(交换机)资源。
帮助缩短遭受某些安全攻击的漏洞窗口。
配置检测 DHCP 中继或 DHCP 中继代理客户端使用 BFD 连接
您可以使用双向转发检测 (BFD) 对 DHCP 用户 IP 会话或 DHCP 客户端 IP 会话配置活度检测,以检查 DHCP 中继客户端的连接性。客户端必须在指定的时间内响应活体检测请求。如果在给定的连续尝试次数内未在该时间内收到响应,则活跃度检测检查将失败并实施失败操作。
要为 DHCP 中继配置活跃度检测:
示例:使用 BFD 为 DHCP 中继代理客户端配置全局活跃度检测
此示例说明如何使用双向转发检测 (BFD) 作为活跃度检测方法,为 DHCP 中继代理用户配置活跃度检测。
要求
概述
在此示例中,您可以通过完成以下操作来配置 DHCP 中继代理订阅者的活跃度检测:
为 DHCP 中继用户启用全局活跃度检测。
将 BFD 指定为所有动态创建的 DHCP 中继用户的活跃检测方法。
配置特定于 BFD 的语句来定义协议的行为方式。
配置路由器在发生活跃度检测失败时采取的操作。
此示例说明如何为 DHCPv4 网络配置活跃度检测。DHCPv6 配置还支持活体检测。要配置 DHCPv6 活跃性检测,请在 或 [edit forwarding-options dhcp-relay dhcpv6 group group-name] 层次结构级别包括[edit forwarding-options dhcp-relay dhcpv6]该liveness-detection语句和任何后续配置语句。
配置
过程
分步程序
要为 DHCP 中继配置活跃度检测:
指定要配置活体检测。
[edit forwarding-options dhcp-relay] user@host# edit liveness-detection
指定要配置活体检测方法。
[edit forwarding-options dhcp-relay liveness-detection] user@host# edit method
将 BFD 指定为希望 DHCP 使用的活跃度检测方法。
[edit forwarding-options dhcp-relay liveness-detection method] user@host# edit bfd
配置生成陷阱的检测时间阈值(以毫秒为单位)。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set detection-time threshold 50000
配置 BFD 保留会话启动通知的时间(以毫秒为单位)。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set holddown-interval 50
配置 BFD 最小传输和接收间隔(以毫秒为单位)。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set minimum-interval 45000
配置最小接收间隔(以毫秒为单位)。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set minimum-receive-interval 60000
配置检测时间的乘数值。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set multiplier 100
禁用 BFD 间隔计时器更改或适应网络情况的功能。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set no-adaptation
配置 BFD 会话模式。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set session-mode automatic
配置 BFD 传输间隔的阈值和最小间隔。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set transmit-interval threshold 60000 minimum-interval 45000
配置要检测的 BFD 协议版本。
[edit forwarding-options dhcp-relay liveness-detection method bfd] user@host# set version automatic
配置路由器在发生活跃度检测失败时采取的操作。在此示例中,失败操作是仅当发生活跃度检测失败且检测到本地接口已启动时清除客户端会话。
[edit forwarding-options dhcp-relay liveness-detection] user@host# edit failure-action action
结果
在配置模式下,输入 show forwarding-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明进行更正。以下输出还显示了组 Frankfurt 中的一系列已配置接口。
[edit]
user@host# show forwarding-options
dhcp-relay {
liveness-detection {
failure-action clear-binding-if-interface-up;
method {
bfd {
version automatic;
minimum-interval 45000;
minimum-receive-interval 60000;
multiplier 100;
no-adaptation;
transmit-interval {
minimum-interval 45000;
threshold 60000;
}
detection-time {
threshold 50000;
}
session-mode automatic;
holddown-interval 50;
}
}
}
}
如果完成设备配置,请从配置模式进入。commit
配置使用 BFD 的 DHCP 本地服务器客户端连接检测
您可以使用双向转发检测 (BFD) 对 DHCP 用户 IP 会话或 DHCP 客户端 IP 会话配置活体检测,以检查 DHCP 本地服务器客户端的连接。客户端必须在指定的时间内响应活体检测请求。如果在给定的连续尝试次数内未在该时间内收到响应,则活跃度检测检查将失败并实施失败操作。
您还可以为 DHCP 中继配置 DHCP 活动性检测。
要为 DHCP 本地服务器配置活跃度检测:
示例:使用 BFD 为 DHCP 本地服务器客户端配置组活跃度检测
此示例说明如何使用双向转发检测 (BFD) 作为活跃度检测方法,为 DHCP 本地服务器订阅者或 DHCP 客户端配置组活跃度检测。
要求
此示例使用以下硬件和软件组件:
瞻博网络 MX 系列路由器
瞻博网络 EX 系列交换机
Junos OS 12.1 或更高版本
开始之前:
配置 DHCP 本地服务器。请参阅 了解传统 DHCP 与扩展 DHCP 之间的区别。
概述
在此示例中,您可以通过完成以下操作来为 DHCP 本地服务器订阅者(客户端)配置组活跃度检测:
为 DHCP 本地服务器用户(或 DHCP 客户端)组启用活动检测。
将 BFD 指定为所有动态创建的 DHCP 本地服务器用户(客户端)的活跃度检测方法。
配置特定于 BFD 的语句来定义协议的行为方式。
配置发生活跃度检测失败时路由器(交换机)所采取的操作。
此示例说明如何为 DHCPv4 网络配置活跃度检测。DHCPv6 配置还支持活体检测。要配置 DHCPv6 活跃性检测,请在 或 [edit system services dhcp-local-server dhcpv6 group group-name] 层次结构级别包括[edit system services dhcp-local-server dhcpv6]该liveness-detection语句和任何后续配置语句。
配置
过程
分步程序
要为 DHCP 本地服务器配置组活跃度检测:
指定要配置活体检测。
[edit system services dhcp-local-server ] user@host# edit liveness-detection
指定要为特定 DHCP 本地服务器组配置活跃度检测。
[edit system services dhcp-local-server liveness-detection] user@host# edit group local_group_1
指定要配置活体检测方法。
[edit system services dhcp-local-server group local_group_1 liveness-detection] user@host# edit method
将 BFD 指定为希望 DHCP 使用的活跃度检测方法。
[edit system services dhcp-local-server group local_group_1 liveness-detection method] user@host# edit bfd
配置生成陷阱的检测时间阈值(以毫秒为单位)。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set detection-time threshold 30000
配置 BFD 保留会话启动通知的时间(以毫秒为单位)。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set holddown-interval 50
配置 BFD 最小传输和接收间隔(以毫秒为单位)。
注意:如果为 BFD
transmit-interval语句配置minimum-receive-interval和minimum-interval。[edit system services dhcp-local-servergroup local_group_1 liveness-detection method bfd] user@host# set minimum-interval 45000
配置最小接收间隔(以毫秒为单位)。
注意:如果配置 BFD 最小传输和接收间隔,则无需配置 BFD 最小接收间隔。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set minimum-receive-interval 60000
配置检测时间的乘数值。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set multiplier 100
禁用 BFD 间隔计时器更改或适应网络情况的功能。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set no-adaptation
配置 BFD 会话模式。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set session-mode automatic
配置 BFD 传输间隔的阈值和最小间隔。
注意:如果已配置 BFD 的最小传输和接收间隔,则无需配置传输间隔值。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set transmit-interval threshold 60000 minimum-interval 45000
配置要检测的 BFD 协议版本。
[edit system services dhcp-local-server group local_group_1 liveness-detection method bfd] user@host# set version automatic
配置发生活跃度检测失败时路由器(交换机)所采取的操作。在此示例中,失败操作是仅当发生活跃度检测失败且检测到本地接口已启动时清除客户端会话。
[edit system services dhcp-local-server group local_group_1 liveness-detection] user@host# edit failure-action action
结果
在配置模式下,输入 show system 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明进行更正。
[edit]
user@host# show system
services {
dhcp-local-server {
group local_group_1 {
liveness-detection {
failure-action clear-binding-if-interface-up;
method {
bfd {
version automatic;
minimum-interval 45000;
minimum-receive-interval 60000;
multiplier 100;
no-adaptation;
transmit-interval {
minimum-interval 45000;
threshold 60000;
}
detection-time {
threshold 30000;
}
session-mode automatic;
holddown-interval 50;
}
}
}
}
}
}
如果完成设备配置,请从配置模式进入。commit
使用 ARP 和邻接方发现数据包的 DHCP 活性检测
- 使用 ARP 和邻接方发现数据包进行 DHCP 活跃性检测的工作原理
- 使用 ARP 和 ND 数据包配置 DHCP 本地服务器客户端连接的 BNG 检测
- 配置 BNG 检测 使用 ARP 和 ND 数据包实现的 DHCP 中继客户端连接
- 配置 DHCP 主机 使用 ARP 和 ND 数据包检测客户端连接
使用 ARP 和邻接方发现数据包进行 DHCP 活跃性检测的工作原理
从 Junos OS 17.4R1 版开始,您可以对 DHCPv4 客户端使用 IPv4 地址解析协议 (ARP) 配置活跃度检测,对 DHCPv6 客户端使用 IPv6 邻接方不可达性检测。此第 2 层活跃度检测为 DHCP 客户端主机和充当宽带网络网关 (BNG) 的路由器提供了单独的机制,以确定 DHCP 客户端会话的有效性和状态。这些机制称为 发送 功能和 接收 功能。您可以为 DHCP 本地服务器和 DHCP 中继客户端配置第 2 层活跃度检测。
发送功能
BNG 使用发送功能对其直接连接的 DHCPv4 和 DHCPv6 客户端执行主机连接检查,以确定 DHCP 客户端会话的有效性和状态,并清理非活动会话。 图 1 展示了发送功能。
-
BNG 以可配置的间隔向每个 DHCP 客户端发送请求数据包,然后等待响应。BNG 在未收到及时响应时重试请求。它为 DHCPv4 客户端发送 ARP 请求,并为 DHCPv6 客户端发送邻接方发现 (ND) 请求。
-
如果 BNG 在间隔超时之前收到客户端的响应,则会等待计时器到期,然后向该客户端发送另一个请求。
-
如果 BNG 在间隔超时之前未收到响应,则会将计时器设置为 30 秒并发送另一个请求。这是第一次重试尝试;计时器不可配置。
-
如果 BNG 在计时器到期之前收到客户端的响应,则 BNG 将等待计时器耗尽,将其重置为原始可配置值,发送另一个请求,然后启动计时器。
-
如果 30 秒计时器在收到响应之前过期,BNG 会将计时器设置为 10 秒并发送另一个请求。此计时器值不可配置。
-
如果 BNG 在计时器到期之前收到客户端的响应,则 BNG 将等待计时器耗尽,将其重置为原始可配置值,发送另一个请求,然后启动计时器。
-
如果 BNG 在 10 秒间隔内未收到响应,则会发送另一个请求并再次启动 10 秒计时器。BNG 继续以 10 秒的间隔发送请求,直到在间隔超时或用尽重试尝试次数之前收到客户端的响应。
第一次重试尝试使用 30 秒的间隔。后续重试每隔 10 秒进行一次。因此,可能的 10 秒重试次数为总数减去 1。例如,如果配置了 5 次重试,则重试一次 30 秒,最多重试四次 10 秒。
-
如果 BNG 在重试用尽之前的时间间隔内从未收到客户端的响应,则活跃度检测检查将失败,并将实施清除绑定失败操作。客户端会话将被清除。
接收功能
接收功能使 DHCP 客户端主机能够从 BNG 的角度确定 DHCPv4 或 DHCPv6 客户端会话的状态。BNG 收到 ARP 或 ND 数据包后,会对其直连的 DHCPv4 和 DHCPv6 客户端执行主机连接检查。 图 2 说明了接收功能。
当 BNG 收到其中任一数据包时,将执行以下操作:
-
检查是否为相关地址族 inet 或 inet6 全局启用了用于用户管理的第 2 层活跃性检测。
-
如果未启用第 2 层活跃性检测,则 BNG 将照常响应收到的数据包,而不检查客户端会话的状态。
-
如果为家族启用了活跃度检测,则 BNG 会检查客户端会话是否仍处于绑定状态。
-
如果客户端会话已绑定,BNG 将使用相应的 ARP 或 ND 数据包响应客户端。
-
如果会话未绑定,BNG 将丢弃收到的数据包。它不会向主机发送 ARP 或 ND 响应数据包,以便主机能够确定 BNG 是否将会话视为已关闭。
接收功能的有用性取决于 DHCP 客户端主机是否能够根据未绑定客户端会话的 BNG 没有响应数据包从过时客户端回收资源。如果此功能需要在客户端实现中进行更改,则可能需要使用发送功能。
使用 ARP 和 ND 数据包配置 DHCP 本地服务器客户端连接的 BNG 检测
此过程介绍如何使用 DHCPv4 客户端使用 IPv4 地址解析协议 (ARP) 和 DHCPv6 客户端使用 IPv6 邻接方不可达性检测来配置第 2 层活跃性检测的发送功能,以检查 DHCP 本地服务器客户端的连接。
发送功能使 BNG 能够根据 DHCP 客户端对其发送到客户端的 ARP 或 ND 请求数据包缺乏响应来确定客户端会话是否已关闭。
也可以使用双向转发检测 (BFD) 配置 DHCP 活跃度检测。BFD 活体检测和 ARP/ND 活体检测是互斥的。
要配置 DHCPv4 本地服务器活跃度检测的发送功能:
要配置 DHCPv6 本地服务器活跃度检测的发送功能:
-
指定要配置活体检测方法。
-
对于 DHCPv6 全局配置:
[edit system services dhcp-local-server dhcpv6] user@host# edit liveness-detection method -
对于 DHCPv6 组配置:
[edit system services dhcp-local-server dhcpv6] user@host# edit group group-name liveness-detection method
-
-
指定第 2 层活体检测方法。
-
对于 DHCPv6 全局配置:
[edit system services dhcp-local-server dhcpv6 liveness-detection method] user@host# set layer2-liveness-detection -
对于 DHCPv6 组配置:
[edit system services dhcp-local-server dhcpv6 group group-name liveness-detection method] user@host# set layer2-liveness-detection
-
-
(选答)配置重试次数和间隔计时器。
-
对于 DHCPv6 全局配置:
[edit system services dhcp-local-server dhcpv6 liveness-detection method] user@host# edit layer2-liveness-detection user@host# set max-consecutive-retries number user@host# set transmit-interval seconds -
对于 DHCPv6 组配置:
[edit system services dhcp-local-server dhcpv6 group group-name liveness-detection method] user@host# edit layer2-liveness-detection user@host# set max-consecutive-retries number user@host# set transmit-interval seconds
-
配置 BNG 检测 使用 ARP 和 ND 数据包实现的 DHCP 中继客户端连接
此过程介绍如何使用 DHCPv4 客户端使用 IPv4 地址解析协议 (ARP) 和 DHCPv6 客户端使用 IPv6 邻接方不可达性检测来配置第 2 层活跃度检测的发送功能,以检查 DHCP 中继客户端的连接性。
发送功能使 BNG 能够根据 DHCP 客户端对其发送到客户端的 ARP 或 ND 请求数据包缺乏响应来确定客户端会话是否已关闭。
也可以使用双向转发检测 (BFD) 配置 DHCP 活跃度检测。BFD 活体检测和 ARP/ND 活体检测是互斥的。
要配置 DHCPv4 中继活跃度检测的发送功能:
要配置 DHCPv6 中继活跃度检测的发送功能:
-
指定要配置活体检测方法。
-
对于 DHCPv6 全局配置:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit liveness-detection method -
对于 DHCPv6 组配置:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit group group-name liveness-detection method
-
-
指定第 2 层活体检测方法。
-
对于 DHCPv6 全局配置:
[edit forwarding-options dhcp-relay dhcpv6 liveness-detection method] user@host# set layer2-liveness-detection -
对于 DHCPv6 组配置:
[edit forwarding-options dhcp-relay dhcpv6 group group-name liveness-detection method] user@host# set layer2-liveness-detection
-
-
(选答)配置重试次数和间隔计时器。
-
对于 DHCPv6 全局配置:
[edit forwarding-options dhcp-relay dhcpv6 liveness-detection method] user@host# edit layer2-liveness-detection user@host# set max-consecutive-retries number user@host# set transmit-interval seconds -
对于 DHCPv6 组配置:
[edit forwarding-options dhcp-relay dhcpv6 group group-name liveness-detection method] user@host# edit layer2-liveness-detection user@host# set max-consecutive-retries number user@host# set transmit-interval seconds
-
配置 DHCP 主机 使用 ARP 和 ND 数据包检测客户端连接
此过程介绍如何使用 DHCPv4 客户端使用 IPv4 地址解析协议 (ARP) 和 DHCPv6 客户端使用 IPv6 邻接方不可达性检测来配置第 2 层活跃度检测的接收功能,以检查 DHCP 本地服务器客户端的连接。
接收功能使 DHCP 客户端主机能够根据 BNG 对其发送到 BNG 的 ARP 或 ND 数据包缺乏响应来确定客户端会话是否已关闭。您可以为每个地址族全局配置 DHCP 的接收功能,作为对全局用户管理配置的覆盖。
-
对于 DHCPv4:
[edit system services subscriber-management overrides] user@host# set interfaces family inet layer2-liveness-detection
-
对于 DHCPv6:
[edit system services subscriber-management overrides] user@host# set interfaces family inet6 layer2-liveness-detection
特定于平台的 DHCP 中继活跃度检测 行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为。
| 平台 |
差异 |
|---|---|
| MX 系列 |
|
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。