使用 DHCP Option 82 信息
使用 DHCP 中继代理 Option 82 信息
通过订阅者管理,您可以将 DHCP 中继代理配置为在中继代理从客户端接收并转发到 DHCP 服务器的 DHCP 数据包中包含其他 option 82 信息。DHCP 服务器使用附加信息来确定要分配给客户端的 IP 地址。服务器还可能将这些信息用于其他目的,例如,确定向客户端授予哪些服务,或提供额外的安全性,以防止地址欺骗等威胁。DHCP 服务器将其回复发送回 DHCP 中继代理,该代理从消息中删除 option 82 信息,并将数据包转发给客户端。
要配置对 DHCP 中继代理信息 option 82 的支持,请使用语 relay-option-82
句。您可以将 DHCP 中继代理配置为在中继代理发送给 DHCP 服务器的数据包中包含以下子选项:
代理电路 ID(子选项 1)— 一个 ASCII 字符串,用于标识接收客户端 DHCP 数据包的接口。
注意:如果
relay-option-82
已配置,但未显式配置任何属性relay-option-82
(即circuit-id
|remote-id
| ),server-id-override
则默认行为是始终将电路 ID(即子选项 1)包含在 option-82 值中。无论vendor-specific
是否配置下的relay-option-82
属性,都是如此。代理远程 ID(子选项 2)— 由 DHCP 中继代理分配的 ASCII 字符串,用于安全识别客户端。
您可以全局配置 option 82 支持,也可以为一组指定的接口配置 option 82 支持。
要恢复默认行为,即不将 option 82 信息插入 DHCP 数据包中,请使用语 delete relay-option-82
句。
DHCPv6 中继代理为 DHCPv6 客户端提供类似的代理电路 ID 和代理远程 ID 支持。对于 DHCPv6,订阅者管理使用 DHCPv6 选项 18 将电路 ID 包含在中继代理发送到 DHCPv6 服务器的数据包中,并使用选项 37 将远程 ID 包含在数据包中。 请参阅 DHCPv6 中继代理选项。
以下章节介绍了您可以配置的 option 82 操作:
配置 Option 82 信息
您可以使用 relay-option-82
语句配置 DHCP 中继代理,以便在中继代理从客户端接收并转发到 DHCP 服务器的 DHCP 数据包中插入 option 82 信息。配置 option 82 时,可以包含其中一个子选项语句,以指定要包含在 DHCP 数据包中的信息类型。如果在配置 option 82 时未包含任何一个子选项语句,则默认情况下将包含代理电路 ID 选项。 circuit-id
使用语句在数据包中包含代理电路 ID(子选项 1),或使用 remote-id
语句包含代理远程 ID(子选项 2)。
您可以选择性地将 DHCP 中继代理配置为将前缀或接口描述作为子选项信息的一部分。如果指定circuit-id
或remote-id
语句而不包含任何可选prefix
的 、use-interface-description
、use-vlan-id
include-irb-and-l2
、no-vlan-interface-name
或语句,则快速以太网 (fe)、千兆以太网 (ge) 以及集成路由和桥接 (IRB) 接口的代理电路 ID 或代理远程 ID 信息的格式如下,具体取决于您的网络配置:
对于不使用 VLAN、堆叠 VLAN (S-VLAN) 或桥接域的快速以太网或千兆以太网接口:
(fe | ge)-fpc/pic/port.subunit
注意:对于远程系统,是 subunit 必需的,用于区分接口。
对于使用 VLAN 的快速以太网或千兆以太网接口:
(fe | ge)-fpc/pic/port:vlan-id
对于使用 S-VLAN 的快速以太网或千兆以太网接口:
(fe | ge)-fpc/pic/port:svlan-id-vlan-id
集成路由和桥接 (IRB) 可同时支持在相同接口上进行第 2 层桥接和第 3 层 IP 路由。您可以通过 IRB 将本地数据包路由到另一个路由接口或另一个配置了第 3 层协议的桥接域。
接口到桥接域的关系可以是隐式(系统根据 VLAN 标记将接口映射到桥接域),也可以是显式(通过在桥接域定义中配置接口,接口映射到桥接域)。对于显式情况,标记可能与映射无关。
对于 IRB 接口,格式会显示第 2 层接口(而非 IRB 接口)以及网桥域名。对于 IRB 接口(或其他伪设备),默认格式如下:
使用桥接域但不使用 VLAN 或 S-VLAN 的 IRB 接口:
(fe | ge)-fpc/pic/port.subunit:bridge-domain-name
使用 VLAN 的 IRB 接口:
(fe | ge)-fpc/pic/port.subunit:vlan-name
要将 IRB 接口名称与第 2 层接口名称一起包含,请配置 include-irb-and-l2
语句。格式如下:
使用桥接域但不使用 VLAN 或 S-VLAN 的 IRB 接口:
(fe | ge)-fpc/pic/port:bridge-domain-name+irb.subunit
使用 VLAN 的 IRB 接口:
(fe | ge)-fpc/pic/port:vlan-name+irb.subunit
要仅包含 IRB 接口名称,而不包含第 2 层接口和网桥域或 VLAN,请配置 no-vlan-interface-name
语句。格式如下:
irb.subunit
要启用插入 option 82 信息:
覆盖 Option 82 信息
您可以配置 DHCP 中继代理,以便在 DHCP 数据包中添加或移除 DHCP 中继代理信息选项(选项 82)。
此功能会导致 DHCP 中继代理执行下列操作之一,具体取决于配置:
如果 DHCP 中继代理配置为将 option 82 信息添加到 DHCP 数据包,它将从 DHCP 数据包中清除现有的 option 82 值并插入新值,然后再将数据包转发至 DHCP 服务器。
如果 DHCP 中继代理未配置为向 DHCP 数据包添加 option 82 信息,它将从数据包中清除现有的 option 82 值,但在将数据包转发至 DHCP 服务器之前不会添加任何新值。
要覆盖发往 DHCP 服务器的 DHCP 数据包中的默认 option 82 信息:
在 DHCP 选项中包含前缀
将 DHCP 中继代理配置为在中继代理发送到 DHCP 服务器的数据包中包含 DHCP 选项时,可以指定中继代理为 DHCP 选项添加前缀。您可以为以下 DHCP 选项添加前缀:
DHCPv4 option 82 代理电路 ID(子选项 1)
DHCPv4 Option 82 代理远程 ID(子选项 2)
DHCPv6 选项 18 中继代理接口 ID
DHCPv6 Option 37 中继代理远程 ID
前缀与 DHCP 选项信息之间用冒号 (:) 分隔,它可以包括 、 logical-system-name
和 routing-instance-name
选项的host-name
任意组合。DHCP 中继代理获取、host-name
logical-system-name
和routing-instance-name
的值,如下所示:
如果包含该
host-name
选项,则 DHCP 中继代理将使用在[edit system]
层次结构级别上通过语host-name
句配置的设备的主机名。如果包含该
logical-system-name
选项,则 DHCP 中继代理将在层次结构级别上使用通过语logical-system
句[edit logical-system]
配置的逻辑系统名称。如果包含该
routing-instance-name
选项,则 DHCP 中继代理将在[edit routing-instances]
层次结构级别或[edit logical-system logical-system-name routing-instances]
层次结构级别使用通过routing-instance
语句配置的路由实例名称。
如果在前缀中包含主机名和/或逻辑系统名称中的一个或两个,则主机名后跟正斜杠 (/)。如果在前缀中同时包含逻辑系统名称和路由实例名称,则这些值之间用分号 (;) 分隔。
以下示例显示了为带 S-VLAN 的快速以太网 (fe) 或千兆以太网 (ge) 接口指定 prefix
语句时 DHCP 选项信息的几种可能格式。
如果在具有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含主机名:
hostname:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
如果在具有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含逻辑系统名称:
logical-system-name:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
如果在具有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含路由实例名称:
routing-instance-name:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
如果在带 S-VLAN 的快速以太网或千兆以太网接口的前缀中同时包含主机名和逻辑系统名称:
host-name/logical-system-name:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
如果在带 S-VLAN 的快速以太网或千兆以太网接口的前缀中同时包含逻辑系统名称和路由实例名称:
logical-system-name;routing-instance-name:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
如果在带 S-VLAN 的快速以太网或千兆以太网接口的前缀中包含主机名、逻辑系统名称和路由实例名称:
host-name/logical-system-name;routing-instance-name:(fe | ge)-fpc/pic/port:svlan-id-vlan-id
对于使用 VLAN 但不使用 S-VLAN 的快速以太网或千兆以太网接口,只有 vlan-id
该值以 DHCP 选项格式显示。
(DHCPv4)要使用 option 82 信息配置前缀:
(DHCPv6)要将前缀与 DHCPv6 选项 18 或 option 37 信息一起使用:
指定要配置 DHCPv6 中继代理支持。
[edit forwarding-options dhcp-relay] user@host# edit dhcpv6
配置 DHCPv6 中继代理以插入选项 18(中继代理接口 ID)和/或选项 37(中继代理远程 ID)。
要配置选项 18:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit relay-agent-interface-id
要配置 option 37:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit relay-agent-remote-id
指定前缀包含在选项信息中。在此示例中,前缀包括主机名和逻辑系统名称
要在选项 18 中包含前缀:
[edit forwarding-options dhcp-relay dhcpv6 relay-agent-interface-id] user@host# set prefix host-name logical-system-name
要在 option 37 中包含前缀:
[edit forwarding-options dhcp-relay dhcpv6 relay-agent-remote-id] user@host# set prefix host-name logical-system-name
在 DHCP 选项中包括文本描述
默认情况下,当 DHCP 中继代理在发送至 DHCP 服务器的数据包中插入选项信息时,选项将包含接口标识符。但是,您可以将 DHCP 中继代理配置为包含为接口配置的文本描述,而非接口标识符。您可以对逻辑接口或设备接口使用文本描述。
您可以在以下 DHCP 选项中包含文本接口描述:
DHCPv4 option 82 代理电路 ID(子选项 1)
DHCPv4 Option 82 代理远程 ID(子选项 2)
DHCPv6 选项 18 中继代理接口 ID
DHCPv6 Option 37 中继代理远程 ID
文本说明是单独配置的,使用 description
层次 [edit interfaces interface-name]
结构级别的语句。如果指定使用文本描述,而未为接口配置任何描述,则 DHCP 中继将默认为使用第 2 层接口名称。
对于集成路由和桥接 (IRB) 接口,将使用第 2 层接口的文本描述,而不是 IRB 接口的文本描述。如果未配置描述,则使用第 2 层逻辑接口名称。
对于 IRB 接口,option 82 字段必须能够根据代理电路 ID 或代理远程 ID 唯一标识传入接口。您可以修改文本接口描述中的信息,使其与原始 IFD(没有子单元的物理接口)名称匹配,并将 option 82 字段配置为使用接口描述。
您可以将文本描述与以下 DHCP 选项一起使用:
DHCPv4 Option 82 代理电路 ID(子选项 1)
DHCPv4 Option 82 代理远程 ID(子选项 2)
DHCPv6 中继代理接口 ID(选项 18)
DHCPv6 中继代理远程 ID(选项 37)
(DHCPv4)要将 DHCP 中继 option 82 子选项配置为包含文本接口说明:
(DHCPv6)要将 DHCPv6 选项 18 或 option 37 配置为包含文本接口描述:
指定要配置 DHCPv6 中继代理支持。
[edit forwarding-options dhcp-relay] user@host# edit dhcpv6
配置 DHCPv6 中继代理以插入选项 18(中继代理接口 ID)和/或选项 37(中继代理远程 ID)。
要配置选项 18:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit relay-agent-interface-id
要配置 option 37:
[edit forwarding-options dhcp-relay dhcpv6] user@host# edit relay-agent-remote-id
指定文本说明包含在选项信息中。在以下示例中,选项信息包括用于设备接口的说明。
在选项 18 中包括文本说明:
[edit forwarding-options dhcp-relay dhcpv6 relay-agent-interface-id] user@host# set use-interface-description device
在选项 37 中包括文本说明:
[edit forwarding-options dhcp-relay dhcpv6 relay-agent-remote-id] user@host# set use-interface-description device
另见
启用对不受信任数据包的处理,以便使用 Option 82 信息
默认情况下,DHCP 中继代理会将 giaddr 为 0(零)且带有 option 82 信息的客户端数据包视为数据包来自不受信任的源,并丢弃这些数据包而不进行进一步处理。您可以覆盖此行为,并指定 DHCP 中继代理处理 giaddr 为 0(零)且包含 option 82 信息的 DHCP 客户端数据包。
要将 DHCP 中继代理配置为信任 option 82 信息:
提取 option 82 或 option 37 子字符串以创建接口集
从 Junos OS 17.2R1 版开始,您可以根据 DHCP 数据包中接收的代理远程 ID (ARI) 字符串的特定分隔子字符串创建接口集。在动态配置文件中指定预定义变量 $junos-pon-id-interface-set-name,以从 DHCPv4(选项 82,子选项 2)或 DHCPv6(选项 37)中提取子字符串。此子串由无源光纤网络 (PON) 中的光线路终端 (OLT) 插入,对于该 PON 是唯一的。提取的子字符串用作接口集的名称。
OLT 必须使用竖线符号 (|) 作为子字符串之间的分隔符来格式化 ARI 字符串。为接口集名称提取的子字符串由 ARI 字符串中最后一个分隔符后面的字符组成。确定子字符串的格式和内容,并配置 OLT 以插入信息。通常,子字符串可以包括 CPE 光网络终端 (ONT) 访问的 OLT 的名称和端口。
例如,ARI 格式可能如下所示:
circuit-id|plan-name|ONT-serial-number|OLT-info
以下示例 ARI 字符串遵循该格式:
ari-1001|100M|AAAA01234|ot101.xyz101-202 ari-9505|100M|AAAA01234|ot101.xyz101-202 ari-1238|100M|AAAA01234|ot101.xyz101-111
前两个 ARI 在最后一个分隔符 ot101.xyz101-202 之后共享相同的子字符串。第三个 ARI 有一个不同的最后一个子字符串 ot101.xyz101-111。预定义变量提取这两个子字符串。创建两个接口集,分别命名为 ot101.xyz101-202 和 ot101.xyz101-111。
ot101.xyz101-202 标识的两个客户电路被聚合到该接口集中。ot101.xyz101-111 标识的单个电路与另一个集合相关联。随后,接口集可用于将 CoS 和服务应用于其关联的用户电路。
开始之前:
将 OLT 配置为以所需格式提供代理远程 ID 字符串。
将 DHCPv4 或 DHCPv6 中继代理配置为插入从 OLT 接收的代理远程 ID,以便转发到 DHCP 本地服务器。
创建动态配置文件。
此过程仅显示指定预定义变量所需的配置。
您可以使用 show subscribers extensive 命令显示接口集名称和完整的 ARI 字符串。
show subscribers extensive(无源光纤网络电路接口集)
user@host> show subscribers client-type dhcp extensive Type: DHCP ... Interface Set: otl01.xyz101-202 ... Agent Remote ID: ABCD01234|100M|AAAA01234|otl01.xyz101-202 ...
另见
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。