DHCP 租约查询方法
在订阅者访问网络中,DHCP 本地服务器会维护大量与服务器租给 DHCP 客户端的 IP 地址或 DHCPv6 委托前缀相关的绑定信息。当 DHCP 客户端通过 DHCP 中继代理连接到 DHCP 服务器时,DHCP 中继代理会从其转发的 DHCP 数据包中收集到达端点所需的数据(如 IP 地址)。中继代理负责维护与 DHCP 客户端相关的租期和路由信息。中继代理在向客户端提供订阅者服务时使用该信息。重新启动中继代理或者重新启动或更换代理主机设备时,中继代理将丢失该信息。您可以使用 request
命令触发中继代理向本地服务器发送 leasequery 消息,以恢复 DHCP 客户端的绑定信息,以便中继代理可以恢复其租赁信息数据库。
订阅者管理支持以下类型的 leasequery 操作:
单个租约查询 - 根据请求提供单个绑定的租约信息(查询和响应模式)。
批量租约查询 - 根据请求提供多个绑定的租约信息(查询和响应模式)。
活动 leasequery - 在配置时为多个绑定提供实时更新流。
DHCP Leasequery 的优势
Leasequery 为 DHCPv4 或 DHCPv6 中继代理提供了一种轻量级方式,可在重新启动或更换中继代理后,从 DHCP 本地服务器恢复与租用的 DHCP IP/IPv6 地址和委托的前缀相关的权威位置信息。
批量 leasequery 无需查询特定客户端的单个绑定,从而允许单个请求返回数百个或数千个订阅者的信息。此方法不会等待数据流量触发查询,因此当代理拥有数千个客户端时,它的扩展效果优于单个 leasequery。如果采用 DHCPv6,中继代理可能无法形成单个查询。
配置后,Active leaseQury 会向一个或多个中继代理提供绑定信息的持续实时更新。除了中继代理和本地服务器之间的更新之外,您还可以配置中继代理之间的对等关系。这使得对等方能够彼此持续同步其绑定信息,并在对等方出现故障或重新启动时提供冗余。活动对等方会立即为使用受影响中继代理的客户端维护服务。
拓扑发现使为 M:N 用户冗余配置的 BNG 上的中继代理对等方能够自动构建转换表,以便在主 BNG 故障转移到备份时继续为用户冗余组提供服务。这种自动行为使您不必静态地构建表。静态配置在扩展网络中容易出错,并且不能动态适应网络中的变化。
DHCP 个人租期查询
从 Junos OS 16.1 版开始,订阅者管理支持单独的租约查询功能,该功能使 DHCPv4 或 DHCPv6 中继代理能够快速、高效地从 DHCP 本地服务器获取当前租约信息。中继代理可能会由于各种原因(例如中继代理设备已重新启动)而丢失本地存储的租用信息。当中继代理随后从客户端接收到要转发的数据流量时,它不再具有执行此操作的信息。与本地服务器的 leasequery 交互可以恢复信息,以便中继代理可以正确地为其客户端提供服务。
要配置单独的租约查询操作,请在 DHCP 中继代理和 DHCP 服务器上启用支持。您可以配置中继代理和服务器之间通信的详细信息。您必须发出 request dhcp leasequery
或 request dhcpv6 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。
DHCPv4 单个 leasequery 的消息类型说明如表 1 所示。
消息类型 |
Option 53 类型值 |
描述 |
---|---|---|
DHCPLEASEQUERY |
10 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
DHCPLEASE未分配 |
11 |
当与客户端关联的 IP 地址由服务器控制但当前未租用时,来自本地服务器的响应。 此响应仅针对按 IP 地址进行的查询发送。 |
DHCPLEASE未知 |
12 |
当服务器不知道查询中的信息时,来自本地服务器的响应。 |
DHCPLEASEACTIVE |
13 |
本地服务器将地址租给客户端时的响应。响应包含有关该地址的完整绑定信息。 |
DHCPv6 个人租赁查询
查询类型在LQ_Query选项(选项 44)中传达。DHCPv6 中继代理查询类型可以按地址或客户端 ID 进行。通过发出 request dhcpv6 relay leasequery
命令在触发查询时确定查询类型。指定 DHCPv6 中继代理在 LEASEQUERY 消息中在选项请求选项(选项 6)中包含以下值之一,以使本地服务器能够识别代理请求的绑定信息:
客户端租约的 IPv6 地址 — 本地服务器返回绑定到该地址或已委派包含该地址的前缀的最新客户端的绑定信息。选项 44 中的查询选项字段包括 IAADDR 选项(选项 5)。
客户端设备的 DHCP 唯一标识符 (DUID) — 本地服务器返回具有指定 DUID 的客户端最近使用的 IP 地址的绑定信息。DUID 是客户端的 IPv6 标识符。该标识符在服务器的管理域中是唯一的。如果在多个链路地址上找到客户端,则本地服务器可以返回地址列表。选项 44 中的查询选项字段包括客户端标识符选项(选项 1)。
选项 44 中的 query-options 字段还可以包括选项请求选项(选项 6),以列出 DHCPv6 选项代码,以获取每个客户端从本地服务器获得的特定信息。
LEASEQUERY-REPLY 消息包括客户端数据选项(选项 45),用于在单个链路上为单个客户端提供信息。此信息在 client-options 字段中作为 DHCPv6 选项传达。Option 45 至少包括以下选项,以及中继代理在 LEASEQUERY 选项请求选项(选项 6)中请求的任何其他选项:
客户端标识符(选项 1)— 用于识别 DHCPv6 客户端的 DUID。
IAADDR(选项 5) - 临时地址 (IA_TA) 或非临时地址 (IA_NA) 的身份关联中的地址。可包含在 IAPREFIX 选项中。
IAPREFIX (option 26) - 前缀委派 (IA_PD) 标识关联中的前缀。可以包含在 IAADDR 选项中。
CLT 选项(选项 46)— 自服务器上次通过该链路与客户端交互以来的时间(以秒为单位)。此选项对应于 DHCPv4 客户端上次事务时间选项。
以下选项是 LEASEQUERY-REPLY 消息中可包含的其他选项的示例:
LQ 中继数据选项(选项 47)— 客户端上次与此服务器通信时使用的完整中继代理信息。仅当在 LEASEQUERY 选项请求选项(选项 6)中请求此选项时,本地服务器才会返回此选项。
LQ 客户端链路选项(选项 48) — 标识客户端至少有一个绑定的链路地址。当满足以下两个条件时,LEASEQUERY-REPLY 消息将包含此选项:LEASEQUERY 未指定链接地址,并且在多个链接上找到客户端。当中继代理收到此信息时,它可以为选项 48 中列出的每个地址提交新的 LEASEQUERY。
DHCPv6 单个 leasequery 的消息类型说明如下表 2。
消息类型 |
DHCPv6 类型值 |
描述 |
---|---|---|
LEASEQUERY |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。包括 LQ 选项(选项 44),用于指定查询类型、链接地址以及本地服务器所需的任何特定选项信息。 |
LEASEQUERY-REPLY |
15 |
当与客户端关联的 IP 地址由服务器控制但当前未租用时,来自本地服务器的响应。 此响应仅针对按 IP 地址进行的查询发送。 |
DHCPv6 本地服务器发送的 LEASEQUERY-REPLY 消息可以返回状态代码选项(选项 13),以提供有关查询状态的信息。 表 3 列出了状态代码。
法典 |
地位 |
描述 |
---|---|---|
7 |
UnknownQueryType |
服务器无法识别或不支持查询。 |
8 |
MalformedQuery |
查询无效;例如,它可能缺少必需的选项。 |
9 |
未配置 |
本地服务器的配置中没有所需的地址。 |
10 |
不允许 |
本地服务器不允许中继代理发送此查询类型。 |
DHCP 批量租期查询
从 Junos OS 16.1 版开始,订阅者管理支持批量租约查询功能,该功能使来自 DHCP 中继代理的每个请求都能以编程方式从配置的 DHCP 服务器批量检索多个订阅者的租约信息。批量 leasequery 比使用多个单独的 leasequery 来收集相同的信息更省资源。这在每个中继代理具有数千个客户端的扩展环境中特别有用。
批量租约查询使用 DHCP 中继代理与同一逻辑系统/路由实例中配置的 DHCP 服务器之间的 TCP 连接。与用于单个租赁查询进程的 UDP 连接相比,TCP 连接更可靠,消耗的资源更少。批量 leasequery 还通过提供额外的查询选项和功能来扩展单个 leasequery。
要配置批量租用查询操作,请在 DHCP 中继代理和 DHCP 服务器上启用支持。您可以配置中继代理和服务器之间通信的详细信息。必须发出 request dhcp bulk-leasequery
或 request dhcpv6 bulk-leasequery
命令以触发中继代理发送 leasequery。
默认情况下,中继代理会将查询发送到所有已知的本地服务器。您可以通过指定服务器或命名服务器组的地址来限制与之通信的服务器。您还可以将查询限制为特定逻辑系统、路由实例或 LS:RI 组合中的服务器。
DHCPv4 批量租用查询
对于 DHCPv4 批量租用查询,DHCPv4 中继代理会通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送 DHCPBULKLEASEQUERY 消息。查询可以包含以下任何一项,以使本地服务器能够识别代理所需的信息:
所有配置的 IP 地址 — 本地服务器返回本地服务器中配置的所有 IP 地址的绑定信息。无论 IP 地址是否是当前活动绑定的一部分,都将返回该信息。这使中继代理能够使用在某个时间点之后发生的所有地址更改来更新其数据库。
客户端设备的客户端标识符 — 本地服务器返回具有指定客户端标识符(选项 61)的客户端最近使用的 IP 地址的绑定信息。该标识符在服务器的管理域中是唯一的。
注意:与单个 leasequery 不同,服务器不使用关联的 IP 选项(选项 92)来返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器会返回所有这些 IP 地址的绑定信息
客户端设备的 MAC 地址 — 本地服务器返回具有该 MAC 地址的最新客户端的绑定信息。
注意:与单个 leasequery 不同,服务器不使用关联的 IP 选项(选项 92)来返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器会返回所有这些 IP 地址的绑定信息
中继代理标识符 — 本地服务器返回分配给具有指定中继代理标识符(选项 82,子选项 12)的客户端的所有当前活动租约的绑定信息。该标识符在服务器的管理域中是唯一的。
客户端用来识别 DHCP 客户端电路的访问电路的远程 ID — 本地服务器返回分配给使用该代理远程 ID 的客户端的所有当前活动租约的绑定信息(选项 82,子选项 2)。此查询在每个中继代理有数千个客户端的扩展环境中特别有用。其他查询不会返回电路上所有客户端的合并租用信息。
DHCPv4 本地服务器使用用于单个 leasequery 的相同 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息回复中继代理,如 DHCPv4 单个 leasequery 消息类型中所述。每条消息对应于查询标识的单个绑定。
当服务器返回与请求关联的所有绑定时,它会向中继代理发送 DHCPLEASEQUERYDONE 消息。如果在处理批量租用查询时连接丢失,则 DHCP 无法确定中继代理在连接中断之前收到了多少请求的信息。因此,中继代理必须重试查询。
对于任何查询方法,DHCP 中继代理都可以包含以下限定符:
query-start-time - 返回在查询中指定的时间或之后更改的绑定。
query-end-time - 返回在查询中指定的时间或之前更改的绑定。
通过这些查询时间,代理只能恢复自上次将所有信息提交到稳定存储以来丢失的绑定信息。
表 4 描述了特定于 DHCPv4 批量 leasequery 的消息类型。
消息类型 |
Option 53 类型值 |
描述 |
---|---|---|
DHCPBULKLEASEQUERY |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
DHCPLEASEQUERYDONE |
15 |
当本地服务器返回与批量请求关联的所有绑定信息时,本地服务器的响应。 |
DHCPv4 本地服务器发送的消息可以返回状态代码选项(选项 151),以提供有关查询状态的信息。在 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息中,代码对应于单个绑定请求的状态。在 DHCPLEASEQUERYDONE 消息中,代码作为一个整体对应于批量 leasequery 请求。 表 5 列出了状态代码。
法典 |
地位 |
描述 |
---|---|---|
0 |
成功 |
请求已成功完成。没有选项 151 也表明成功。 |
1 |
UnSpecFail |
由于不明原因,请求失败。 |
2 |
QueryTerminated |
本地服务器无法执行查询,或者提前终止了查询。在后一种情况下,文本字符串指示原因。 |
3 |
MalformedQuery |
本地服务器无法理解查询。 |
4 |
不允许 |
查询已理解,但不允许。 |
DHCPv6 批量租用查询
对于 DHCPv6 批量租用查询,DHCPv6 中继代理会通过端口 67 打开到 DHCPv6 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送 LEASEQUERY 消息。查询类型在LQ_Query选项(选项 44)中传达。查询类型可以是以下任一选项,以使本地服务器能够识别代理所需的信息:
所有配置的 IP 地址 — 本地服务器返回本地服务器中配置的所有 IP 地址的绑定信息。无论 IP 地址是否是当前活动绑定的一部分,都将返回该信息。这使中继代理能够使用在某个时间点之后发生的所有地址更改来更新其数据库。
客户端设备的客户端标识符 — 本地服务器返回具有指定客户端标识符(选项 61)的客户端最近使用的 IP 地址的绑定信息。该标识符在服务器的管理域中是唯一的。
注意:与单个 leasequery 不同,服务器不使用关联的 IP 选项(选项 92)来返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器会返回所有这些 IP 地址的绑定信息
客户端设备的 MAC 地址 — 本地服务器返回具有该 MAC 地址的最新客户端的绑定信息。
注意:与单个 leasequery 不同,服务器不使用关联的 IP 选项(选项 92)来返回客户端通过此服务器访问的其他 IP 地址的列表。相反,服务器会返回所有这些 IP 地址的绑定信息
中继代理标识符 — 本地服务器返回分配给具有指定中继代理标识符(选项 82,子选项 12)的客户端的所有当前活动租约的绑定信息。该标识符在服务器的管理域中是唯一的。
客户端用来识别 DHCP 客户端电路的访问电路的远程 ID — 本地服务器返回分配给使用该代理远程 ID 的客户端的所有当前活动租约的绑定信息(选项 82,子选项 2)。此查询在每个中继代理有数千个客户端的扩展环境中特别有用。其他查询不会返回电路上所有客户端的合并租用信息。
对于 DHCPv6 批量租用查询,您可以选择性地指定 trigger automatic
配置 DHCPv6 中继代理的选项,以便在进程开始与会话数据库 (SDB) 的连接且数据库中不存在绑定订阅者时 jdhcpd
自动启动批量租用查询操作。例如,自动过程将确保批量 leasequery 在重新启动、GRES 或 ISSU 操作之后,以及在没有绑定的订阅者的情况下,始终更新 DHCP 中继信息。
DHCPv6 批量 leasequery 使用 DHCPv6 单个 leasequery 使用的 LEASEQUERY 和 LEASEQUERY-REPLY 消息,但对于批量 leasequery,它们的行为和含义略有不同。 表 6 列出了这些消息,并介绍了特定于 DHCPv6 批量 leasequery 的另外两种消息类型。
消息类型 |
DHCPv6 类型值 |
描述 |
---|---|---|
LEASEQUERY |
14 |
由中继代理发送到 DHCP 本地服务器以恢复信息。 |
LEASEQUERY-REPLY |
15 |
来自本地服务器的响应,用于指示查询的成功或失败。它还传达在单个查询和回复的上下文中不会更改的信息,如服务器 ID 和客户端 ID。 查询成功后,仅返回单个 LEASEQUERY-REPLY。此消息还包括第一个客户端的绑定信息。其他绑定数据将在 LEASEQUERY-DATA 消息中返回。 当查询失败时,将返回一个不包含绑定信息的 LEASEQUERY-REPLY。 |
LEASERYQUE-DONE |
16 |
来自本地服务器的响应,指示一组相关 leasequery 回复的结束。将对请求的所有回复都发送到中继代理之后,将发送一条 LEASEQUERY-DONE 消息。 收到此消息时,中继代理和服务器之间的 TCP 连接将关闭。 |
LEASEQUERY-DATA |
17 |
来自本地服务器的响应,其中包含有关单个 DHCPv6 客户端的租约或单个链路上的前缀委派绑定的信息。 仅当批量 leasequery 返回多个客户端的数据时,才会发送此消息。在这种情况下,LEASEQUERY-REPLY 消息传达第一个客户端的信息,然后为其他每个客户端发送 LEASEQUERY-DATA 消息。 |
DHCPv6 本地服务器发送的消息可以返回状态代码选项(选项 13),以提供有关查询状态的信息。在 LEASEQUERY-REPLY 消息中,代码对应于单个绑定请求的状态。在 LEASEQUERY-DONE 消息中,代码对应于整个批量 leasequery 请求。LEASEQUERY-DATA 消息不包含状态代码。DHCPv6 批量 leasequery 支持 DHCPv6 单个 leasequery 状态代码中列出的 DHCPv6 单个 leasequery 状态代码。这些消息还可以包括为 表 7 中描述的批量租用查询添加的状态代码。
法典 |
地位 |
描述 |
---|---|---|
11 |
QueryTerminated |
本地服务器无法执行查询,或者由于某种原因过早终止了查询。例如,本地服务器正在关闭或没有足够的资源来收集请求的信息。 |
DHCP 活动租约查询
从 Junos OS 19.1R1 版开始,DHCP active leasequery 解决了中继代理需要定期接收客户端信息更新以跟上动态 DHCP 绑定活动的情况。单个和批量租赁查询仅在请求时提供信息;如果稍后在本地服务器上更新了客户端信息,则该信息不会传递给中继代理,除非中继代理向本地服务器发送另一个查询。
活动 leasequery 使服务器能够在绑定状态更改时提供客户端信息的实时更新。您可以选择性地配置活动 leasequery 以将绑定信息的实时更新发送到多个中继代理对等方,从而支持中继代理机箱级别的冗余。当中继代理启动与服务器或中继代理对等方的 TCP 连接并发送 ACTIVELEASEQUERY 消息以指示连接必须保持打开状态时,将启动实时更新。
DHCP 不会关闭 TCP 连接,除非出现某些情况(主要与可配置超时或空闲超时期限有关):
在未为活动 leasequery 配置的逻辑系统或路由实例中接收到连接请求时。
如果连接在 TCP 读/写操作期间被阻止的时间足够长,以达到超时期限,则连接将关闭,并且可以重新启动。读取操作是指中继代理尝试读取对查询的回复。写入操作是指服务器或对等方中继代理尝试向中继代理发送回复
在空闲超时期间,当连接上未收到任何流量时。
在活动 leasequery 操作期间,绑定信息仅在更改时才会更新。因此,在某些情况下,服务器或对等方中继代理不发送任何信息。如果该时间段长于空闲超时,则会断开连接。为避免不适当的连接丢弃,服务器或对等方中继代理会以相当于空闲超时时间一半的间隔发送 DHCPLEASEACTIVE (DHCPv4) 或 LEASEQUERY-DATA (DHCPv6) 消息。这些消息不包含任何绑定信息,因为它们在没有可用更新时发送。这些消息通过充当 hello 或 keepalive 消息来保持连接活跃,表明缺少活动不是问题。
当 TCP 连接关闭时,中继代理会尝试重新建立连接。重试尝试包括一个选项,该选项指示服务器或对等方中继代理发送自 TCP 连接关闭以来更改的绑定信息。此信息有时称为追赶信息。该选项指定连接关闭时的绝对时间戳;也就是上次与服务器或对等方中继代理成功通信的时间。DHCPv4 使用查询启动时选项(选项 154)。DHCPv6 使用LQ_START_TIME选项(选项 101)。
在某些情况下,服务器或对等方中继代理不具有自时间戳以来绑定更改的所有信息。例如,设备可能没有足够的内存来存储所有内存。在这些情况下,设备将返回 DHCPLEASEQUERYSTATUS (DHCPv4) 或 LEASEQUERY-REPLY (DHCPv6) 消息,状态代码为 DataMissing (5)。
在配置 Active LeaseQuery 之前,必须先配置批量 leaseQuery,因为 Active LeaseQuery 使用批量 leaseQuery 机制。如果未配置批量 leasequery,则活动 leasequery 配置将无法通过提交检查。
要配置活动租用查询操作,请在 DHCP 中继代理和 DHCP 服务器上启用支持。您可以为中继代理和本地服务器配置通信的详细信息。与单个和批量 leasequery 不同,active leasequery 没有查询类型。不要使用 request
命令触发活动 leasequery。相反,在配置了活动 leasequery 时,触发器是自动的。
DHCPv4 活动租约查询
对于 DHCPv4 活动租约查询,DHCPv4 中继代理会通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送 DHCPACTIVELEASEQUERY 消息。该消息表明这是长期连接。它仅因超时而关闭。
DHCPv4 本地服务器使用用于单个 leasequery 的相同 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息回复中继代理,如 DHCPv4 单个 leasequery 消息类型中所述。每条消息对应于查询标识的单个绑定。每当绑定信息发生更改时,DHCP 本地服务器都会继续发送响应消息。 表 8 描述了特定于 DHCPv4 活动 leasequery 的消息类型。
消息类型 |
Option 53 类型值 |
描述 |
---|---|---|
DHCPACTIVELEASEQUERY |
16 |
由中继代理发送到 DHCP 本地服务器,以便在本地服务器上发生信息更改时,启用中继代理上的绑定信息的实时更新。 也可以在对等方中继代理之间发送,为绑定信息提供热备用冗余。 |
DHCPLEASEQUERYSTATUS |
17 |
当本地服务器返回与请求关联的绑定信息时,本地服务器的响应。 由于 TCP 连接是长期存在的,因此在连接空闲时也会定期发送此消息(不会发送绑定更新)。在这种情况下,该消息包括 ConnectionActive 状态代码 (6),用于通知中继代理连接仍处于运行状态。 |
本地服务器发送的消息可以返回状态代码选项(选项 151)。在 DHCPLEASEACTIVE 和 DHCPLEASEUNASSIGNED 消息中,代码对应于单个响应的状态。在 DHCPLEASEQUERYSTATUS 消息中,代码对应于整个活动 leasequery 请求的消息流。DHCPv4 活动 leasequery 支持 DHCPv4 批量 leasequery 状态代码中列出的批量 leasequery 状态代码。这些消息还可以包括为表 9 中描述的活动租赁查询添加的状态代码。
法典 |
地位 |
描述 |
---|---|---|
5 |
数据缺失 |
请求的绑定信息不可用。例如,当本地服务器或对等方没有通过 query-start-time 选项请求的足够数据时,此状态代码将立即在 LEASEQUERY-REPLY 消息中发送。 |
6 |
连接活动 |
TCP 连接仍处于活动状态。 |
7 |
追赶完成 |
本地服务器已发送中继代理请求的所有已保存数据。 |
DHCPv6 活动租约查询
对于 DHCPv6 活动租约查询,DHCPv6 中继代理会通过端口 67 打开到 DHCPv4 本地服务器的 TCP 连接。建立连接后,中继代理会向服务器发送 ACTIVELEASEQUERY 消息。该消息表明这是长期连接。它仅因超时而关闭。
DHCPv6 本地服务器使用用于批量 leasequery 的相同 LEASEQUERY-REPLY、LEASEQUERY-DATA 和 LEASEQUERY-DONE 消息回复中继代理。每条消息对应于查询标识的单个绑定。每当绑定信息发生更改时,DHCP 本地服务器都会继续发送响应消息。表 10 列出了这些消息以及特定于 DHCPv6 活动租约查询的查询消息类型。
消息类型 |
DHCPv6 类型值 |
描述 |
---|---|---|
ACTIVELEASEQUERY |
22 |
由中继代理发送到 DHCP 本地服务器,以便在本地服务器上发生信息更改时,启用中继代理上的绑定信息的实时更新。 也可以在对等方中继代理之间发送,为绑定信息提供热备用冗余。 |
LEASEQUERY-REPLY |
15 |
来自本地服务器的响应,用于指示查询的成功或失败。它还传达在单个查询和回复的上下文中不会更改的信息,如服务器 ID 和客户端 ID。 查询成功后,仅返回单个 LEASEQUERY-REPLY。此消息还包括第一个客户端的绑定信息。其他绑定数据将在 LEASEQUERY-DATA 消息中返回。 当查询失败时,将返回一个不包含绑定信息的 LEASEQUERY-REPLY。 |
LEASERYQUE-DONE |
16 |
来自本地服务器的响应,指示应终止连接。 例如,当服务器关闭时,服务器可以使用 QueryTerminated 状态代码 (11) 发送此消息。 |
LEASEQUERY-DATA |
17 |
来自本地服务器的响应,其中包含有关单个 DHCPv6 客户端的租约或单个链路上的前缀委派绑定的信息。 仅当 leasequery 返回多个客户端的数据时,才会发送此消息。在这种情况下,LEASEQUERY-REPLY 消息传达第一个客户端的信息,然后为其他每个客户端发送 LEASEQUERY-DATA 消息。 |
DHCPv6 本地服务器发送的消息可以返回状态代码选项(选项 13)。DHCPv6 活动 leasequery 分别支持 DHCPv6 单个 Leasequery 状态代码 和 DHCPv6 Bulk Leasequery 状态代码中列出的单个 leasequery 和批量 leasequery 状态代码。这些消息还可以包括为 表 11 中描述的活动租赁查询添加的状态代码。
法典 |
地位 |
描述 |
---|---|---|
12 |
数据缺失 |
请求的绑定信息不可用。 |
13 |
追赶完成 |
本地服务器已发送中继代理请求的所有已保存数据。 |
14 |
不支持 |
本地服务器已发送中继代理请求的所有已保存数据。 |
通过主动租赁查询实现机箱级冗余
您可以使用活动 leasequery 在多个 DHCP 中继代理对等方之间启用同步绑定信息。为简单起见,此讨论仅解释了两个对等方的行为。当一个对等方中继代理重新启动或其设备重新启动时,另一个中继可以接管并向所有 DHCP 客户端提供服务,而不会出现明显的中断。当对等方中继代理再次启动时,它将与活动对等方重新建立 TCP 连接。然后,对等方同步绑定信息。 图 1 显示了一个简单的 DHCP 拓扑,以支持具有以下特征的中继代理冗余:
每个 DHCP 客户端都连接到两个中继代理。
两个中继代理都连接到同一个 DHCP 服务器。
在每个中继代理上配置
active leasequery
语句时,还要将另一个中继代理指定为对等方。对等方使用相同的活动租赁查询消息进行通信,如 表 8 和 表 10 中所述。尽管此处未显示,但当外部 RADIUS 服务器是拓扑的一部分时,与 RADIUS 服务器的交互没有差异。

以下顺序介绍在两个代理上配置活动 leasequery 时,中继代理如何建立对等关系并共享绑定信息。此示例适用于 DHCPv4,但机制与 DHCPv6 相同。
两个中继代理都有活动 DHCP 客户端绑定,但尚未配置活动 leasequery。
在两个中继代理上配置活动 leasequery,将彼此指定为对等方,然后提交配置。
提交配置时,两个对等代理都会尝试建立 TCP 连接。假设中继代理 Relay agent 1 成功建立连接。来自对等方中继代理 2 的尝试被丢弃。
然后,中继代理 1 向中继代理 2 发送 ACTIVELEASEQUERY 消息。
中继代理 2 将其订阅者数据库中的绑定信息发送至中继代理 1。它还会向中继代理 1 发送自己的 ACTIVELEASEQUERY 消息,以收集对等方的客户端信息。
中继代理 1 将其绑定信息发送至中继代理 2。中继代理 1 和中继代理 2 各自处理接收到的绑定信息,并将其提交到各自的数据库中。
当每个中继代理更新其自身客户端的绑定信息(如许可证续订、新请求、租约到期等)时,它会在每次更改发生时向对等方发送带有更新信息的 leasequery 响应消息。
现在,假设中继代理 1 已重新启动。TCP 连接断开。中继代理 2 尝试重新建立与中继代理 1 的连接。与此同时,过去流经中继代理 1 的 DHCP 订阅者流量现在不间断地流经中继代理 2。
活动 leasequery 在中继代理 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 客户端是透明的。
拓扑发现是一个主动的租期查询选项。活动 leasequery 使对等方能够同步与添加到转换表中的接口对应的订阅者冗余组中订阅者的绑定信息。DHCP 转换绑定信息,以使用备份上的本地接口,而不是主上的接口。
配置拓扑发现时,整个 DHCP 租期查询过程由四个连接阶段组成,如 图 2 所示。

TCP 连接阶段 — 在对等中继代理之间建立 TCP 连接。
拓扑发现阶段 — 对等方交换拓扑发现消息,以确定对等方上每个订阅者冗余组的匹配接入接口。远程对等方根据 VLAN ID 和子网匹配接口。每个对等方发送对其所有接入接口的查询并接收响应,以便所有对等方都可以为订阅者冗余组构建已连接的本地和远程接口对的转换表。
批量租赁查询阶段 - 对等方建立活动租赁查询运行所需的批量租赁查询关系。批量租约查询使中继代理能够从配置的 DHCP 服务器批量检索多个订阅者的租约信息,而不是通过一系列单独的查询和响应来检索。在此阶段,DHCP 将首次批量收集所有绑定信息。
活动 leasequery 阶段 - 活动 leasequery 确保绑定信息在更改时同步,无需后续查询。主中继代理相对于其本地代理电路 ID(接入接口的名称)发送绑定。备份中继代理使用其转换表获取备份上的相应代理电路 ID,以安装订阅者。
要将同步的信息限制为仅使用特定访问接口(即订阅者冗余组)的订阅者,活动 leasequery 在配置拓扑发现时,使用 giaddr 查询 (DHCPv4) 或 linkaddr (DHCPv6) 方法。网关 IP 地址(giaddr 或 linkaddr)是中继代理用来确定向下游发送信息的位置的地址。giaddr 的值是接入接口。中继代理评估 giaddr/linkaddr,并将信息发送到使用与 giaddr/linkaddr 匹配的接入接口的 DHCP 客户端。
这对订阅者冗余的意义在于,通过使用 giaddr/linkaddr 查询,活动 leasequery 仅请求该访问接口上的订阅者的信息。因此,它只会将该订阅者信息从主中继代理同步到备份中继代理。与活动 leasequery 使用 relay-id 查询方法时相比,这是一组小得多的订阅者,后者返回整个机箱上所有订阅者的信息。
此过程的结果是,每个对等代理为其处理的每个冗余组安装订阅者。当主中继代理进行故障转移时,备份已具有必要的订阅者信息,以便不间断地维护受影响的用户会话。
批量 leasequery 和活动 leasequery 连接阶段通过 TCP 连接运行。相反,在拓扑发现阶段,DHCP 通过 TCP 发送查询消息,但通过 UDP 发送拓扑发现响应消息。TCP 路径可以是任何东西,但 UDP 路径必须通过接入接口;这就是对等方确认其接入接口已连接的方式。
拓扑发现消息
拓扑发现使用标准的单个 leasequery 消息。对于 DHCPv4,它们是 DHCPLEASEQUERY 和 DHCPLEASEACTIVE。对于 DHCPv6,它们是 LEASEQUERY 和 LEASEQUERY-REPLY。使这些消息具体为拓扑发现消息的不同之处在于,每条消息在供应商特定的选项中都包含一个专有子选项值(DHCPv4 为 option 43,DHCPv6 为 option 17)。专有值是一个字符串 topology_discover_lq。 表 12 列出了查询和回复消息中携带的信息。
VRRP M:N 冗余的拓扑发现使用 TCP 进行查询,使用 UDP 进行响应。伪线 M:N 冗余的拓扑发现使用 TCP 进行查询和响应。
查询 |
响应 |
---|---|
事务 ID (xid) — 此编号在每个机箱中是唯一的。DHCP 为订阅者冗余组使用的接入接口生成 XID。xid 在 DHCP 标头中携带。 |
事务 ID (xid) - 请求消息中接收的相同值。 |
客户端标识符(DHCPv4 option 61;DHCPv6 option 1) — 根据 LACP MAC 地址标识 DHCP 客户端的字符串。 |
客户端标识符(DHCPv4 option 61;DHCPv6 option 1) - 请求消息中接收的相同值。 |
不适用 |
服务器标识符(DHCPv4 option 54;DHCPv6 option 2) — 根据 LACP MAC 地址标识中继代理的字符串 |
代理电路 ID(DHCPv4 option 82;DHCPv6 option 18) — 进行查询的接入接口的接口名称。这用于转换本地和对等接口 ID。 |
代理电路 ID(DHCPv4 option 82;DHCPv6 option 18) — 对等方上匹配接入接口的接口名称。这用于转换本地和对等接口 ID。 |
供应商特定选项(DHCPv4,选项 43;DHCPv6 选项 17)— 此选项包含特定于供应商瞻博网络的以下信息:
|
供应商特定选项(DHCPv4,选项 43;DHCPv6 option 17)—此选项包含以下信息:
对于使用 VRRP 的 M:N 冗余,匹配基于请求中收到的查询接口的名称和子网地址、VLAN ID 和事务 ID。 对于使用伪线的 M:N 冗余,匹配基于查询接口的共享公共密钥和请求中收到的交易 ID。 |
当发生以下任一情况时,对等方中继代理会交换拓扑发现消息:
配置新的对等中继代理。
路由器恢复接入接口连接,以便链路正常运行。
路由器将启动。
jdhcpd 进程将重新启动。
配置活动 leasequery。
拓扑会发生变化。当拓扑发现查询到达之前发现的链路上时,中继代理将检测到此更改。
有关拓扑如何与 M:N 用户冗余配合使用的详细说明,请参阅 M:N 用户冗余概述。
配置对单个、批量和活动 LeaseQuery 操作的支持的准则
配置单个、批量或活动 leasequery 支持时,请遵循以下准则:
路由器支持同时配置单个 leasequery、批量 leasequery 和活动 leasequery。活动 leasequery 需要配置批量 leasequery。
该路由器支持 DHCPv4 和 DHCPv6 同时进行双堆栈配置。但是,对于双堆栈环境,您必须分别触发 DHCPv4 和 DHCPv6 单个 leasequery 或批量 leasequery 操作。
DHCP 中继代理支持通过静态和动态接口进行单独 leasequery 或批量 leasequery。活动租赁查询仅在面向服务器的静态接口或面向对等方的静态接口上受支持,以实现机箱冗余。
DHCP 本地服务器仅支持在面向中继的静态接口上进行批量租用查询。
DHCP 本地服务器在端口 67(对于 DHCPv4)和端口 547(对于 DHCPv6)上的 TCP 连接上侦听来自 DHCP 中继代理的批量 leasequery 和活动 leasequery 请求。
基于 PPP/PPPoE 的 DHCP 不支持批量 leasequery 和活动 leasequery。
以下堆栈组合支持活动租赁查询:
基于静态接口的 DHCP (ge/ae/xe/irb/ps)(支持在 Junos OS 20.1R1 版中添加的 ps 接口。
DHCP over IP 多路分离接口
基于 VLAN 的 DHCP 多路分离接口
DHCP over IP over VLAN 多路分离接口
从 Junos OS 19.1R1 版开始,DHCPv4 中继代理会在转发至 DHCP 本地服务器的每个数据包中插入中继 ID 选项,如下所示:
中继代理始终将选项插入非侦听数据包中。
仅当在该 LS:RI 中配置了批量 leasequery 时,中继代理才会在窥探的数据包中插入该选项。
如果网络包含集成路由和桥接 (IRB) 接口,则必须将 DHCP 中继代理配置为在 option 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。使用 leaseQuery 或批量 leasequery 还原租约数据库时,DHCP 中继代理使用第 2 层接口名称。
配置和使用 DHCP 单个租期查询
单个 leasequery 操作使用与单个指定订阅者相关的信息更新 DHCP 中继代理的 lease 数据库。您可以通过 DHCP 客户端的 IPv4 地址、MAC 地址或客户端 ID 识别 DHCPv4 订阅者。您可以通过 DHCP 客户端的 IPv6 地址或客户端 ID 标识 DHCPv6 订阅者。
开始之前,请阅读配置 对单个、批量和活动租用查询操作的支持的准则 ,并确保在 DHCP 中继代理上配置以下所需支持。
(仅限 DHCPv4)DHCP 中继代理会在中继转发至 DHCP 服务器的 DHCP 数据包中插入 option 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含语
include-irb-and-l2
句,如以下示例所示。此语句将 DHCP 中继代理配置为在 option 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。DHCP 中继代理在使用 leasequery 或批量 leasequery 还原租约数据库时,使用第 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 中继代理配置为在 option 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。使用 leaseQuery 或批量 leasequery 还原租约数据库时,DHCP 中继代理使用第 2 层接口名称。[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id include-irb-and-l2
使用以下步骤配置和使用单个 leasequery 操作。
使用受支持 show
的和 clear
命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租用查询操作的信息。请参阅 验证和管理 DHCP 单个和批量 leasequery 配置。
配置和使用 DHCP 批量租用查询
批量 leasequery 操作使用多个订阅者的信息更新 DHCP 中继代理的 lease 数据库,而单个 leasequery 仅查询已知目标的单个绑定。批量 leasequery 还通过提供额外的查询选项和功能来扩展单个 leasequery。
开始之前,请阅读配置 对单个、批量和活动租用查询操作的支持的准则 ,并确保在 DHCP 中继代理上配置以下所需支持。
(仅限 DHCPv4)DHCP 中继代理会在中继转发至 DHCP 服务器的 DHCP 数据包中插入 option 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含语
include-irb-and-l2
句,如以下示例所示。此语句将 DHCPv6 中继代理配置为在 option 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)。
[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id
如果您的网络包含集成路由和桥接 (IRB) 接口,则还必须包含语
include-irb-and-l2
句,如以下示例所示。此语句将 DHCPv6 中继代理配置为在 option 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。使用 leaseQuery 或批量 leasequery 还原租约数据库时,DHCP 中继代理使用第 2 层接口名称。[edit forwarding-options dhcp-relay dhcpv6] user@host# set relay-agent-interface-id include-irb-and-l2
使用以下步骤配置和使用批量 leasequery 操作。
使用受支持 show
的和 clear
命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租用查询操作的信息。请参阅 验证和管理 DHCP 单个和批量 leasequery 配置。
配置和使用 DHCP 活动租期查询
开始之前,请阅读配置 对单个、批量和活动租用查询操作的支持的准则 ,并确保在 DHCP 中继代理上配置以下所需支持。
(仅限 DHCPv4)DHCP 中继代理会在中继转发至 DHCP 服务器的 DHCP 数据包中插入 option 82 子选项 1(代理电路 ID)。请参阅 使用 DHCP 中继代理 Option 82 信息。
如果网络包含集成路由和桥接 (IRB) 接口,则还必须包含语
include-irb-and-l2
句,如以下示例所示。此语句将 DHCPv6 中继代理配置为在 option 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 中继代理配置为在 option 82 的电路 ID 中包含第 2 层接口名称和 IRB 名称。使用 leaseQuery 或批量 leasequery 还原租约数据库时,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 中继代理主/备份冗余,冗余对等方上的接口名称不必相同。主中继代理和备用中继代理使用拓扑发现来构建转换表,用于映射用户冗余组的本地和远程(对等)接口。
注意:在所有可用逻辑接口上配置拓扑发现时,如果冗余对等方上的接口名称和订阅者配置匹配,则支持机箱级冗余。
由于 active leasequery 是批量 leasequery 的扩展,因此必须配置批量 leasequery 才能使活动 leasequery 运行。请参阅 配置和使用 DHCP Bulk LeaseQuery。
当本地服务器上的 DHCP 绑定信息发生更改时,活动 leasequery 操作会将实时更新发送到多个订阅者的 DHCP 中继代理。您还可以在配置过程中使用 active leasequery,以便在对等方中继代理之间提供绑定信息冗余。
使用以下步骤配置和使用活动 leasequery 操作。
这些步骤不会重复任何批量 leasequery 配置。例如,这些步骤不包括配置最大 TCP 连接数,因为这是必需的批量 leasequery 配置的一部分。
使用受支持 show
的和 clear
命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的批量租用查询操作的信息。请参阅 验证和管理 DHCP 单个和批量 leasequery 配置。
用于主动-主动模式的 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 使用 Active-lease-query/Bulk-lease-query 进行 EVPN-VXLAN DHCPv6 状态同步。
[ 请参阅 EVPN-VXLAN 中 IRB 接口上支持的协议、DHCP leasequery 方法、active-leasequery(DHCP 中继代理)和 bulk-leasequery(DHCP 中继代理)。
配置示例:
以下示例显示具有 stale-timer 设置的 Active-Active 配置。需要过时计时器配置才能支持主动-主动租约查询。此配置优化了两个对等方同时获取请求数据包时的同步时间。
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 中继代理租约数据库
您必须发出请求命令以触发 DHCP 中继代理以启动单个 leasequery 或批量 leasequery 操作,该操作从 DHCP 本地服务器请求当前租约信息。每个单独的 leasequery 都会使用单个客户端的信息更新 DHCP 中继代理的 lease 数据库。每个批量 leasequery 都会为多个客户端更新中继代理的 lease 数据库。表 13 列出了可用于 DHCPv4、DHCPv6、单个 leasequery 和批量 leasequery 的各种查询选项。
查询选项 |
DHCPv4 个人租赁查询 |
DHCPv4 批量租用查询 |
DHCPv6 个人租赁查询 |
DHCPv6 批量租用查询 |
---|---|---|---|---|
代理远程 ID |
– |
✓ |
– |
✓ |
客户端 ID |
✓ |
✓ |
– |
– |
客户端 ID (DUID) |
– |
– |
✓ |
✓ |
网关地址 |
✓ 命令的 |
– |
– |
– |
IPv4 地址 |
✓ |
✓ |
– |
– |
IPv6 前缀 |
– |
– |
✓ |
✓ |
链路地址 |
– |
– |
– |
✓ |
MAC 地址 |
✓ |
✓ |
– |
– |
中继代理 ID |
– |
✓ |
– |
✓ |
使用 bulk-leasequery
语句和 trigger automatic
选项在中继代理上配置 DHCPv6 批量 leasequery 后,不要使用 request
命令启动查询。相反,只要中继代理上的 jdhcpd 进程启动(例如,在 jdhcpd 重新启动、中继代理设备重新启动、 平滑路由引擎切换或统一 ISSU 之后),且会话数据库中没有绑定的订阅者,就会自动触发查询。自动批量租用查询始终基于中继代理 Relay-ID 选项 (option 53)。
配置自动触发支持后,您仍然可以使用 request
命令手动触发与自动查询分开的批量租用查询。
活动 leasequery 不需要 request
命令即可启动。相反,它会在您配置时自动启动。Active leasequery 确实要求您配置批量 leasequery。
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
默认情况下,如果未显式指定以下任何选项,则批量 leasequery 操作将使用 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
默认情况下,如果未显式指定以下任何选项,则批量 leasequery 操作将使用 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 单个 leasequery,并且仅显示部分可能性。有关更多信息,请参阅各个命令主题: 请求 DHCP 中继 leasequery、 请求 dhcpv6 中继 leasequery、 请求 dhcp 中继 bulk-leasequery 和 请求 dhcpv6 中继 bulk-leasequery。
指定本地服务器的地址。
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 单个 leasequery 和批量 leasequery 操作的信息。使用 supported show
和 clear
命令管理和显示有关 DHCP 中继代理和 DHCP 本地服务器的 leasequery 和批量 leasequery 操作的信息。
有关 Active Leasequery ,请参阅 验证和管理 DHCP Active Leasequery 操作。
行动
使用受支持 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 本地服务器的活动 leasequery 操作的信息。
有关 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
要显示有关活动 leasequery 邻居的信息,请执行以下操作:
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 : 2
user@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
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。