Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DHCP 中继代理信息选项(选项 82)

通过 DHCP 中继代理信息选项(选项 82),您可以在 DHCP 中继转发给 DHCP 服务器的客户端发起的 DHCP 数据包中包含其他有用信息。您可以全局配置选项 82 支持,也可以为指定的接口组配置选项 82 支持。有关更多信息,请阅读本主题。

使用 DHCP 中继代理选项 82 信息

订阅者管理使您能够将 DHCP 中继代理配置为在中继代理从客户端接收并转发到 DHCP 服务器的 DHCP 数据包中包含其他选项 82 信息。DHCP 服务器使用附加信息来确定要分配给客户端的 IP 地址。服务器还可能将此信息用于其他目的,例如,确定向客户端授予哪些服务,或针对地址欺骗等威胁提供额外的安全性。DHCP 服务器将其回复发送回 DHCP 中继代理,代理从消息中删除 option 82 信息并将数据包转发给客户端。

要配置对 DHCP 中继代理信息选项 82 的支持,请使用该 relay-option-82 语句。您可以将 DHCP 中继代理配置为在中继代理发送到 DHCP 服务器的数据包中包含以下子选项:

  • 代理电路 ID(子选项 1)— 标识接收客户端 DHCP 数据包的接口的 ASCII 字符串。

    注意:

    如果配置了,但未显式配置 (即 circuit-id | remote-id server-id-override| ) 下relay-option-82的任何属性,则relay-option-82默认行为是电路 ID(即子选项 1)始终包含在 option 82 值中。无论是否vendor-specific配置了 下relay-option-82的属性,都是如此。

  • 代理远程 ID(子选项 2)— 由 DHCP 中继代理分配的 ASCII 字符串,用于安全标识客户端。

您可以全局配置选项 82 支持,也可以为指定的接口组配置选项 82 支持。

要恢复默认行为(其中选项 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 数据包中插入选项 82 信息。配置选项 82 时,可以包含一个子选项语句来指定要包含在 DHCP 数据包中的信息类型。如果配置选项 82 时未包含子选项语句之一,则默认情况下将包含“代理电路 ID”选项。使用该语句在 circuit-id 数据包中包含代理电路 ID(子选项 1),或使用 remote-id 语句包括代理远程 ID(子选项 2)。

您可以选择将 DHCP 中继代理配置为在子选项信息中包含前缀或接口描述。如果指定 or circuit-id remote-id 语句但不包含任何可选的 prefixuse-interface-descriptionuse-vlan-idinclude-irb-and-l2no-vlan-interface-name语句,则快速以太网 (fe)、千兆以太网 (ge) 以及集成路由和桥接 (irb) 接口的代理电路 ID 或代理远程 ID 信息的格式为以下格式之一,具体取决于您的网络配置:

  • 对于不使用 VLAN、堆叠 VLAN (S-VLAN) 或桥接域的快速以太网或千兆以太网接口:

    注意:

    对于远程系统,这是必需的 subunit ,用于区分接口。

  • 对于使用 VLAN 的快速以太网或千兆以太网接口:

  • 对于使用 S-VLAN 的快速以太网或千兆以太网接口:

注意:

集成路由和桥接 (IRB) 可同时支持在同一接口上进行第 2 层桥接和第 3 层 IP 路由。IRB 使您能够将本地数据包路由到另一个路由接口或配置了第 3 层协议的另一个桥接域。

接口到桥接域的关系可以是隐式的(系统基于 VLAN 标记将接口映射到网桥域)或显式(通过在网桥域定义中配置接口映射到桥接域)。对于显式情况,标记可能与映射无关。

对于 IRB 接口,格式将显示第 2 层接口,而不是 IRB 接口以及网桥域名。对于 IRB 接口(或其他伪设备),默认格式如下:

  • 使用桥接域但不使用 VLAN 或 S-VLAN 的 IRB 接口:

  • 使用 VLAN 的 IRB 接口:

要将 IRB 接口名称包含在第 2 层接口名称中,请配置语句 include-irb-and-l2 。格式如下:

  • 使用桥接域但不使用 VLAN 或 S-VLAN 的 IRB 接口:

  • 使用 VLAN 的 IRB 接口:

要仅包含 IRB 接口名称而不包含第 2 层接口和桥接域或 VLAN,请配置语句 no-vlan-interface-name 。格式如下:

要启用插入选项 82 信息:

  1. 指定要配置选项 82 支持。
  2. 将 DHCP 中继代理配置为插入“代理电路 ID”子选项和/或“代理远程 ID”子选项。
    • 要插入代理电路 ID,请执行以下操作:

    • 要插入代理远程 ID,请执行以下操作:

    • 要同时插入两者,请配置两个 set 命令。

  3. (可选)配置在 DHCP 数据包中的选项 82 信息中使用的前缀。
  4. (可选)将 DHCP 中继代理配置为在选项 82 信息中包含接口的文本描述,而不是接口标识符。

覆盖 Option 82 信息

您可以将 DHCP 中继代理配置为在 DHCP 数据包中添加或删除 DHCP 中继代理信息选项(选项 82)。

此功能会导致 DHCP 中继代理执行以下操作之一,具体取决于配置:

  • 如果 DHCP 中继代理配置为将选项 82 信息添加到 DHCP 数据包,则会清除 DHCP 数据包中的现有选项 82 值,并在将数据包转发到 DHCP 服务器之前插入新值。

  • 如果 DHCP 中继代理未配置为将选项 82 信息添加到 DHCP 数据包,则会清除数据包中的现有 option 82 值,但在将数据包转发到 DHCP 服务器之前不会添加任何新值。

要覆盖发往 DHCP 服务器的 DHCP 数据包中的默认选项 82 信息,请执行以下操作:

  1. 指定要配置覆盖选项。
  2. 指定覆盖 DHCP 数据包中的选项 82 信息。

在 DHCP 选项中包含前缀

将 DHCP 中继代理配置为在中继代理发送到 DHCP 服务器的数据包中包含 DHCP 选项时,可以指定中继代理向 DHCP 选项添加前缀。您可以为以下 DHCP 选项添加前缀:

  • DHCPv4 选件 82 代理电路 ID(子选件 1)

  • DHCPv4 选项 82 代理远程 ID(子选项 2)

  • DHCPv6 选项 18 中继代理接口 ID

  • DHCPv6 选项 37 中继代理远程 ID

前缀与 DHCP 选项信息用冒号 (:) 分隔,并且可以包含 、 logical-system-namerouting-instance-name选项的host-name任意组合。DHCP 中继代理host-name获取 、 logical-system-name的值,如下所示routing-instance-name

  • 如果包括该host-name选项,DHCP 中继代理将使用在层次结构级别使用该[edit system]语句配置的host-name设备的主机名。

  • 如果包括该logical-system-name选项,DHCP 中继代理将使用在层次结构级别使用该[edit logical-system]语句配置的logical-system逻辑系统名称。

  • 如果包括该routing-instance-name选项,DHCP 中继代理将使用在层次结构级别或[edit logical-system logical-system-name routing-instances]层次结构级别使用该[edit routing-instances]语句配置routing-instance的路由实例名称。

如果在前缀中包含主机名以及逻辑系统名称和路由实例名称中的一个或两个,则主机名后跟正斜杠 (/)。如果在前缀中同时包含逻辑系统名称和路由实例名称,则这些值用分号 (;) 分隔。

以下示例显示了当您为具有 S-VLAN 的快速以太网 (fe) 或千兆以太网 (ge) 接口指定 prefix 语句时 DHCP 选项信息的几种可能格式。

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含主机名:

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含逻辑系统名称:

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中仅包含路由实例名称:

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中同时包含主机名和逻辑系统名称:

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中同时包含逻辑系统名称和路由实例名称:

  • 如果在带有 S-VLAN 的快速以太网或千兆以太网接口的前缀中包含主机名、逻辑系统名称和路由实例名称:

对于使用 VLAN 但不使用 S-VLAN 的快速以太网或千兆以太网接口,只有值 vlan-id 以 DHCP 选项格式显示。

(DHCPv4)要使用选项 82 信息配置前缀:

  1. 指定要配置选项 82 支持。
  2. 配置 DHCP 中继代理以插入代理电路 ID 和/或代理远程 ID。
    • 要配置代理电路 ID,请执行以下操作:

    • 要配置代理远程 ID,请执行以下操作:

  3. 指定将前缀包含在选项 82 信息中。在此示例中,前缀包括主机名和逻辑系统名称。
    • 要将前缀与代理电路 ID 一起包含在内,请执行以下操作:

    • 要在代理远程 ID 中包含前缀,请执行以下操作:

(DHCPv6)要将前缀与 DHCPv6 选项 18 或选项 37 信息一起使用:

  1. 指定要配置 DHCPv6 中继代理支持。

  2. 将 DHCPv6 中继代理配置为插入选项 18(中继代理接口 ID)、选项 37(中继代理远程 ID)或同时插入两者。

    • 要配置选项 18:

    • 要配置选项 37:

  3. 指定前缀包含在选项信息中。在此示例中,前缀包括主机名和逻辑系统名称

    • 要在选项 18 中包含前缀,请执行以下操作:

    • 要在选项 37 中包含前缀,请执行以下操作:

在 DHCP 选项中包含文本说明

默认情况下,当 DHCP 中继代理在发送到 DHCP 服务器的数据包中插入选项信息时,选项将包含接口标识符。但是,您可以将 DHCP 中继代理配置为包含为接口配置的文本描述,而不是接口标识符。您可以将文本描述用于逻辑接口或设备接口。

您可以在以下 DHCP 选项中包含文本界面描述:

  • DHCPv4 选件 82 代理电路 ID(子选件 1)

  • DHCPv4 选项 82 代理远程 ID(子选项 2)

  • DHCPv6 选项 18 中继代理接口 ID

  • DHCPv6 选项 37 中继代理远程 ID

文本描述是使用层次结构级别的语句[edit interfaces interface-name]单独description配置的。如果指定使用文本描述,但未为接口配置描述,则 DHCP 中继默认使用第 2 层接口名称。

对于集成路由和桥接 (IRB) 接口,将使用第 2 层接口的文本描述,而不是 IRB 接口的文本描述。如果未配置描述,则使用第 2 层逻辑接口名称。

注意:

对于 IRB 接口,option 82 字段必须能够根据代理电路 ID 或代理远程 ID 唯一标识传入接口。您可以修改文本接口描述中的信息以匹配原始 IFD(无子单元的物理接口)名称,并将 option 82 字段配置为使用接口描述。

您可以将文本描述与以下 DHCP 选项一起使用:

  • DHCPv4 选项 82 代理电路 ID(子选项 1)

  • DHCPv4 选项 82 代理远程 ID(子选项 2)

  • DHCPv6 中继代理接口 ID(选项 18)

  • DHCPv6 中继代理远程 ID(选项 37)

(DHCPv4)要将 DHCP 中继选项 82 子选项配置为包含文本界面说明,请执行以下操作:

  1. 指定要配置选项 82 支持。
  2. 配置 DHCP 中继代理以插入代理电路 ID 和/或代理远程 ID。
  3. 指定文本描述包含在选项 82 信息中。在此示例中,option 82 信息包括用于设备接口的说明。

(DHCPv6)要将 DHCPv6 选项 18 或选项 37 配置为包含文本界面说明:

  1. 指定要配置 DHCPv6 中继代理支持。

  2. 将 DHCPv6 中继代理配置为插入选项 18(中继代理接口 ID)、选项 37(中继代理远程 ID)或同时插入两者。

    • 要配置选项 18:

    • 要配置选项 37:

  3. 指定在选项信息中包含文本说明。在以下示例中,选项信息包括用于设备接口的说明。

    • 要在选项 18 中包括文本说明,请执行以下操作:

    • 要在选项 37 中包括文本说明,请执行以下操作:

DHCP 中继代理如何使用选项 82 进行自动注销

表 1 显示了 DHCP 中继代理如何确定用于客户端自动注销功能的 option 82 值。根据配置设置,DHCP 中继代理将执行“所采取的措施”列中指示的操作。

表 1:用于自动注销的 DHCP 中继代理选项 82 值

DHCP 中继代理配置设置

   

配置了选项 82 的 DHCP 中继

发现数据包包含选项 82

覆盖“trust-option - 82”

覆盖“始终写入选项-82”

非侦听数据包中的 giaddr

采取的行动

未执行辅助搜索

是的

是的

使用数据包中的选项 82

是的

丢弃数据包

是的

非零

使用数据包中的选项 82

是的

使用已配置的选项 82

是的

是的

丢弃数据包

是的

是的

非零

使用数据包中的选项 82

是的

是的

是的

非零

覆盖配置的选项 82

是的

是的

是的

使用数据包中的选项 82

是的

是的

是的

是的

覆盖配置的选项 82

启用不受信任数据包的处理,以便可以使用选项 82 信息

默认情况下,DHCP 中继代理会将 giaddr 为 0(零)且提供选项 82 信息的客户端数据包视为源自不受信任的来源,并在不进一步处理的情况下丢弃这些数据包。您可以覆盖此行为,并指定 DHCP 中继代理处理 giaddr 为 0(零)且包含选项 82 信息的 DHCP 客户端数据包。

要将 DHCP 中继代理配置为信任选项 82 信息:

  1. 指定要配置覆盖选项。
  2. 指定 DHCP 中继代理处理 giaddr 为 0 且包含选项 82 信息的 DHCP 客户端数据包。

检查您的设备是否支持 DHCP 选项 82

要在只进模式下配置具有 DHCP 中继的交换机,请检查您的 DHCP 服务器是否支持 DHCP Option 82。

使用 表 2 中的过程确认是否支持 Option-82 或所需的解决方法。

表 2:验证 DHCP 服务器中对 Option-82 的支持

问题

如何验证?

解决 方案

验证您的 DHCP 服务器是否支持 DHCP Option 82。

dhcp traceoptions在 DHCP 中继上使用。将显示一条消息,指出由于缺少选项 82 而导致丢弃。

如果由于未包含 Option-82 而导致 DHCP 提供数据包被丢弃,您将收到如下消息:

Feb 25 15:41:13.577519 [MSTR][NOTE] 
[default:default][RLY][INET][irb.6] 
jdhcpd_packet_handle: BOOTPREPLY could not find
client table entry

要解决此问题,请执行以下操作:

  • 解决方案 1: 将 DHCP 服务器升级到完全支持 Option 82 的 Junos OS 版本。

  • 解决方案 2: 将 DHCP 中继更改为“有状态”模式(即 DHCP 中继“绑定”模式)。

  • 解决方案 3: 将 DHCP 中继移至 MX 或非 ELS EX/QFX 交换机,以便启用旧版“帮助程序引导”模式。

注意:

示例:MS Windows Server 2019中的DHCP服务器完全支持Option 82,而版本2016具有部分支持。

管理不支持 Option-82 的 DHCP PXE/BOOTP 服务器

某些 PXE 或 BOOTP 服务器不支持 Option-82,也就是说,其 DHCP 优惠消息不包含 DHCP 中继添加的选项 82 值。因此,DHCP 中继将丢弃 DHCP 产品/服务,PXE/BOOTP 客户端将无法完成其引导顺序。

以下是解决此问题的可能解决方案:

解决方案 1: 升级到支持 Option-82 的 PXE 服务器

解决方案 2: 使用 DHCP 服务器托管 PXE 服务器

  • 确保 DHCP 服务器(支持 Option-82)与 PXE 服务器一起运行。

  • 在 DHCP 服务器上配置 Option-60。

    • 使用以下 CLI 配置 Option-60 和 Microsoft WS DHCP 服务器:

    • 在 DHCP 服务器的用户界面中激活该选项。

这样,PXE/BOOTP 客户端将收到带有选项-60“PXEClient”的正确 DHCP 产品,并将通过与 DHCP 服务器的相同 IP 地址到达 PXE 服务器。

解决方案 3: 包括选项 60 和选项 43 DHCP 服务器消息

如果 PXE 服务器未与 DHCP 服务器一起托管,则 DHCP 服务器也需要在其 DHCP 产品/服务中发送 Option-43。选项 43 提供 PXE 服务器的 IP 地址。请注意,较旧的 PXE 或 BOOTP 客户端可能会忽略 Option-43,因此会尝试从 DHCP 服务器获取软件。以十六进制模式在 DHCP 服务器配置中输入 Option 43。

for 是示例 option-43 消息:

上面的消息向 PXE 客户端指示以下信息:

  • 禁用广播和多播发现

  • 仅接受本文中提供的 PXE 服务器

  • PXE 服务器 IP 为 10.11.12.13(请参阅上面文本中的字节“0A 0B 0C 0D”)

  • PXE 客户端上的启动菜单(呈现给最终用户):

    • 只有一行,“服务器PXE”

    • 自动选择第一个启动选项,提示“S”,无超时(即,除非按 F8,否则立即启动)

未配置接口上的 DHCP 数据包

在 MX 系列路由器、QFX 或 EX 系列交换机上启用 DHCP 中继后,将启用 DHCP 侦听功能,并分析通过设备的任何接口(包括已配置和未配置的接口)传入的所有 DHCP 数据包。未在 DHCP 配置下列出的接口被视为“未配置”。

根据配置,在未配置的接口上收到的 DHCP 数据包将被丢弃。

如果 DHCP 数据包在“未配置”接口上被丢弃,您将收到以下消息:

示例:在仅转发模式下配置 DHCP 中继

此示例说明如何在增强型第 2 层软件 (ELS) EX 系列和 QFX 系列交换机上配置“无状态”(“只进”)DHCP 中继。如果交换机运行的软件不支持 ELS,请参阅 配置接口范围。有关 ELS 的详细信息,请参阅 使用增强型第 2 层软件 CLI

要求

此示例使用以下硬件和软件组件:

  • QFX 或 EX 系列交换机(ELS 模式)。

  • Junos OS 版本 18.4R3。

在 EX 系列和 QFX 系列交换机上配置只进 DHCP 中继之前,让我们先了解一下 DHCP 上的 Option 82 支持。

要验证您的设备是否支持 DHCP 选项 82,请参阅 检查您的设备是否支持 DHCP 选项 82

来自 DHCP 服务器的以下消息包括 DHCP 中继在“发现”和“请求”消息中发送的 Option 82 信息的副本:

  • 提供

  • 确认(确认)

  • 否定确认 (NACK)

DHCP 中继会丢弃不包含有效 Option 82 信息的任何 OFFER、ACK 和 NACK 消息。

有关如何在 PXE 或 BOOTP 服务器不支持 Option-82 时避免丢弃 DHCP 提供消息的信息,请参阅 管理不支持 Option-82 的 DHCP PXE/BOOTP 服务器

概述

在此示例中,我们通过完成以下步骤将交换设备配置为充当 DHCP 中继代理:

  1. 添加一组配置为活动服务器组的 DHCP 服务器 IP 地址。

  2. 配置对命名接口组的 option 82 支持。

配置示例后,DHCP 中继代理在其从客户端接收并转发到 DHCP 服务器的 DHCP 数据包中包含选项 82 信息。

配置

要在 ELS 支持的 EX 或 QFX 交换机上配置只进 DHCP 中继代理,请执行以下操作:

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit] 中。

配置只进的 DHCP 中继代理

分步过程

要配置只进 DHCP 中继,请执行以下操作:

  1. 指定服务器组的名称 SV1 和 SV2。

  2. 添加属于该组的 DHCP 服务器的 IP 地址。

  3. (可选)在企业场景中,可以使用 PC(或其他设备)的预启动执行环境 (PXE) 或 BOOTP 从服务器获取其 Junos OS。

    • 如果要在交换机配置为 DHCP 中继代理时启用 BOOTP 支持,请输入以下语句:

    • 将 DHCP 或 PXE 服务器添加到 DHCP 服务器组

  4. 将服务器组应用为活动服务器组。

  5. 将 DHCP-FO 定义为交换设备上充当 DHCP 中继的接口组。配置:

  6. 将接口列表添加到接口组。

  7. 将中继选项 82 设置为接口并指定代理电路 ID。代理电路 ID 标识接收客户端 DHCP 数据包的接口。配置电路 ID 时,请在消息中包含文本界面说明。

结果

在配置模式下,通过在层次结构级别发出 show 语句 [edit forwarding-options] 来确认配置结果。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

验证来自 DHCP 服务器的消息是否包含 DHCP 中继发送的 Option 82 信息的副本。

使用 Option-82 验证报价消息

目的

通过在 DHCP 中继上启用 DHCP 跟踪选项来验证“只进”DHCP 中继。

行动
  • 在指定文件中接收跟踪操作的输出。

  • 您可以使用以下命令在 DHCP 跟踪选项日志文件中搜索问题(在本例中为 “dhcp_logfile”)。

    • 若要大致了解最常见的问题,请使用:

    • 若要调查特定问题,请使用:

      find 命令类似于 Linux less 命令。它将到达日志中的第一个条目,并允许您向上/向下滚动消息。

  • (可选)要在 Linux 服务器上(或从 Junos shell 查询跟踪选项日志),可以使用以下两个命令:

意义

上述示例确认来自 DHCP 服务器的消息包含 DHCP 中继发送的 Option 82 信息的副本,并且该示例还显示接口的文本描述。