从 DHCP 本地服务器动态重新配置客户端
了解扩展 DHCP 本地服务器客户端的动态重新配置
通过客户端的动态重新配置,扩展的 DHCP 本地服务器可以启动客户端更新,而无需等待客户端发起请求。
- 默认客户端/服务器交互
- DHCPv4 的动态客户端/服务器交互
- DHCPv6 的动态客户端/服务器交互
- 手动强制本地服务器启动重新配置过程
- 对重新配置期间发生的事件采取的操作
- 动态重新配置 DHCP 本地服务器客户端的好处
默认客户端/服务器交互
通常,DHCP 客户端会启动所有基本的 DHCP 客户端/服务器交互。DHCP 服务器仅向客户端发送信息以响应来自该客户端的请求。如果服务器发生更改,此行为不会使客户端快速更新其网络地址和配置:
从技术上讲,路由器和交换机上的 DHCP 客户端/服务器交互是相同的。但是,此技术在路由器上的主要用途是用于订阅者管理。交换机不用于订阅者管理。因此,本主题提供两个示例场景。操作相同,但实施细节不同。
在路由器上 — 假设服务提供商重构其寻址方案或更改其提供给客户端的服务器 IP 地址。如果不进行动态重新配置,服务提供商通常会清除 DHCP 服务器绑定表,但无法通知 DHCP 客户端其绑定已清除。因此,DHCP 客户端的运行方式就好像其 IP 地址仍然有效,但现在无法通过接入网络进行通信,从而导致中断。DHCP 本地服务器需要等待客户端发送消息以续订其租约或重新绑定到服务器。作为响应,服务器会向客户端发送一条 NAK 消息,以强制其再次开始 DHCP 连接进程。或者,提供商可以等待客户就网络故障拨打服务电话,然后指示他们重新启动其客户端设备以重新启动连接。对于客户来说,这些操作都不是及时或方便的。
在交换机上 — 假设您重新构建寻址方案或更改 DHCP 服务器提供给客户端的服务器 IP 地址。如果不进行动态重新配置,网络通常会清除 DHCP 服务器绑定表,但无法通知 DHCP 客户端其绑定已清除。因此,DHCP 客户端的运行方式就好像其 IP 地址仍然有效,但现在无法通过接入网络进行通信,从而导致中断。DHCP 本地服务器需要等待客户端发送消息以续订其租约或重新绑定到服务器。作为响应,服务器会向客户端发送一条 NAK 消息,以强制其再次开始 DHCP 连接进程。或者,您可以等待用户通知您网络故障,然后指示他们重新启动设备以重新启动连接。对于用户来说,这些操作都不是及时或方便的。
DHCPv4 的动态客户端/服务器交互
通过 RFC 3203(DHCPv4 的 DHCP 重新配置扩展 )的部分实现,可实现 DHCPv4 的动态重新配置。它使 DHCPv4 本地服务器能够向客户端发送消息以强制重新配置。
服务器向 DHCPv4 客户端发送 forcerenew 消息,从而启动消息交换。作为响应,支持 forcerenew 消息的 DHCPv4 客户端随后会向服务器发送租约续订消息。服务器拒绝续租请求,并向客户端发送 NAK,导致客户端重新启动 DHCP 连接。重新连接成功将导致 DHCP 客户端重新配置。RFC 3202 仅支持交换 forcerenew、renenew 和 NAK 消息。DHCP 中继和 DHCP 中继代理不参与客户端重新配置,也不对强制续订消息作出反应,而是将消息转发给客户端。
当本地服务器状态机在绑定的客户端上启动重新配置过程时,客户端将转换为重新配置状态,并且本地服务器会向客户端发送 forcerenew 消息。由于客户端在进入重新配置状态之前处于绑定状态,因此所有订阅者服务或 DHCP 管理的服务(如转发和统计信息)将继续工作。在成功重新配置和后续客户端绑定之间的时间间隔内,不会维护客户端统计信息。当服务器使用 NAK 响应客户端续订请求时,将从绑定表中删除客户端条目并报告最终统计信息。当客户端发送发现消息以建立新会话时,将收集新的统计信息。
DHCPv6 的动态客户端/服务器交互
通过 RFC 3315 IPv6 动态主机配置协议 (DHCPv6) 的部分实现,可实现 DHCPv6 的动态重新配置。它使 DHCPv6 本地服务器能够向客户端发送消息以强制重新配置。
DHCPv6 服务器向 DHCPv6 客户端发送重新配置的消息,从而启动消息交换。作为响应,支持重新配置消息的 DHCPv6 客户端将转换为续订状态,并向服务器发送续订消息。服务器返回生存期为零 (0) 的回复消息。客户端将转换为初始化状态并发送请求消息。服务器发送播发消息,指示它可用于服务。客户端发送配置参数请求,然后服务器将该请求包含在其回复中。DHCP 中继和 DHCP 中继代理不参与客户端重新配置,也不对重新配置消息做出反应,而是将消息转发给客户端。
当触发 DHCPv6 服务器在绑定的 DHCPv6 客户端上启动重新配置时,客户端将转换为重新配置状态。所有订阅者服务(如转发和统计信息)继续工作。然后,服务器会将重新配置消息发送到客户端。如果 DHCPv6 客户端已处于重新配置状态,则 DHCPv6 服务器将忽略重新配置触发器。对于处于“绑定”或“重新配置”以外的任何状态的客户端,服务器将清除客户端的绑定状态,就像 clear dhcpv6 server binding
命令已发出一样。
手动强制本地服务器启动重新配置过程
您可以通过对 DHCPv4 客户端发出命令和对 request dhcpv6 server reconfigure
DHCPv6 客户端发出request dhcp server reconfigure
命令来强制本地服务器启动客户端的重新配置过程。命令选项确定是尝试为所有客户端还是指定客户端重新配置。
对重新配置期间发生的事件采取的操作
在重新配置过程中发生的事件优先于重新配置。 表 1 列出了针对几个不同事件采取的措施。
事件 |
行动 |
---|---|
服务器从客户端接收发现 (DHCPv4) 或请求 (DHCPv6) 消息。 |
服务器丢弃数据包并删除客户端。 |
服务器从客户端接收请求、续订、重新绑定或 init-reboot 消息。 |
DHCPv4 — 服务器发送 NAK 消息并删除客户端。 DHCPv6 — 服务器丢弃数据包并删除客户端。服务器回复续订消息,租期为零 (0)。 |
服务器从客户端接收发布或拒绝消息。 |
服务器删除客户端。 |
客户端租用超时。 |
服务器删除客户端。 |
|
服务器删除客户端。 |
|
命令将被忽略。 |
GRES或DHCP重新启动。 |
重新配置过程已停止。 |
动态重新配置 DHCP 本地服务器客户端的好处
启用 DHCP 本地服务器以动态重新配置 DHCP 客户端,避免由于服务器配置更改而导致长时间中断,否则需要服务器等待客户端续订租约或重新绑定到服务器。
配置扩展本地服务器客户端的动态重新配置概述
DHCP 本地服务器可以启动其客户端的重新配置,以避免由于服务器配置更改而导致长时间中断。您可以为所有 DHCP 客户端启用动态重新配置,也可以仅为指定接口组提供服务的 DHCP 客户端启用动态重新配置,并相应地修改行为。
从 Junos OS 14.1 版开始,您可以通过包含相应的配置语句来修改 DHCP 本地服务器启动其客户端重新配置的过程的行为。您可以在层次结构级别为所有 DHCPv4 客户端提供语句,也可以在[edit system services dhcp-local-server dhcpv6 reconfigure]
层次结构级别为所有 DHCPv6 客户端提供语句[edit system services dhcp-local-server reconfigure]
。要仅为由指定接口组提供服务的 DHCP 客户端覆盖此全局配置,可以在 DHCPv4 客户端的层次结构级别和 DHCPv6 客户端的[edit system services dhcp-local-server dhcpv6 group group-name reconfigure]
层次结构级别包含具有不同值[edit system services dhcp-local-server group group-name reconfigure]
的语句。
要配置 DHCP 客户端的动态重新配置,请执行以下操作:
为 DHCP 客户端配置动态重新配置尝试
您可以配置本地服务器通过发送 forcerenew 或 reconfigure 消息来启动 DHCP 客户端重新配置的尝试次数。您还可以指定服务器在两次尝试之间的等待时间。默认情况下,进行八次尝试,初始间隔为 2 秒。
每次连续尝试都会使尝试之间的间隔加倍。例如,如果第一个值为 2,则在第一次尝试失败后 2 秒尝试第一次重试。第二次重试在第一次重试失败 4 秒后尝试。第二次重试失败 8 秒后尝试第三次重试,依此类推。组配置优先于 DHCP 本地服务器配置。
(选答)要为所有 DHCP 客户端配置 DHCP 本地服务器重新配置行为:
要覆盖特定客户端组的全局配置,请在 [edit system services dhcp-local-server group group-name reconfigure]
层次结构级别或 [edit system services dhcpv6 dhcp-local-server group group-name reconfigure]
层次结构级别包含语句。
配置动态重新配置失败时客户端的删除
您可以将本地服务器配置为在进行了最大重新配置尝试次数但未成功时删除客户端。默认情况下,将还原客户端的原始配置。
(选答)要将 DHCP 本地服务器配置为在重新配置不成功时删除客户端,对于所有客户端:
指定客户端删除。
对于 DHCPv4:
[edit system services dhcp-local-server reconfigure] user@host# set clear-on-terminate
对于 DHCPv6:
[edit system services dhcp-local-server dhcpv6 reconfigure] user@host# set clear-on-terminate
要覆盖特定客户端组的全局配置,请在 [edit system services dhcp-local-server group group-name reconfigure]
层次结构级别或 [edit system services dhcpv6 dhcp-local-server group group-name reconfigure]
层次结构级别包含语句。
在收到 RADIUS 发起的断开连接后配置客户端的重新配置
您可以将本地服务器配置为在客户端收到 RADIUS 发起的断开连接时重新配置客户端。默认情况下,当收到 RADIUS 发起的断开连接时,客户端将被删除。
(选答)要将 DHCP 本地服务器配置为在收到 RADIUS 发起的断开连接时重新配置客户端而不是删除客户端,对于所有客户端:
指定 RADIUS 启动的断开连接触发器。
对于 DHCPv4:
[edit system services dhcp-local-server reconfigure trigger] user@host# set radius-disconnect
对于 DHCPv6:
[edit system services dhcp-local-server dhcpv6 reconfigure trigger] user@host# set radius-disconnect
要覆盖特定客户端组的全局配置,请在 [edit system services dhcp-local-server group group-name reconfigure trigger]
层次结构级别或 [edit system services dhcpv6 dhcp-local-server group group-name reconfigure trigger]
层次结构级别包含语句。
为 DHCP 本地服务器身份验证配置令牌
您可以配置身份验证令牌,以便针对无意中实例化的 DHCP 服务器提供基本保护。您可以将本地服务器配置为在 DHCP forcerenew 消息中包含一个常量的未编码令牌,作为其发送给客户端的身份验证选项的一部分。如果服务提供商之前已使用令牌配置了 DHCP 客户端,则客户端可以将该令牌与新收到的令牌进行比较。如果令牌不匹配,DHCP 客户端将丢弃 forcerenew 消息。此功能对应于 RFC 3118,DHCP 消息的身份验证,第 4 节。
(选答)要将 DHCP 本地服务器配置为在发送给客户端的 forcerenew 消息中包含令牌,对于所有客户端:
指定令牌。
对于 DHCPv4:
[edit system services dhcp-local-server reconfigure] user@host# set token token-value
对于 DHCPv6:
[edit system services dhcp-local-server dhcpv6 reconfigure] user@host# set token token-value
(选答)仅针对特定客户端组:
指定令牌。
对于 DHCPv4:
[edit system services dhcp-local-server group group-name reconfigure] user@host# set token token-value
对于 DHCPv6:
[edit system services dhcp-local-server dhcpv6 group group-name reconfigure] user@host# set token token-value
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。