DHCP 租约查询方法
在用户接入网络中,DHCP 本地服务器维护着大量与服务器租用给 DHCP 客户端的 IP 地址或 DHCPv6 委托前缀相关的绑定信息。当 DHCP 客户端通过 DHCP 中继代理连接到 DHCP 服务器时,DHCP 中继代理会从其转发的 DHCP 数据包中收集到达端点所需的数据(例如 IP 地址)。中继代理维护与 DHCP 客户端相关的租约和路由信息。中继代理在为客户端提供订阅者服务时使用这些信息。中继代理重新启动或重新启动或更换代理主机设备时,中继代理将丢失该信息。您可以使用 request 命令触发中继代理向本地服务器发送租约查询消息,以恢复 DHCP 客户端的绑定信息,以便中继代理恢复其租约信息数据库。
订阅者管理支持以下类型的租约操作:
-
单个租约查询 — 根据请求(查询和响应模式)提供单个绑定的租约信息。
-
批量租约查询 — 根据请求(查询和响应模式)提供多个绑定的租约信息。
-
活动租约查询 — 在配置时为多个绑定提供实时更新流。
DHCP 租存的优势
-
租用查询为 DHCPv4 或 DHCPv6 中继代理提供了一种轻量级的方式,用于在中继代理重新启动或更换时从 DHCP 本地服务器恢复与租赁的 DHCP IP/IPv6 地址和委派前缀相关的权威位置信息。
-
批量租约查询无需查询特定客户端的单个绑定,允许单个请求返回数百或数千个订阅者的信息。此方法不会等待数据流量触发查询,因此当代理具有数千个客户端时,它的扩展性比单个租约查询更好。如果采用 DHCPv6,中继代理可能无法形成单个查询。
-
主动租约查询在配置后将绑定信息持续实时更新到一个或多个中继代理。除了中继代理与本地服务器之间的更新之外,您还可以在中继代理之间配置对等关系。这样,对等方能够持续相互同步其绑定信息,从而在对等方宕机或重新启动时提供冗余。活动对等方会立即为正在使用受影响中继代理的客户端保留服务。
-
拓扑发现使配置了 M:N 用户冗余的 BNG 上的中继代理对等方能够自动构建转换表,以便在主 BNG 故障转移到备份时继续为用户冗余组提供服务。这种自动行为使您不必静态构建表。静态配置在规模化网络中容易出错,并且无法动态适应网络变化。
DHCP 单独租用
从 Junos OS 16.1 版开始,订阅者管理支持单独租约查询功能,该功能使 DHCPv4 或 DHCPv6 中继代理能够快速高效地从 DHCP 本地服务器获取当前租约信息。中继代理可能会由于各种原因丢失本地存储的租约信息,例如由于中继代理设备已重新启动。当中继代理随后从客户端接收数据流量进行转发时,它不再拥有执行此操作的信息。与本地服务器的租赁查询交互可以还原信息,以便中继代理可以正确地为其客户端提供服务。
要配置单独的租约查询操作,请同时启用对 DHCP 中继代理和 DHCP 服务器的支持。您可以配置中继代理与服务器之间通信的详细信息。您必须发出 or request dhcpv6 leasequery 命令request dhcp leasequery才能触发中继代理发送查询。
默认情况下,中继代理会将查询发送到所有已知的本地服务器。您可以通过指定服务器地址或指定的服务器组来限制与其通信的服务器。您还可以将查询限制为特定逻辑系统、路由实例或 LS:RI 组合中的服务器。
DHCPv4 单个租赁查询
DHCPv4 租用查询可以是多种类型之一,按地址、客户端 ID 或 MAC 地址查询。通过发出 request dhcp relay leasequery 命令来确定触发查询时的查询类型。您指定 DHCPv4 中继代理在 DHCPLEASEQUERY 消息中包含以下值之一,以便本地服务器能够识别代理请求的绑定信息:
-
客户端租约的 IP 地址 — 本地服务器返回分配了该 IP 地址的最新客户端的绑定信息。
-
客户端设备的客户端标识符 — 本地服务器返回具有指定客户端标识符(选项 61)的客户端最近使用的 IP 地址的绑定信息。标识符在服务器的管理域中是唯一的。如果该客户端已通过此服务器访问了其他 IP 地址,则服务器将在关联的 IP 选项(选项 92)中返回这些地址的列表。
-
客户端设备的 MAC 地址 — 本地服务器返回具有该 MAC 地址的最新客户端的绑定信息。如果该客户端已通过此服务器访问了其他 IP 地址,则服务器将在关联的 IP 选项(选项 92)中返回这些地址的列表。
DHCP 中继代理在 DHCPLEASEQUERY 消息中包括参数请求列表选项(选项 55)。此列表包括与本地服务器返回的 IP 地址的绑定信息相关的特定选项。例如,请求列表通常包括中继代理信息选项(选项 82)。本地服务器将请求的信息包含在发送至中继代理的 DHCPLEASEACTIVE 中。
DHCPLEASEACTIVE 消息包括客户端上次事务时间选项(选项 91)。此选项的值是 IP 地址最近在客户端和服务器之间的交互中使用的时间与服务器发送 DHCPLEASEACTIVE 消息之间的间隔(以秒为单位)。例如,如果最后一次交互是在 08:00:00,消息是在 09:00:00 发送的,则选项值为 3600。
表 1 介绍了 DHCPv4 单个租约查询的消息类型。
|
消息类型 |
选项 53 类型值 |
描述 |
|---|---|---|
|
DHCPLEASEQUERY |
10 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
|
DHCPLEASEUNASSIGNED |
11 |
当与客户端关联的 IP 地址由服务器控制但当前未租用时,来自本地服务器的响应。 此响应仅针对按 IP 地址进行查询时发送。 |
|
DHCPLEASEUNKNOWN |
12 |
当服务器不知道查询中的信息时,来自本地服务器的响应。 |
|
DHCPLEASEACTIVE |
13 |
本地服务器在将地址租用给客户端时的响应。响应包括有关该地址的完整绑定信息。 |
DHCPv6 单个租赁
查询类型在LQ_Query选项(选项 44)中传达。DHCPv6 中继代理查询类型可以按地址或客户端 ID 查询。通过发出 request dhcpv6 relay leasequery 命令来确定触发查询时的查询类型。您指定 DHCPv6 中继代理在 LEASEQUERY 消息中包括以下选项请求选项(选项 6)中的以下值之一,以使本地服务器能够识别代理请求的绑定信息:
-
客户端租约的 IPv6 地址 — 本地服务器返回绑定到该地址或已委托包含该地址的前缀的最新客户端的绑定信息。选项 44 中的 query-options 字段包括 IAADDR 选项(选项 5)。
-
客户端设备的 DHCP 唯一标识符 (DUID) — 本地服务器返回具有指定 DUID 的客户端最近使用的 IP 地址的绑定信息。DUID 是客户端的 IPv6 标识符。标识符在服务器的管理域中是唯一的。如果在多个链路地址上找到客户端,则本地服务器可以返回地址列表。选项 44 中的 query-options 字段包括客户端标识符选项(选项 1)。
选项 44 中的 query-options 字段还可以包括选项请求选项(选项 6),用于列出 DHCPv6 选项代码,以便从每个客户端的本地服务器获取所需的特定信息。
LEASEQUERY-REPLY 消息包括客户端数据选项(选项 45),用于为单个链路上的单个客户端提供信息。此信息在 client-options 字段中以 DHCPv6 选项的形式传达。选项 45 至少包括以下选项,以及中继代理在 LEASEQUERY 选项请求选项(选项 6)中请求的任何其他选项:
-
客户端标识符(选项 1)—标识 DHCPv6 客户端的 DUID。
-
IAADDR(选项 5) — 临时地址 (IA_TA) 或非临时地址 (IA_NA) 的身份关联中的地址。可以包含在 IAPREFIX 选项中。
-
IAPREFIX(选项 26) — 前缀委派 (IA_PD) 身份关联中的前缀。可以包含在 IAADDR 选项中。
-
CLT 选项(选项 46)— 自服务器上次在该链路上与客户端交互以来的时间(以秒为单位)。此选项对应于 DHCPv4 客户端上次事务时间选项。
以下选项是 LEASEQUERY-REPLY 消息中可包含的其他选项的示例:
-
LQ中继数据选项(选项47) — 客户端上次与此服务器通信时使用的完整中继代理信息。仅当在 LEASEQUERY 选项请求选项(选项 6)中请求此选项时,本地服务器才会返回此选项。
-
LQ 客户端链路选项(选项 48) — 标识客户端至少具有一个绑定的链路地址。当以下两个条件都成立时,LEASEQUERY-REPLY 消息将包含此选项:LEASEQUERY 未指定链路地址,并且在多个链路上找到客户端。当中继代理收到此信息时,它可以为选项 48 中列出的每个地址提交新的 LEASEQUERY。
表 2 介绍了 DHCPv6 单个租约查询的消息类型。
|
消息类型 |
DHCPv6 类型值 |
描述 |
|---|---|---|
|
租约查询 |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。包括 LQ 选项(选项 44),用于指定查询类型、链路地址以及本地服务器所需的任何特定选项信息。 |
|
租约查询-回复 |
15 |
当与客户端关联的 IP 地址由服务器控制但当前未租用时,来自本地服务器的响应。 此响应仅针对按 IP 地址进行查询时发送。 |
DHCPv6 本地服务器发送的 LEASEQUERY-REPLY 消息可以返回状态代码选项(选项 13),以提供有关查询状态的信息。 表 3 列出了状态代码。
|
代码 |
状态 |
描述 |
|---|---|---|
|
7 |
未知查询类型 |
服务器无法识别或不支持查询。 |
|
8 |
格式错误的查询 |
查询无效;例如,它可能缺少必需的选项。 |
|
9 |
未配置 |
本地服务器的配置中没有所需的地址。 |
|
10 |
不允许 |
本地服务器不允许中继代理发送此查询类型。 |
DHCP 批量租约查询
从 Junos OS 16.1 版开始,订阅者管理支持批量租约查询功能,该功能使 DHCP 中继代理的每个请求都能以编程方式从配置的 DHCP 服务器批量检索多个订阅者的租约信息。批量租用比使用多个单独的租用查询来收集相同的信息更节省资源。这在每个中继代理有数千个客户端的规模化环境中特别有用。
批量租用查询可在 DHCP 中继代理与同一逻辑系统/路由实例中配置的 DHCP 服务器之间使用 TCP 连接。与用于单个租约查询过程的 UDP 连接相比,TCP 连接更可靠,消耗的资源更少。批量租约查询还通过提供额外的查询选项和功能来扩展单个租约查询。
要配置批量租用操作,请同时启用对 DHCP 中继代理和 DHCP 服务器的支持。您可以配置中继代理与服务器之间通信的详细信息。您必须发出 request dhcp bulk-leasequery or request dhcpv6 bulk-leasequery 命令才能触发中继代理发送租约查询。
默认情况下,中继代理会将查询发送到所有已知的本地服务器。您可以通过指定服务器或命名服务器组的地址来限制与其通信的服务器。您还可以将查询限制为特定逻辑系统、路由实例或 LS:RI 组合中的服务器。
DHCPv4 批量租赁
对于 DHCPv4 批量租约查询,DHCPv4 中继代理通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送一条 DHCPBULKLEASEQUERY 消息。查询可以包含以下任何一项,以使本地服务器能够识别代理所需的信息:
-
所有配置的 IP 地址 — 本地服务器返回本地服务器中配置的所有 IP 地址的绑定信息。无论 IP 地址是否是当前活动绑定的一部分,都将返回该信息。这使中继代理能够使用某个时间点之后发生的所有地址更改来更新其数据库。
-
客户端设备的客户端标识符 — 本地服务器返回具有指定客户端标识符(选项 61)的客户端最近使用的 IP 地址的绑定信息。标识符在服务器的管理域中是唯一的。
注意:与单个租约查询不同,服务器不使用关联的 IP 选项(选项 92)返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器返回所有这些 IP 地址的绑定信息
-
客户端设备的 MAC 地址 — 本地服务器返回具有该 MAC 地址的最新客户端的绑定信息。
注意:与单个租约查询不同,服务器不使用关联的 IP 选项(选项 92)返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器返回所有这些 IP 地址的绑定信息
-
中继代理标识符 — 本地服务器返回分配给具有指定中继代理标识符(选项 82、子选项 12)的客户端的所有当前活动租约的绑定信息。标识符在服务器的管理域中是唯一的。
-
客户端用于识别 DHCP 客户端电路的接入电路的远程 ID — 本地服务器返回分配给使用该代理远程 ID 的客户端的所有当前活动租约的绑定信息(选项 82,子选项 2)。此查询在每个中继代理有数千个客户端的规模化环境中特别有用。其他查询不会返回电路上所有客户端的合并租约信息。
DHCPv4 本地服务器使用用于单个租约查询的相同 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息回复中继代理,如 DHCPv4 单个租约查询消息类型中所述。每条消息对应于查询标识的单个绑定。
当服务器返回与请求关联的所有绑定时,它会向中继代理发送一条 DHCPLEASEQUERYDONE 消息。如果在处理批量租约查询时丢失连接,则 DHCP 无法确定中继代理在连接中断之前收到了多少请求的信息。因此,中继代理必须重试查询。
对于任何查询方法,DHCP 中继代理都可以包含以下限定符:
-
query-start-time - 返回在查询中指定时间或之后更改的绑定。
-
query-end-time - 返回在查询中指定时间或之前更改的绑定。
这些查询时间使代理程序能够仅恢复自上次将其所有信息提交到稳定存储器以来丢失的绑定信息。
表 4 介绍了特定于 DHCPv4 批量租用的消息类型。
|
消息类型 |
选项 53 类型值 |
描述 |
|---|---|---|
|
DHCPBULKLEASEQUERY |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
|
DHCPLEASEQUERYDONE |
15 |
当本地服务器返回与批量请求关联的所有绑定信息时,来自本地服务器的响应。 |
DHCPv4 本地服务器发送的消息可以返回状态代码选项(选项 151),以提供有关查询状态的信息。在 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息中,代码对应于单个绑定请求的状态。在 DHCPLEASEQUERYDONE 消息中,代码对应于整个批量租约查询请求。 表 5 列出了状态代码。
|
代码 |
状态 |
描述 |
|---|---|---|
|
0 |
成功 |
请求已成功完成。选项 151 的缺失也表明成功了。 |
|
1 |
不规范失败 |
由于不明原因,请求失败。 |
|
2 |
查询终止 |
本地服务器无法执行查询或提前终止查询。在后一种情况下,文本字符串指示原因。 |
|
3 |
格式错误的查询 |
本地服务器无法理解查询。 |
|
4 |
不允许 |
查询已被理解,但未被允许。 |
DHCPv6 批量租约查询
对于 DHCPv6 批量租约查询,DHCPv6 中继代理通过端口 67 打开到 DHCPv6 本地服务器的 TCP 连接。建立连接后,中继代理向服务器发送 LEASEQUERY 消息。查询类型在LQ_Query选项(选项 44)中传达。查询类型可以是以下任意一种,以使本地服务器能够识别代理所需的信息:
-
所有配置的 IP 地址 — 本地服务器返回本地服务器中配置的所有 IP 地址的绑定信息。无论 IP 地址是否是当前活动绑定的一部分,都将返回该信息。这使中继代理能够使用某个时间点之后发生的所有地址更改来更新其数据库。
-
客户端设备的客户端标识符 — 本地服务器返回具有指定客户端标识符(选项 61)的客户端最近使用的 IP 地址的绑定信息。标识符在服务器的管理域中是唯一的。
注意:与单个租约查询不同,服务器不使用关联的 IP 选项(选项 92)返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器返回所有这些 IP 地址的绑定信息
-
客户端设备的 MAC 地址 — 本地服务器返回具有该 MAC 地址的最新客户端的绑定信息。
注意:与单个租约查询不同,服务器不使用关联的 IP 选项(选项 92)返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器返回所有这些 IP 地址的绑定信息
-
中继代理标识符 — 本地服务器返回分配给具有指定中继代理标识符(选项 82、子选项 12)的客户端的所有当前活动租约的绑定信息。标识符在服务器的管理域中是唯一的。
-
客户端用于识别 DHCP 客户端电路的接入电路的远程 ID — 本地服务器返回分配给使用该代理远程 ID 的客户端的所有当前活动租约的绑定信息(选项 82,子选项 2)。此查询在每个中继代理有数千个客户端的规模化环境中特别有用。其他查询不会返回电路上所有客户端的合并租约信息。
对于 DHCPv6 批量租用查询,您可以选择指定以下选项 trigger automatic 来配置 DHCPv6 中继代理,以便在进程开始与会话数据库 (SDB) 建立连接且数据库中不存在绑定的用户时 jdhcpd 自动启动批量租约查询操作。例如,自动过程将确保批量租用查询始终在重新启动、GRES 或 ISSU 操作后以及没有绑定的用户更新 DHCP 中继信息。
DHCPv6 批量租约使用 DHCPv6 单个租约查询使用的 LEASEQUERY 和 LEASEQUERY-REPLY 消息,但它们的行为和含义对于批量租约查询略有不同。 表 6 列出了这些消息,并介绍了特定于 DHCPv6 批量租约查询的另外两种消息类型。
|
消息类型 |
DHCPv6 类型值 |
描述 |
|---|---|---|
|
租约查询 |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
|
租约查询-回复 |
15 |
来自本地服务器的响应,用于指示查询的成功或失败。它还传达信息,如服务器 ID 和客户端 ID,这些信息在单个查询和回复的上下文中不会更改。 查询成功后,仅返回一个 LEASEQUERY-REPLY。此消息还包括第一个客户端的绑定信息。其他绑定数据将在 LEASEQUERY-DATA 消息中返回。 当查询失败时,将返回一个没有绑定信息的 LEASEQUERY-REPLY。 |
|
租约查询完成 |
16 |
来自本地服务器的响应,指示一组相关租约查询回复的结束。在将请求的所有回复发送到中继代理后,将发送单个 LEASEQUERY-DONE 消息。 收到此消息时,中继代理与服务器之间的 TCP 连接将关闭。 |
|
租约查询数据 |
17 |
来自本地服务器的响应,其中包含有关单个 DHCPv6 客户端的租约或单个链路上的前缀委托绑定的信息。 仅当批量租约查询返回多个客户端的数据时,才会发送此消息。在这种情况下,LEASEQUERY-REPLY 消息传达第一个客户端的信息,然后为其他每个客户端发送 LEASEQUERY-DATA 消息。 |
DHCPv6 本地服务器发送的消息可以返回状态代码选项(选项 13),以提供有关查询状态的信息。在 LEASEQUERY-REPLY 消息中,代码对应于单个绑定请求的状态。在 LEASEQUERY-DONE 消息中,代码对应于整个批量租约查询请求。LEASEQUERY-DATA 消息不包含状态代码。DHCPv6 批量租用查询支持 DHCPv6 单个租用查询状态代码中列出的 DHCPv6 单个租用查询状态代码。这些消息还可以包括为批量租约添加的状态代码,如 表 7 所述。
|
代码 |
状态 |
描述 |
|---|---|---|
|
11 |
查询终止 |
本地服务器无法执行查询,或者由于某种原因过早终止了查询。例如,本地服务器正在关闭或没有足够的资源来收集请求的信息。 |
DHCP 活动租约查询
从 Junos OS 19.1R1 版开始,DHCP 主动租用查询解决了中继代理需要定期接收客户端信息更新以跟上动态 DHCP 绑定活动的情况。单独和批量租约仅在请求时提供信息;如果客户端信息稍后在本地服务器上更新,则不会将该信息传递给中继代理,除非中继代理向本地服务器发送另一个查询。
主动租约使服务器能够在绑定状态发生变化时提供客户端信息的实时更新。您可以选择性地配置活动租约,以便将绑定信息的实时更新发送到多个中继代理对等方,从而支持中继代理机箱级冗余。当中继代理启动与服务器或中继代理对等方的 TCP 连接并发送 ACTIVELEASEQUERY 消息以指示连接必须保持打开状态时,将启动实时更新。
除非出现某些情况,否则 DHCP 不会关闭 TCP 连接,这些情况主要与可配置的超时或空闲超时周期有关:
-
在未配置为活动租约查询的逻辑系统或路由实例中收到连接请求时。
-
当连接在 TCP 读/写操作期间被阻止足够长的时间以使超时期限到期时,连接将关闭并可以重新启动。读取操作是指中继代理尝试读取对查询的回复。写入操作是指服务器或对等中继代理尝试向中继代理发送回复
-
在空闲超时期间,连接上未收到任何流量。
在活动租约操作期间,绑定信息仅在更改时才会更新。因此,服务器或对等中继代理有时不发送任何信息。如果该时间段长于空闲超时,则连接将断开。为避免不适当的连接丢弃,服务器或对等中继代理会以等于空闲超时周期二分之一的间隔发送 DHCPLEASEACTIVE (DHCPv4) 或 LEASEQUERY-DATA (DHCPv6) 消息。这些消息不包含绑定信息,因为它们是在没有可用更新时发送的。这些消息充当hello或keepalive 消息,表明缺乏活动不是问题,从而使连接保持运行。
当 TCP 连接关闭时,中继代理会尝试重新建立连接。重试尝试包括一个选项,该选项向服务器或对等中继代理发出信号,以发送自 TCP 连接关闭以来更改的绑定信息。此信息有时称为追赶信息。该选项指定连接关闭时的绝对时间戳;即,上次与服务器或对等中继代理成功通信的时间。DHCPv4 使用 query-start-time 选项(选项 154)。DHCPv6 使用LQ_START_TIME选项(选项 101)。
在某些情况下,服务器或对等中继代理没有自时间戳以来绑定更改的所有信息。例如,设备可能没有足够的内存来存储所有数据。在这些情况下,设备将返回 DHCPLEASEQUERYSTATUS (DHCPv4) 或 LEASEQUERY-REPLY (DHCPv6) 消息,发送状态代码为 DataMissing (5)。
在配置主动租约之前,必须先配置批量租约查询,因为主动租约使用批量租约机制。如果未配置批量租赁查询,则活动租赁查询配置将无法提交检查。
要配置主动租用查询操作,请同时启用对 DHCP 中继代理和 DHCP 服务器的支持。您可以为中继代理和本地服务器配置通信的详细信息。与单个和批量租约查询不同,活动租约查询没有查询类型。您不会使用命令触发 request 活动租约查询。相反,在配置活动租约查询时,触发器是自动的。
DHCPv4 活动租约查询
对于 DHCPv4 活动租约查询,DHCPv4 中继代理通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送一条 DHCPACTIVELEASEQUERY 消息。该消息表明这是一种长期连接。它仅在超时时关闭。
DHCPv4 本地服务器使用用于单个租约查询的相同 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息回复中继代理,如 DHCPv4 单个租约查询消息类型中所述。每条消息对应于查询标识的单个绑定。每当绑定信息发生变化时,DHCP 本地服务器都会继续发送响应消息。 表 8 介绍了特定于 DHCPv4 活动租约查询的消息类型。
|
消息类型 |
选项 53 类型值 |
描述 |
|---|---|---|
|
DHCPACTIVELEASEQUERY |
16 |
由中继代理发送到 DHCP 本地服务器,以便当中继代理上的绑定信息在本地服务器上发生变化时,该信息可以实时更新。 也可以在对等中继代理之间发送,为绑定信息提供热备用冗余。 |
|
DHCPLEASEQUERYSTATUS |
17 |
当本地服务器返回与请求关联的绑定信息时,来自本地服务器的响应。 由于 TCP 连接的寿命很长,因此当连接空闲时(不发送任何绑定更新),也会定期发送此消息。在这种情况下,消息包含一个 ConnectionActive 状态代码 (6),用于通知中继代理连接仍处于运行状态。 |
本地服务器发送的消息可以返回状态代码选项(选项 151)。在 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息中,代码对应于单个响应的状态。在 DHCPLEASEQUERYSTATUS 消息中,代码对应于整个活动租约查询请求的消息流。DHCPv4 活动租用查询支持 DHCPv4 批量租用查询状态代码中列出的批量租用查询状态代码。这些消息还可以包括为活动租约添加的状态代码,如表 9 所述。
|
代码 |
状态 |
描述 |
|---|---|---|
|
5 |
数据缺失 |
请求的绑定信息不可用。例如,当本地服务器或对等方没有使用 query-start-time 选项请求的足够数据时,此状态代码将立即在 LEASEQUERY-REPLY 消息中发送。 |
|
6 |
连接活动 |
TCP 连接仍处于活动状态。 |
|
7 |
追赶完成 |
本地服务器已发送中继代理请求的所有已保存数据。 |
DHCPv6 活动租约查询
对于 DHCPv6 活动租约查询,DHCPv6 中继代理通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送 ACTIVELEASEQUERY 消息。该消息表明这是一种长期连接。它仅在超时时关闭。
DHCPv6 本地服务器使用用于批量租约查询的相同 LEASEQUERY-REPLY、LEASEQUERY-DATA 和 LEASEQUERY-DONE 消息回复中继代理。每条消息对应于查询标识的单个绑定。每当绑定信息发生变化时,DHCP 本地服务器都会继续发送响应消息。表 10 列出了这些消息以及特定于 DHCPv6 活动租约查询的查询消息类型。
|
消息类型 |
DHCPv6 类型值 |
描述 |
|---|---|---|
|
ACTIVELEASEQUERY |
22 |
由中继代理发送到 DHCP 本地服务器,以便当中继代理上的绑定信息在本地服务器上发生变化时,该信息可以实时更新。 也可以在对等中继代理之间发送,为绑定信息提供热备用冗余。 |
|
租约查询-回复 |
15 |
来自本地服务器的响应,用于指示查询的成功或失败。它还传达信息,如服务器 ID 和客户端 ID,这些信息在单个查询和回复的上下文中不会更改。 查询成功后,仅返回一个 LEASEQUERY-REPLY。此消息还包括第一个客户端的绑定信息。其他绑定数据将在 LEASEQUERY-DATA 消息中返回。 当查询失败时,将返回一个没有绑定信息的 LEASEQUERY-REPLY。 |
|
租约查询完成 |
16 |
来自本地服务器的响应,指示应终止连接。 例如,服务器可以在关闭服务器时使用 QueryTerminated 状态代码 (11) 发送此内容。 |
|
租约查询数据 |
17 |
来自本地服务器的响应,其中包含有关单个 DHCPv6 客户端的租约或单个链路上的前缀委托绑定的信息。 仅当租约查询返回多个客户端的数据时,才会发送此消息。在这种情况下,LEASEQUERY-REPLY 消息传达第一个客户端的信息,然后为其他每个客户端发送 LEASEQUERY-DATA 消息。 |
DHCPv6 本地服务器发送的消息可以返回状态代码选项(选项 13)。DHCPv6 主动租约查询分别支持 DHCPv6 单个租约查询状态码 和 DHCPv6 批量租约查询状态码中列出的单个租约和批量租约查询状态码。这些消息还可以包括为活动租约添加的状态代码,如 表 11 所述。
|
代码 |
状态 |
描述 |
|---|---|---|
|
12 |
数据缺失 |
请求的绑定信息不可用。 |
|
13 |
追赶完成 |
本地服务器已发送中继代理请求的所有已保存数据。 |
|
14 |
不支持 |
本地服务器已发送中继代理请求的所有已保存数据。 |
具有主动租用请求的机箱级冗余
您可以使用主动租约查询在多个 DHCP 中继代理对等方之间同步绑定信息。为简单起见,此讨论仅解释了两个对等方的行为。当对等中继代理重新启动或其设备重新启动时,另一个中继可以接管并向所有 DHCP 客户端提供服务,而不会出现明显的中断。当对等中继代理再次启动时,它会重新建立与活动对等方的 TCP 连接。然后,对等方同步绑定信息。 图 1 显示了支持中继代理冗余的简单 DHCP 拓扑,具有以下特征:
-
每个 DHCP 客户端都连接到两个中继代理。
-
两个中继代理都连接到同一个 DHCP 服务器。
-
在每个中继代理上配置该
active leasequery语句时,还会将另一个中继代理指定为对等方。 -
对等方使用相同的活动租约消息进行通信,如 表 8 和 表 10 中所述。虽然此处未显示,但当外部 RADIUS 服务器是拓扑的一部分时,与 RADIUS 服务器的交互没有差异。
以下序列介绍了在两者上配置了活动租约查询时,中继代理如何建立对等关系并共享绑定信息。此示例适用于 DHCPv4,但 DHCPv6 的机制相同。
-
两个中继代理都有活动的 DHCP 客户端绑定,但尚未配置活动租约查询。
-
您可以在两个中继代理上配置活动租约查询,将彼此指定为对等方,然后提交配置。
-
在提交配置时,两个对等代理都会尝试建立 TCP 连接。假设中继代理中继代理 1 成功建立连接。来自对等中继代理 2 的尝试将被丢弃。
-
然后,中继代理 1 向中继代理 2 发送 ACTIVELEASEQUERY 消息。
-
中继代理 2 将其订阅者数据库中的绑定相关信息发送到中继代理 1。它还向中继代理 1 发送自己的 ACTIVELEASEQUERY 消息,以收集对等方的客户端信息。
-
中继代理 1 将其绑定信息发送到中继代理 2。中继代理 1 和中继代理 2 各自处理接收到的绑定信息并将其提交到各自的数据库中。
-
当每个中继代理更新其自身客户端的绑定信息(如许可证续订、新请求、租约到期等)时,它都会在发生每次更改时向对等方发送包含更新信息的租约查询响应消息。
-
现在假设中继代理 1 已重新启动。TCP 连接断开。中继代理 2 尝试重新建立与中继代理 1 的连接。与此同时,过去流经中继代理 1 的 DHCP 用户流量现在会不间断地流经中继代理 2。
-
当中继代理 1 恢复时,会触发活动租约查询。TCP 连接将重新建立,对等方将交换 ACTIVELEASEQUERY 消息。此时,中继代理 1 没有要共享的绑定信息。中继代理 2 将其所有当前绑定信息发送到中继代理 1;当中继代理 1 停止服务时,此信息可能已更改。结果是,两个中继代理现在都具有同步的数据库。
通过主动租约查询拓扑发现实现接口级冗余
从 Junos OS 19.2R1 版开始,拓扑发现使 DHCP 中继对等方能够发现有关彼此用户接口的信息。在采用 M:N 用户组冗余配置的网络拓扑中,拓扑发现是必需的。在此配置中,托管 DHCP 中继代理的 BNG 充当用户冗余组的主路由器。主路由器处理用户冗余组的流量。一个或多个托管对等中继代理的其他 BNG 用作主服务器上订阅者冗余组的备份。
一个特定的 BNG 可以作为多个订阅者冗余组的备份,但每个冗余组只能备份到一个 BNG。如果主 BNG 发生故障,则受故障影响的每个用户冗余组的备用 BNG 将被选为该冗余组的新主 BNG。新主服务器将继续无缝、无中断地为用户冗余组提供服务。有关 M:N 冗余的详细信息,请参阅 M:N 用户 冗余概述。
接口级用户冗余基于接入链路的逻辑接口。在这种情况下,用户冗余组的接入接口的接口名称在主对等方和备份对等方上不需要相同。此行为与机箱级别中继代理冗余的行为不同,机箱级别中继代理的访问接口名称必须在中继代理对等方上相同。
由于主中继代理和备份中继代理的接口名称可能不同,因此 DHCP 需要发现主中继代理上每个用户冗余组的接口与备份上的相应接口之间的关系。拓扑发现可以提供这些信息。
拓扑发现使主中继代理和备用中继代理能够自动构建转换表,用于映射每个用户冗余组的本地和远程访问接口。如果主服务器发生故障,则被选为新主服务器的备份将使用其转换表立即管理受故障影响的用户冗余组。故障切换本身对于与用户冗余组关联的 DHCP 客户端是透明的。
拓扑发现是一种主动租赁选项。活动租用查询使对等方能够同步与添加到转换表中的接口对应的用户冗余组中的用户的绑定信息。DHCP 会转换绑定信息,以使用备份上的本地接口,而非主服务器上的接口。
配置拓扑发现时,整个 DHCP 租约查询过程由四个连接阶段组成,如 图 2 所示。
-
TCP 连接阶段 — 在对等中继代理之间建立 TCP 连接。
-
拓扑发现阶段 — 对等方交换拓扑发现消息,以确定对等方上每个用户冗余组的匹配接入接口。远程对等方根据 VLAN ID 和子网匹配接口。每个对等方为其所有接入接口发送查询并接收响应,以便所有对等方都可以为用户冗余组构建已连接本地和远程接口对的转换表。
-
批量租约阶段 — 对等方建立活动租约查询运行所需的批量租约关系。批量租约查询使中继代理能够从配置的 DHCP 服务器批量检索多个订阅者的租约信息,而不是在一系列单独的查询和响应中检索。在此阶段,DHCP 将首次批量收集所有绑定信息。
-
活动租约阶段 — 活动租约可确保绑定信息在更改时同步,而无需进行后续查询。主中继代理相对于其本地代理电路 ID(访问接口的名称)发送绑定。备份中继代理使用其转换表获取备份上对应的代理电路 ID,以安装用户。
为了将同步的信息限制为仅使用特定接入接口(即用户冗余组)的用户,活动租约查询在配置拓扑发现时使用按 giaddr 查询 (DHCPv4) 或 linkaddr (DHCPv6) 方法。网关 IP 地址(giaddr 或 linkaddr)是中继代理用来确定向下游发送信息的位置的地址。giaddr 的值是访问接口。中继代理评估 giaddr/linkaddr,并将信息发送至使用与 giaddr/linkaddr 匹配的接入接口的 DHCP 客户端。
这对订阅者冗余意味着,通过使用 giaddr/linkaddr 查询,活动租约查询仅请求该访问接口上的订阅者的信息。因此,它只会将该订阅者信息从主中继代理同步到备份中继代理。与活动租约查询使用中继 id 查询方法(返回整个机箱上所有用户的信息)相比,这是一组小得多的用户集。
此过程的结果是,每个对等代理都会为其处理的每个冗余组安装订阅者。当主中继代理故障切换时,备份已具有必要的订阅者信息,可以不间断地维护受影响的用户会话。
批量租约查询和活动租约查询连接阶段在 TCP 连接上运行。相反,在拓扑发现阶段,DHCP 通过 TCP 发送查询消息,但通过 UDP 发送拓扑发现响应消息。TCP 路径可以是任何内容,但 UDP 路径必须通过接入接口;这就是对等方确认其接入接口已连接的方式。
拓扑发现消息
拓扑发现使用标准的单个租约消息。对于 DHCPv4,它们是 DHCPLEASEQUERY 和 DHCPLEASEACTIVE。对于 DHCPv6,它们是 LEASEQUERY 和 LEASEQUERY-REPLY。使这些消息具体成为拓扑发现消息的区别在于,每条消息在供应商特定选项中都包含一个专用子选项值(DHCPv4 为选项 43,DHCPv6 为选项 17)。专有值是一个字符串,topology_discover_lq。 表 12 列出了查询和回复消息中携带的信息。
VRRP M:N 冗余的拓扑发现使用 TCP 进行查询,使用 UDP 进行响应。伪线 M:N 冗余的拓扑发现使用 TCP 进行查询和响应。
|
查询 |
响应 |
|---|---|
|
事务 ID (xid) — 此编号在每个机箱中都是唯一的。DHCP 为用户冗余组使用的接入接口生成 xid。xid 包含在 DHCP 报头中。 |
事务 ID (xid) - 请求消息中收到的值相同。 |
|
客户端标识符(DHCPv4 选项 61;DHCPv6 选项 1) — 基于 LACP MAC 地址标识 DHCP 客户端的字符串 MAC 地址。 |
客户端标识符(DHCPv4 选项 61;DHCPv6 选项 1) — 在请求消息中收到的值相同。 |
|
不适用 |
服务器标识符(DHCPv4 选项 54;DHCPv6 选项 2) — 基于 LACP MAC 地址识别中继代理的字符串 |
|
代理电路 ID(DHCPv4 选项 82;DHCPv6 option 18) — 对其进行查询的接入接口的接口名称。这用于转换本地和对等接口 ID。 |
代理电路 ID(DHCPv4 选项 82;DHCPv6 option 18) — 对等方上匹配接入接口的接口名称。这用于转换本地和对等接口 ID。 |
|
特定于供应商的选项(DHCPv4 选项 43;DHCPv6 选项 17) — 此选项包含特定于供应商瞻博网络的以下信息:
|
特定于供应商的选项(DHCPv4 选项 43;DHCPv6 选项 17) — 此选项携带以下信息:
对于使用 VRRP 的 M:N 冗余,匹配基于请求中收到的查询接口的名称和子网地址、VLAN ID 和事务 ID。 对于使用伪线的 M:N 冗余,匹配基于请求中收到的查询接口的共享公钥和事务 ID。 |
当发生以下任一情况时,对等中继代理将交换拓扑发现消息:
-
您将配置一个新的对等中继代理。
-
路由器将恢复接入接口连接,以便链路开启。
-
路由器启动。
-
jdhcpd 进程重新启动。
-
您可配置主动租约查询。
-
拓扑会发生变化。当拓扑发现查询到达之前发现的链路时,中继代理会检测到此更改。
有关拓扑如何与 M:N 用户冗余配合使用的详细说明,请参阅 M:N 用户冗余概述。
配置对单个、批量和活动租约查询操作的支持的准则
配置单个、批量或活动租约查询支持时,请考虑以下准则:
-
该路由器支持同时配置单个租约查询、批量租约查询和活动租约查询。活动租用需要配置批量租用查询。
-
该路由器支持 DHCPv4 和 DHCPv6 的同步双堆栈配置。但是,对于双堆栈环境,您必须分别触发 DHCPv4 和 DHCPv6 单独租用或批量租用操作。
-
DHCP 中继代理支持通过静态和动态接口进行单独租用或批量租用。仅面向服务器的静态接口或面向对等方的静态接口支持主动租约查询,以实现机箱冗余。
-
DHCP 本地服务器仅在面向中继的静态接口上支持批量租用。
-
DHCP 本地服务器在 DHCP 中继代理上侦听来自 DHCP 中继代理的批量租约和活动租约查询请求,位于 DHCPv4 的端口 67 和 DHCPv6 的端口 547 上。
-
通过 PPP/PPPoE 的 DHCP 不支持批量租约查询和活动租约查询。
-
以下堆栈组合支持主动租约:
-
通过静态接口的 DHCP (ge/ae/xe/irb/ps) (支持 Junos OS 20.1R1 版中添加的 ps 接口。)
-
DHCP over IP 多路分离接口
-
基于 VLAN 的 DHCP 多路分离接口
-
通过 VLAN 上的 IP DHCP 多路分离接口
-
-
从 Junos OS 19.1R1 版开始,DHCPv4 中继代理在其转发至 DHCP 本地服务器的每个数据包中插入 Relay-ID 选项,如下所示:
-
中继代理始终在未侦听的数据包中插入该选项。
-
仅当在该 LS:RI 中配置了批量租约查询时,中继代理才会在侦听的数据包中插入该选项。
-
-
如果网络包含集成路由和桥接 (IRB) 接口,则必须将 DHCP 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。
配置和使用 DHCP 单个租约查询
单个租约查询操作会使用与单个指定订阅者相关的信息来更新 DHCP 中继代理的租约数据库。您可以通过 DHCP 客户端的 IPv4 地址、MAC 地址或客户端 ID 来识别 MAC 地址。您可以通过 DHCP 客户端的 IPv6 地址或客户端 ID 来识别 DHCPv6 用户。
开始之前,请阅读 为单个、批量和活动租约查询操作配置支持的准则 ,并确保在 DHCP 中继代理上配置了以下所需支持。
-
(仅限 DHCPv4)DHCP 中继代理会在中继转发到 DHCP 服务器的 DHCP 数据包中插入选项 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCP 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。使用 Leasequery 或批量 LeaseQuery 恢复租约数据库时,DHCP 中继代理会使用第 2 层接口名称。[edit forwarding-options dhcp-relay] user@host# set relay-option-82 circuit-id include-irb-and-l2
-
(仅限 DHCPv4)DHCP 中继代理始终在中继转发到 DHCP 服务器的 DHCP 数据包中包含新的 option 82 信息。请参阅 覆盖 Option 82 信息。
[edit forwarding-options dhcp-relay] user@host# set overrides always-write-option-82
-
(仅限 DHCPv6)DHCP 中继代理会在中继转发至 DHCPv6 服务器的数据包中插入 DHCPv6 接口 ID(选项 18)。请参阅在 DHCPv6 数据包中插入 DHCPv6 接口 ID 选项(选项 18)。
如果您的网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCPv6 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id include-irb-and-l2
使用以下步骤配置和使用单个租约操作。
使用支持 show 的 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租约操作的信息。请参阅 验证和管理 DHCP 单个和批量租赁查询配置。
配置和使用 DHCP 批量租约查询
批量租约查询操作使用多个订阅者的信息更新 DHCP 中继代理的租约数据库,而单独租约查询则仅查询已知目标的单个绑定。批量租约查询还通过提供额外的查询选项和功能来扩展单个租约查询。
开始之前,请阅读 为单个、批量和活动租约查询操作配置支持的准则 ,并确保在 DHCP 中继代理上配置了以下所需支持。
-
(仅限 DHCPv4)DHCP 中继代理会在中继转发到 DHCP 服务器的 DHCP 数据包中插入选项 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCPv6 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。[edit forwarding-options dhcp-relay] user@host# set relay-option-82 circuit-id include-irb-and-l2
-
(仅限 DHCPv4)DHCP 中继代理始终在中继转发到 DHCP 服务器的 DHCP 数据包中包含新的 option 82 信息。请参阅 覆盖 Option 82 信息。
[edit forwarding-options dhcp-relay] user@host# set overrides always-write-option-82
-
(仅限 DHCPv6)DHCP 中继代理会在转发至 DHCPv6 服务器的数据包中插入 DHCPv6 接口 ID(选项 18)。请参阅在 DHCPv6 数据包中插入 DHCPv6 接口 ID 选项(选项 18)。
[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id
如果您的网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCPv6 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id include-irb-and-l2
使用以下步骤配置和使用批量租约操作。
使用支持 show 的 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租约操作的信息。请参阅 验证和管理 DHCP 单个和批量租赁查询配置。
配置和使用 DHCP 活动租约查询
开始之前,请阅读 为单个、批量和活动租约查询操作配置支持的准则 ,并确保在 DHCP 中继代理上配置了以下所需支持。
-
(仅限 DHCPv4)DHCP 中继代理会在中继转发到 DHCP 服务器的 DHCP 数据包中插入选项 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCPv6 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。[edit forwarding-options dhcp-relay] user@host# set relay-option-82 circuit-id include-irb-and-l2
-
(仅限 DHCPv4)DHCP 中继代理始终在中继转发到 DHCP 服务器的 DHCP 数据包中包含新的 option 82 信息。请参阅 覆盖 Option 82 信息。
[edit forwarding-options dhcp-relay] user@host# set overrides always-write-option-82
-
(仅限 DHCPv6)DHCP 中继代理会在转发至 DHCPv6 服务器的数据包中插入 DHCPv6 接口 ID(选项 18)。请参阅在 DHCPv6 数据包中插入 DHCPv6 接口 ID 选项(选项 18)。
如果您的网络包含集成路由和桥接 (IRB) 接口,则还必须包含该
include-irb-and-l2语句,如以下示例中所示。此语句将 DHCPv6 中继代理配置为在选项 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用租约查询或批量租约查询还原租用数据库时,使用第 2 层接口名称。[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id include-irb-and-l2
-
对于机箱级别 DHCP 中继代理冗余,应遵循以下准则:
-
DHCP 中继代理冗余对等方都必须具有相同的用户配置,才能实现数据库同步。
-
在 DHCP 中继代理冗余对等方上,启动用户的接入接口 (
ge、xe或ae) 的完整接口名称必须相同。
-
-
对于接口级 DHCP 中继代理主/备冗余,冗余对等方上的接口名称不必相同。主中继代理和备用中继代理使用拓扑发现来构建转换表,用于为用户冗余组映射本地和远程(对等)接口。
注意:在所有可用逻辑接口上配置拓扑发现时,如果接口名称和用户配置在冗余对等方上匹配,则支持冗余级冗余。
-
由于主动租用是批量租约查询的扩展,因此必须配置批量租约查询才能运行主动租约查询。请参阅 配置和使用 DHCP 批量租约查询。
当本地服务器上的 DHCP 绑定信息发生变化时,活动租约查询操作会向多个订阅者的 DHCP 中继代理发送实时更新。您还可以将主动租约用作配置的一部分,以在对等中继代理之间提供绑定信息的冗余。
使用以下步骤配置和使用活动租约查询操作。
这些步骤不会重复任何批量租约查询配置。例如,这些步骤不包括配置最大 TCP 连接数,因为这是所需批量租赁查询配置的一部分。
使用支持 show 的 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租约操作的信息。请参阅 验证和管理 DHCP 单个和批量租赁查询配置。
EVPN-MPLS DHCPv6-PD 主动-主动模式的有状态中继同步(ACX7100-32C、ACX7100-48L、ACX7332、ACX7348、ACX7509、ACX7024 和 ACX7024X)
此 DHCPv6-PD 状态式中继同步功能支持 DHCPv6 前缀委派配置,其中包括:
-
双活模式的 EVPN-MPLS 两个叶节点之间进行同步
-
DHCPv6 前缀委派,可自动将 IPv6 前缀委派给 CPE。
- 支持 DHCPv6 中继代理上的批量租赁查询。
- 配置 DHCP 中继代理在发送 DHCP 批量租约查询消息时使用的参数,以便从逻辑系统/路由实例中的 DHCP 本地服务器获取租约信息。
-
通过 IRB 使用主动租约查询/批量租约查询的 EVPN-VXLAN DHCPv6 状态同步。
[ 请参阅 EVPN-VXLAN 中 IRB 接口上支持的协议、 DHCP 租用查询方法、 主动租用(DHCP 中继代理) 和 批量租用查询(DHCP 中继代理)] ]
配置示例:
以下示例显示具有过时计时器设置的主动-主动配置。需要过时计时器配置才能支持主动-主动租约查询。此配置优化了两个对等方同时获取请求数据包时的同步时间。
dhcp-relay
{
dhcpv6
{
group v6relay
{
active-server-group v6server;
interface irb.0;
}
relay-agent-interface-id
{
include-irb-and-l2;
}
server-group
{
v6server
{
1000::1;
}
}
bulk-leasequery;
active-leasequery
{
peer-address
{
1003::1;
}
}
}
overrides
{
always-write-option-82;
}
relay-option-82
{
circuit-id
{
include-irb-and-l2;
}
}
server-group {
v4server {
100.0.0.1;
}
}
group v4relay {
active-server-group v4server;
interface irb.0;
}
stale-timer 20;
bulk-leasequery;
active-leasequery {
peer-address {
103.0.0.1;
}
}
}
dhcp-relay {
dhcpv6 {
group v6relay {
active-server-group v6server;
interface irb.0;
}
relay-agent-interface-id {
include-irb-and-l2;
}
server-group {
v6server {
1000::1;
}
}
bulk-leasequery;
active-leasequery {
peer-address {
1002::1;
}
}
}
overrides {
always-write-option-82;
}
relay-option-82 {
circuit-id {
include-irb-and-l2;
}
}
server-group {
v4server {
100.0.0.1;
}
}
group v4relay {
active-server-group v4server;
interface irb.0;
}
stale-timer 20;
bulk-leasequery;
active-leasequery {
peer-address {
102.0.0.1;
}
}
}
启动 DHCP 租约查询以更新 DHCP 中继代理租约数据库
您必须发出 request 命令来触发 DHCP 中继代理启动单个租约查询或批量租约查询操作,这会从 DHCP 本地服务器请求当前租约信息。每个单独的租约查询都会使用单个客户端的信息来更新 DHCP 中继代理的租约数据库。每个批量租约查询都会更新多个客户端的中继代理租约数据库。表 13 列出了可用于 DHCPv4、DHCPv6、单个租赁和批量租赁查询的各种查询选项。
|
查询选项 |
DHCPv4 单个租赁查询 |
DHCPv4 批量租赁 |
DHCPv6 单个租赁 |
DHCPv6 批量租约查询 |
|---|---|---|---|---|
|
代理远程 ID |
– |
✓ |
– |
✓ |
|
客户端 ID |
✓ |
✓ |
– |
– |
|
客户端 ID (DUID) |
– |
– |
✓ |
✓ |
|
网关地址 |
✓ 必填 |
– |
– |
– |
|
IPv4 地址 |
✓ |
✓ |
– |
– |
|
IPv6 前缀 |
– |
– |
✓ |
✓ |
|
链路地址 |
– |
– |
– |
✓ |
|
MAC 地址 |
✓ |
✓ |
– |
– |
|
中继代理 ID |
– |
✓ |
– |
✓ |
使用语句和trigger automatic选项在中继代理bulk-leasequery上配置 DHCPv6 批量租用查询后,不会使用命令发request起查询。相反,每当中继代理上的 jdhcpd 进程启动时(例如,在 jdhcpd 重新启动、中继代理设备重新启动、平稳路由引擎切换或统一 ISSU 之后)并且会话数据库中没有绑定的用户时,就会自动触发查询。自动批量租用始终基于中继代理 Relay-ID 选项(选项 53)。
配置自动触发器支持后,您仍然可以使用该 request 命令手动触发批量租约查询,与自动查询分开。
活动租约查询不需要 request 命令即可启动。相反,它会在您配置时自动启动。活动租约查询确实要求您配置批量租约查询。
DHCPv4 中继代理可以拥有多个具有不同 IP 地址的接口,因此每个接口都可以充当不同客户端集的网关。这意味着您必须始终在请求中指定网关地址。
要启动 DHCPv4 单独租约以更新绑定信息,必须始终指定中继代理的网关 IP 地址。还必须指定查询类型:
-
指定租用给客户端的 IP 地址。
user@host> request dhcp relay leasequery ipv4-address gateway-address giaddr
-
指定客户端的 MAC 地址。
user@host> request dhcp relay leasequery mac-address gateway-address giaddr
-
指定客户端标识符(选项 61)。
user@host> request dhcp relay leasequery client-id gateway-address giaddr
要启动 DHCPv4 批量租赁以更新绑定信息,您可以:
-
指定租用给客户端的 IP 地址。
user@host> request dhcp relay bulk-leasequery ipv4-address
-
指定客户端的 MAC 地址。
user@host> request dhcp relay bulk-leasequery mac-address
-
指定客户端标识符选项(选项 61)。
user@host> request dhcp relay bulk-leasequery client-id
-
指定 DHCP 中继代理信息选项(选项 82)的中继代理标识符子选项(子选项 12)。
user@host> request dhcpv6 relay bulk-leasequery relay-id relay-id
默认情况下,如果未显式指定以下任何选项,则批量租约查询操作将使用 DHCPv4 中继代理的中继 ID: client-id、 ipv4-address、 relay-idmac-address、 或 remote-id。
user@host> request dhcpv6 relay bulk-leasequery
-
指定 DHCPv4 中继代理信息选项(选项 82)的代理远程 ID(子选项 2)。
user@host> request dhcpv6 relay bulk-leasequery remote-id remote-id
要启动 DHCPv6 单独租赁以更新绑定信息,您可以:
-
指定客户端 ID(选项 1)。
user@host> request dhcpv6 relay leasequery client-id
-
指定租用给客户端的 IPv6 地址。
user@host> request dhcpv6 relay leasequery ipv6-prefix
要启动 DHCPv6 批量租赁以更新绑定信息,您可以:
-
指定客户端 ID(选项 1)。
user@host> request dhcpv6 relay bulk-leasequery client-id
-
指定 IPv6 前缀。
user@host> request dhcpv6 relay bulk-leasequery ipv6-prefix
-
指定 IPv6 链路地址。
user@host> request dhcpv6 relay bulk-leasequery link-address ipv6-link-address
-
指定 Relay-ID 选项(选项 53)。
user@host> request dhcpv6 relay bulk-leasequery relay-id relay-id
默认情况下,如果未显式指定以下任何选项,则批量租约操作将使用 DHCPv6 中继代理的中继 ID: client-id、 ipv6-prefix、 relay-idipv6-link-address、 或 remote-id。
user@host> request dhcpv6 relay bulk-leasequery
-
指定中继代理远程 ID 选项(选项 37)。
user@host> request dhcpv6 relay bulk-leasequery remote-id remote-id
对于任何单个和批量租约请求,除了上面列出的选项外,您还可以选择指定限定符以将查询限制到特定的 DHCP 服务器。否则,查询将发送至中继代理已知的所有 DHCP 服务器。
您可以指定本地服务器的地址或一组本地服务器的名称。您可以单独指定逻辑系统和/或指定路由实例,也可以除了服务器地址或组之外指定。
在以下示例中, option 表示前面所示的任何可配置选项。为简洁起见,该示例仅显示 DHCPv4 单个租约查询,并且仅显示部分可能性。有关更多信息,请参阅各个命令主题: 请求 DHCP 中继租约查询、 请求 dhcpv6 中继租约查询、 请求 dhcp 中继批量租约查询和 请求 dhcpv6 中继批量租约查询。
-
指定本地服务器的地址。
user@host> request dhcp relay leasequery option server-address address
-
指定逻辑系统。
user@host> request dhcp relay leasequery option logical-system logical-system-name
-
指定路由实例和指定的本地服务器组。
user@host> request dhcp relay leasequery option routing-instance routing-instance-name server-group group-name
验证和管理 DHCP 单个和批量租赁查询配置
目的
查看或清除有关 DHCP 单独租用和批量租用查询操作的信息。使用 supported show 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的租用和批量租约查询操作的信息。
有关活动租约查询,请参阅 验证和管理 DHCP 活动租约查询操作。
行动
使用支持 show 的 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的租用操作的信息。
-
要显示 DHCPv4 或 DHCPv6 中继代理的租赁信息:
user@host> show dhcp relay statistics (leasequery | bulk-leasequery-connections) user@host> show dhcpv6 relay statistics (leasequery | bulk-leasequery-connections)
-
要清除 DHCPv4 或 DHCPv6 中继代理的租约查询信息:
user@host> clear dhcp relay statistics (leasequery | bulk-leasequery-connections) user@host> clear dhcpv6 relay statistics (leasequery | bulk-leasequery-connections)
-
要显示 DHCPv4 或 DHCPv6 本地服务器的租用信息:
user@host> show dhcp server statistics bulk-leasequery-connections user@host> show dhcpv6 server statistics bulk-leasequery-connections
-
要清除 DHCPv4 或 DHCPv6 本地服务器的租约信息:
user@host> clear dhcp server statistics bulk-leasequery-connections user@host> clear dhcpv6 server statistics bulk-leasequery-connections
验证和管理 DHCP 活动租约查询操作
目的
查看或清除有关 DHCP 活动租用操作的信息。使用 supported show 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的活动租约操作的信息。
对于 DHCP 单个和批量租用,请参阅 验证和管理 DHCP 单个和批量租约查询配置。
行动
使用支持 show 的 和 clear 命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的租用操作的信息。
-
要显示 DHCPv4 或 DHCPv6 对等中继代理的活动租约信息:
user@host> show dhcp relay active-leasequery user@host> show dhcpv6 relay active-leasequery
-
要清除 DHCPv4 或 DHCPv6 中继代理的活动租约信息:
user@host> clear dhcp relay active-leasequery statistics user@host> clear dhcpv6 relay active-leasequery statistics
-
要显示有关活动租约查询邻接方的信息,请执行以下操作:
user@host> show dhcp active-leasequery neighbors user@host> show dhcpv6 active-leasequery neighbors
您可以显示所有对等方的常规信息。您还可以显示特定对等方和特定接入接口的统计信息。例如:
-
对于 BNG 上的每个伪线接口,显示与该接口关联的 BNG 邻接方的 IP 地址。
user@host> show dhcp active-leasequery neighbors Interface Neighbor Address ps2.0 198.51.100.5 ps1.0 198.51.100.7 -
显示 DHCPv4 和 DHCPv6 对等方的统计信息。
user@host> show dhcp relay active-leasequery statistics peer 198.51.100.1 peer : 198.51.100.1 Topology-Discover Configured : Yes State : Done Bindings Sent : 0 Bindings Received : 0 Bindings Installed Successfully : 0 Bindings Failed to install : 0 Last Synchronization Time : None ALQ Transmit Buffer count : 0x ffff Max Leasequery Transmit Rate : 60 Local Interface count : 2 Remote Interface count : 2user@host> show dhcpv6 relay active-leasequery statistics peer 2001:db8::2 peer : 2001:db8::2 Topology-Discover Configured : Yes State : Done Bindings Sent : 8112 Bindings Received : 12382 Bindings Installed Successfully : 0 Bindings Failed to install : 0 Last Synchronization Time : 2020-02-05 01:27:54 IST ALQ Transmit Buffer count : 0x ffff Max Leasequery Transmit Rate : 60 Local Interface count : 2 Remote Interface count : 2
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。