使用 DHCP 自动注销保存 IP 地址
DHCP 自动注销概述
本主题介绍 DHCP 自动注销功能,包括以下部分:
自动注销概述
DHCP 本地服务器和 DHCP 中继代理支持自动注销。当 DHCP 客户端不再使用地址时,允许立即释放 IP 地址并将其返回到地址池,从而提高 DHCP IP 地址分配的效率。然后,DHCP 可以将地址分配给其他客户端。如果不自动注销,IP 地址将在整个租期内被阻止,DHCP 必须等到地址租用期满后才能重新使用该地址。
当 DHCP 使用较长的租期进行 IP 地址分配时,自动注销特别有用,并且有助于避免为单个客户端分配重复的 IP 地址。
例如,您的环境中可能包含经常升级或更换的机顶盒 (STB)。每次更改机顶盒时,新的机顶盒都会重复 DHCP 发现过程,以获取客户端配置信息和 IP 地址。DHCP 将新机顶盒视为全新的客户端,并分配新的 IP 地址 — 之前分配给客户端的 IP 地址(旧机顶盒)将保持被阻止且不可用,直到租约到期。如果在这种情况下配置了自动注销,DHCP 会识别出新机顶盒实际上是同一客户端,然后立即释放原始 IP 地址。DHCP 中继代理充当自动注销的代理客户端,并向 DHCP 服务器发送 DHCP 释放消息。
DHCP 如何识别和释放客户端
自动注销功能要求 DHCP 显式标识客户端。默认情况下,DHCP 本地服务器和 DHCP 中继代理根据 MAC 地址或客户端标识符和子网识别客户端。但是,在某些情况下,这种类型的识别可能还不够。例如,在前面的机顶盒示例中,每个机顶盒都有不同的 MAC 地址,因此 DHCP 错误地假定升级或更换的机顶盒是新客户端。
为了显式标识客户端,自动注销会在主要识别方法不成功时使用辅助识别方法 — 如果MAC 地址或客户端标识符与现有客户端的标识符不匹配,则认为该主要方法不成功。订阅者管理支持两种可配置的辅助识别方法。
传入接口方法 — DHCP 查看接口上的新客户端连接,就好像它来自同一客户端一样。DHCP 在为新连接的设备创建绑定之前删除现有客户端绑定。此方法只允许一个客户端设备在接口上连接。
注意:传入接口方法与
overrides interface-client-limit 1
语句不同,后者保留现有绑定并拒绝新连接的客户端。Option 60 和 option 82 方法 — — 如果两个客户端具有相同的 option 60 和 option 82 信息,但子网不同,则 DHCP 会将其视为不同客户端。
当启用自动注销且辅助识别方法识别重复客户端(即发现数据包来自现有客户端)时,DHCP 本地服务器和 DHCP 中继代理会执行以下操作。
DHCP 本地服务器会立即释放现有地址。
DHCP 中继代理会立即释放现有客户端,然后向 DHCP 服务器发送 DHCP 释放数据包。发送释放数据包可确保 DHCP 中继和 DHCP 服务器同步。
如果 DHCP 中继收到来自现有客户端的发现消息,则 DHCP 中继会将发现消息转发到 DHCP 服务器。如果 DHCP 服务器返回客户端的现有 IP 地址,则 DHCP 中继将保留绑定。如果启用了代理模式替代或客户端发现匹配功能,则此行为不适用。
注意:如果 DHCP 中继代理处于窥探模式,则如果发现数据包用于被动客户端(由于窥探数据包而添加的客户端),或者发现数据包是被窥探的数据包,则 DHCP 中继会释放客户端,但不会向 DHCP 服务器发送释放数据包。
Option 60 和 Option 82 要求
DHCP 本地服务器要求收到的发现数据包同时包含 DHCP option 60 和 option 82。如果缺少任一选项,则 DHCP 本地服务器无法执行辅助识别方法,并且不会使用自动注销。
DHCP 中继代理要求收到的发现数据包包含 DHCP option 60。DHCP 中继会根据 DHCP 中继代理自动注销的 Option 82 值中提供的准则确定 option 82 值。
自动注销 DHCP 客户端
您可以将扩展的 DHCP 本地服务器和扩展的 DHCP 中继配置为自动注销 DHCP 客户端。当 DHCP 收到来自身份与现有客户端匹配的客户端的发现数据包时,自动注销会立即释放现有客户端。然后,DHCP 释放现有客户端 IP 地址,无需等待正常租期到期。
释放现有客户端时,新客户端将经历正常的身份验证过程。新客户端可能不会收到与原始客户端相同的 IP 地址。
要配置 DHCP 客户端自动注销:
如果更改自动注销配置,现有客户端将继续使用登录时配置的自动注销设置。新客户端使用新设置。
DHCP 中继代理如何使用 Option 82 进行自动注销
表 1 显示了 DHCP 中继代理如何确定用于客户端自动注销功能的 option 82 值。根据配置设置,DHCP 中继代理将采取“已采取的操作”列中指示的操作。
DHCP 中继代理配置设置 |
|||||
---|---|---|---|---|---|
配置了 Option 82 的 DHCP 中继 |
发现包含 Option 82 的数据包 |
覆盖“trust-option- 82” |
覆盖“always-write- option-82” |
非侦听数据包中的 Giaddr |
采取的行动 |
不 |
不 |
– |
– |
– |
未执行二次搜索 |
不 |
是的 |
是的 |
– |
– |
使用数据包中的 option 82 |
不 |
是的 |
不 |
– |
零 |
丢包 |
不 |
是的 |
不 |
– |
非零 |
使用数据包中的 option 82 |
是的 |
不 |
– |
– |
– |
使用配置的 option 82 |
是的 |
是的 |
不 |
– |
零 |
丢包 |
是的 |
是的 |
不 |
不 |
非零 |
使用数据包中的 option 82 |
是的 |
是的 |
不 |
是的 |
非零 |
覆盖配置的 option 82 |
是的 |
是的 |
是的 |
不 |
– |
使用数据包中的 option 82 |
是的 |
是的 |
是的 |
是的 |
– |
覆盖配置的 option 82 |
用于识别 DHCPv6 订阅者的 DHCPv6 匹配标准
默认情况下,DHCPv6 本地服务器和 DHCPv6 中继代理根据客户端标识符识别客户端。DHCPv6 本地服务器和 DHCPv6 中继代理也可以通过传入接口识别 DHCPv6 客户端。将选项与语句一起client-negotiation-match
使用incoming-interface
,以便接口上仅连接一个客户端设备。如果客户端设备发生更改,路由器将删除现有客户端绑定,并为新连接的设备创建绑定。
例如,考虑一个环境,其中包括机顶盒 (STB) 或任何其他配置为从 DHCPv6 服务器获取配置信息的此类客户端设备 (CPE)。在网络配置中,一个接口支持一台 CPE 设备。DHCPv6 服务器配置为为 CPE 设备提供较长的租期计时器。如果 CPE 设备因维修或升级而断开连接,新的 CPE 设备将通过 DHCPv6 请求过程从 DHCPv6 服务器接收配置信息。由于客户端标识符与之前设备的标识符不同,因此 DHCPv6 本地服务器或 DHCPv6 中继代理会将 DHCPv6 请求消息视为新客户端,并添加新绑定。由于旧设备可能无法正常注销,因此在租约到期之前不会释放旧 IP 地址。
如果配置了 client-negotiation-match incoming-interface
该语句,则在收到 DHCPv6 请求消息时,将根据其客户端标识符和传入接口选项对 DHCPv6 客户端进行搜索。如果根据匹配标准找到现有 DHCPv6 客户端绑定,则删除该绑定并处理新客户端。如果旧 CPE 设备断开连接,并且收到新 CPE 设备的 DHCPv6 请求消息,该功能将使用传入接口识别客户端并移除旧 CPE 设备的绑定,从而允许释放旧 IP 地址。新 CPE 设备的绑定取代了旧的绑定。
自动注销 DHCPv6 客户端
您可以配置扩展的 DHCPv6 本地服务器和扩展的 DHCPv6 中继代理,以根据 DHCPv6 订阅者匹配标准自动注销 DHCPv6 客户端。当 DHCPv6 收到来自传入接口与现有客户端接口匹配的客户端的请求数据包时,自动注销功能会立即释放现有客户端。然后,DHCPv6 释放现有客户端 IP 地址,无需等待正常租约到期。
释放现有客户端时,新客户端将经历正常的身份验证过程。新客户端可能不会收到与原始客户端相同的 IP 地址。
要配置 DHCPv6 客户端的自动注销:
如果更改自动注销配置,现有客户端将继续使用登录时配置的自动注销设置。新客户端使用新设置。