Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

管理交换机上的 DHCP 服务

 

Junos OS 允许您执行不同类型的 DHCP 服务,例如附加动态配置文件、使用带 DHCP 的外部认证服务、指定最大客户端数、管理客户端信息请求消息、动态重新配置客户端等。有关更多信息,请阅读本主题。

使用外部 AAA 认证服务与 DHCP

扩展 DHCP 本地服务器(包括 DHCPv6 本地服务器)和扩展 DHCP 中继代理(包括 DHCPv6 中继代理)支持使用外部 AAA 身份验证服务(如 RADIUS)来验证 DHCP 客户端。当扩展 DHCP 本地服务器或中继代理从客户端接收到探索 PDU 时,扩展 DHCP 应用程序将与 AAA 服务器联系,以验证 DHCP 客户端。扩展 DHCP 应用程序可从外部 AAA 认证服务器获取客户端地址和 DHCP 配置选项。

注意

本节使用术语扩展 dhcp 应用程序来指代扩展 dhcp 本地服务器和扩展 dhcp 中继代理。

此外,外部认证功能还支持 AAA 定向注销。如果外部 AAA 服务支持用户注销指令,则扩展 DHCP 应用程序将接受注销并做出响应,就像它是由 CLI 管理命令请求的一样。所有客户端状态信息和分配的资源将在注销时被删除。扩展 DHCP 应用程序使用在authentication-server[edit access profile profile-name]层次结构级别指定的配置身份验证服务器列表,支持定向注销。

您可以配置全局认证支持或组特定支持。

您必须配置该username-include语句才能启用身份验证。该password语句不是必需的,如果不包含该username-include语句,则不会导致 DHCP 使用身份验证。

要配置 DHCP 本地服务器和 DHCP 中继代理身份验证支持:

  1. 指定要配置身份验证选项。
    • 对于 DHCP 本地服务器:

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 本地服务器:

    • 对于 DHCPv6 中继代理:

  2. 必配置用于将用户名验证为外部认证服务的密码。

    请参阅配置用户名的密码

  3. 必配置可选功能以创建唯一用户名。

    请参阅为 DHCP 客户机创建唯一用户名

为 DHCP 客户机创建唯一用户名

您可以将扩展的 DHCP 应用程序配置为在 DHCP 客户端登录时将附加信息传递到外部 AAA 认证服务。这些附加信息使您可以构建唯一识别订户的用户名(DHCP 客户端)。

注意

如果在身份验证配置中不包括用户名,则路由器(或交换机)不执行身份验证;但是,如果已配置,IP 地址将由本地池提供。

使用 DHCPv6 本地服务器时,必须配置身份验证和客户端用户名;否则,客户端登录将失败。

以下列表介绍了可作为用户名的一部分包括的可选信息:

  • circuit-type—例如enet,DHCP 客户端使用的电路类型。

  • client-id—客户端标识符选项(选项1)。(DHCPv6 本地服务器 DHCPv6 中继代理)

  • delimiter—分隔组成连接用户名的组件的分隔符字符。默认分隔符为句点(.)。分号(;)不支持用作分隔符字符。

  • domain-name—字符串形式的客户端域名。路由器将 @ 分隔符添加到用户名。

  • interface-description—设备(物理)接口或逻辑接口的说明。

  • interface-name—接口名称,包括接口设备和关联的 VLAN Id。

  • logical-system-name—如果接收接口在逻辑系统中,则为逻辑系统的名称。

  • mac-address—客户端 MAC 地址,格式xxxx.xxxx.xxxx为字符串。

    对于 DHCPv6 客户端,由于 DHCPv6 数据包格式没有用于客户端 MAC 地址的特定字段,因此 MAC 地址从多个源派生,具有以下优先级:

    • 客户端 DUID 类型1或类型3。

    • 选项79(客户端链路层地址)(如果存在)。

    • 如果客户端直接连接,则为数据包源地址。

    • 链路本地地址。

  • option-60—在长度字段后面的选项60负载部分。(DHCPv6 本地服务器不支持)

  • option-82 <circuit-id> <remote-id>—选项82负载的指定内容。(DHCPv6 本地服务器不支持)

    • circuit-id—代理电路 ID suboption 的有效负载。

    • remote-id—代理远程 ID suboption 的有效负载。

    • 两种 suboptions 的有效载荷均circuit-id采用以下格式: remote-idcircuit-id[delimiter]remote-id.

    • 从 PDU 到选项82的原始有效负载均circuit-id未连接到用户名。 remote-id

    注意

    对于 DHCP 中继代理,在创建用户名时使用的选项82值基于在传出(中继) PDU 中编码的选项82值。

  • relay-agent-interface-id—接口 ID 选项(选项18)。(仅限 DHCPv6 本地服务器或 DHCPv6 中继代理)

  • relay-agent-remote-id—DHCPv6 中继代理远程 ID 选项(选项37)。(仅限 DHCPv6 本地服务器或 DHCPv6 中继代理)

  • relay-agent-subscriber-id—(仅限路由器)DHCPv6 中继代理用户 ID 选项(选项38)。(仅限 DHCPv6 本地服务器或 DHCPv6 中继代理)

  • routing-instance-name—路由实例的名称(如果接收接口位于路由实例中)。

  • user-prefix—指示用户前缀的字符串。

  • vlan-tags—用户 VLAN 标记。包括外部 VLAN 标记和内部 VLAN 标记(如果存在)。如果外部 VLAN 标记在系统中是interface-name唯一的,并且不需要底层物理接口名称作为格式的一部分,则可以使用此选项,而不是选项。

路由器(交换机)通过按以下顺序包含指定的附加信息来创建唯一的用户名,并以分隔符分隔这些字段。

对于 DHCP 本地服务器和 DHCP 中继代理:

对于 DHCPv6 本地服务器:

要配置唯一用户名:

  1. 指定要配置身份验证。
    • 对于 DHCP 本地服务器:

    • 对于 DHCPv6 本地服务器:

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

    注意

    您还可以在附加层次结构级别为组配置身份验证和用户名。请参阅身份验证(DHCP 本地服务器)身份验证(DHCP 中继代理)

  2. 指定要在用户名中包含可选信息。(DHCP 本地服务器、DHCPv6 本地服务器、DHCP 中继代理和 DHCPv6 中继代理都支持该username-include语句。)
  3. 必指定要在用户名中包括的可选信息。DHCP 本地服务器、DHCPv6 本地服务器、DHCP 中继代理和 DHCPv6 中继代理都支持该username-include语句。

    以下示例配置将生成此唯一用户名:

    wallybrown.00:00:5e:00:53:ff.enet@example.com

指定每个接口的 DHCP 客户端的最大数量

默认情况下,接口上允许的 DHCP 本地服务器或 DHCP 中继客户端数量没有限制。但是,您可以覆盖默认设置,并指定每个接口允许的最大客户端数(范围为1至500000)。当接口上的客户端数量达到指定限制时,将不接受额外的 DHCP 探索 Pdu 或 DHCPv6 请求 Pdu。当客户端数量降到限制以下时,新客户端将再次被接受。

注意

DHCP (和 DHCPv6)本地服务器客户端或 DHCP (DHCPv6)中继客户端的最大数量也可通过瞻博网络 VSA 26-143 在客户端登录期间指定。如果interface-client-limit语句指定一个不同的数字,VSA 指定的值始终优先。

如果 VSA 指定的值与每个客户端登录都不同,DHCP 将使用 VSA 设置的最大限制,直到接口上没有客户端。

要配置每个接口允许的 DHCP 客户端的最大数量:

  1. 指定要配置覆盖选项。
    • 对于 DHCP 本地服务器:

    • 对于 DHCPv6 本地服务器:

    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  2. 配置每个接口允许的最大客户端数。(DHCP 本地服务器、DHCPv6 本地服务器、DHCP 中继代理和 DHCPv6 中继代理均支持该interface-client-limit语句。)
注意

对于 DHCP 本地服务器和 DHCP 中继代理,您可以使用interface-client-limit语句或client-discover-match incoming-interface语句来设置每个接口上一个客户端的限制。值interface-client-limit为1的语句将保留现有客户端并拒绝任何新客户端连接。client-discover-match incoming-interface语句会删除现有客户端并允许新客户端连接。

DHCP 本地服务器客户信息请求消息处理

已有外部提供的地址的 DHCP 客户端可能会通过发送 DHCP 通知或 DHCPv6 信息请求消息(指出所需信息),从 DHCP 服务器请求进一步的配置信息。这些消息类型可共同称为信息请求消息。默认情况下,DHCP 本地服务器和 DHCPv6 本地服务器将忽略其收到的任何 DHCP 信息请求。您可以覆盖此默认行为以启用这些消息的处理。

如果启用信息请求处理,DHCP 本地服务器将使用 DHCP 确认消息对客户端做出响应,其中包含所需信息—(如果可用)。DHCPv6 本地服务器以相同的方式响应,但使用 DHCP 回复消息。由于 DHCP 信息请求消息,不会应用订阅者管理或 DHCP。

默认情况下,如果在为 DHCP 服务器组配置的接口上接收消息,DHCP 中继和 DHCP 中继代理将在不修改的情况下自动转发 DHCP 信息请求消息。DHCP 中继和中继代理丢弃在任何其他接口上收到的信息请求消息。您不能禁用此默认 DHCP 中继和中继代理行为。

这些客户端所需的信息通常配置有一个dhcp-attributes地址池的语句,该说明由address-assignment pool pool-name[edit access]层次结构级别的语句定义。

启用 DHCP 信息请求的处理时,您可以选择指定本地服务器从中检索客户端请求的配置信息的池的名称。如果不指定本地池,则本地服务器请求 AAA 选择并仅返回相关池的名称。

注意

EX 系列交换机上不支持 PPP 接口。

当 DHCPv6 通过 PPP 接口配置时,PPP RADIUS 身份验证数据可用于选择获取响应信息的池。此外,还可以将其他 RADIUS 属性插入 DHCPv6 回复消息中。如果 RADIUS 属性和本地池属性之间存在重叠,则使用 RADIUS 值代替本地配置数据。如果未从基础 PPP 接口接收 RADIUS 信息,则行为与前面对非 PPP 接口所述相同。

支持处理客户端信息请求

默认情况下,DHCP 本地服务器和 DHCPv6 本地服务器不响应来自客户端的信息请求(DHCP 通知和 DHCPv6 信息请求)消息。您可以启用 DHCP 本地服务器和 DHCPv6 本地服务器来处理这些消息,并使用确认(分别应答或回复消息)和所需信息进行响应。

DHCP 中继代理通过为各自的服务器组配置的接口自动转发信息请求消息,而不修改已配置的服务器组。如果在未配置的接口上收到消息,则将其丢弃。DHCP 中继代理还支持转发这些消息。您不能禁用信息请求消息的转发。

如果您想使用本地池,而不是 AAA 提供的一个或多个本地地址池,请配置一个或一个。请参阅Configuring an Address-Assignment Pool Name and Addresses。对于处理信息请求消息,地址配置不是必需的。对于 DHCP 本地服务器,必须指定 IPv4 系列;对于 DHCPv6 本地服务器,必须指定 IPv6 系列。

有关如何配置发送信息请求消息的客户端查找的信息的详细信息,请参阅Configuring DHCP Client-Specific Attributes Applied When Clients Obtain an Address

要启用 DHCP 客户端信息请求消息的处理:

  1. 指定要配置覆盖选项。
    • 对于 DHCP 本地服务器:

    • 对于 DHCPv6 本地服务器:

  2. 必指定将 DHCP 信息返回到客户端的池名称。
    • 对于 DHCP 本地服务器:

    • 对于 DHCPv6 本地服务器:

在客户端被删除时发送发布消息

默认情况下,当 DHCP 中继和中继代理删除客户端时,它们不会向 DHCP 服务器发送 release 消息。您可以覆盖默认行为,并配置 DHCP 中继和中继代理,以便在其删除客户端时发送释放消息。DHCP 中继和中继代理发送的 release 消息包括选项82信息。

注意

包含send-release-on-delete语句时, client-discover-match您必须包括配置 DHCP 中继和中继代理的语句,以便发送 release 消息。

您可以使用[edit forwarding-options dhcp-relay dhcpv6]层次结构级别覆盖 DHCPv6 中继代理的默认行为。

要发送发布消息:

  1. 指定要配置覆盖选项。
    • 对于 DHCP 中继代理:

    • 对于 DHCPv6 中继代理:

  2. 指定您希望 DHCP 中继和中继代理(或 DHCPv6 中继代理)在客户端删除时发送一条 release 消息。

了解扩展 DHCP 本地服务器客户端的动态重新配置

动态重新配置客户端使扩展的 DHCP 本地服务器能够在不等待客户端发起请求的情况下启动客户端更新。

默认客户端/服务器交互

通常,DHCP 客户端会启动所有基本 DHCP 客户端/服务器交互。DHCP 服务器仅向客户端发送信息,以便响应来自该客户端的请求。此行为不会使客户端能够在其网络地址和配置发生服务器更改时快速更新:

注意

从技术角度而言,路由器和交换机上的 DHCP 客户端/服务器交互是相同的。但是,路由器上这种技术的主要用途是订阅者管理。这些交换机不用于订阅者管理。因此,本主题提供了两种示例方案。操作相同,但实施细节不同。

  • 在路由器—上,假设服务提供商 restructures 其寻址方案或将提供给客户端的服务器 IP 地址更改。如果不进行动态重新配置,服务提供商通常会清除 DHCP 服务器绑定表,但不能通知 DHCP 客户端已清除其绑定。因此,DHCP 客户端的运行方式好像其 IP 地址仍然有效,但现在无法通过访问网络进行通信,从而导致中断。DHCP 本地服务器需要等待客户端发送消息,以便续订租约或重新绑定到服务器。作为响应,服务器向客户端发送 NAK 消息,强制其再次开始 DHCP 连接进程。或者,提供商可以等待客户对网络故障进行服务呼叫,然后指示他们关闭客户现场设备以 reinitiate 连接。这些行动对于客户来说都是不是及时或方便的。

  • 在交换机—上,假设您重新构建寻址方案或更改 DHCP 服务器向客户端提供的服务器 IP 地址。如果不进行动态重新配置,网络通常会清除 DHCP 服务器绑定表,但不能通知 DHCP 客户端已清除其绑定。因此,DHCP 客户端的运行方式好像其 IP 地址仍然有效,但现在无法通过访问网络进行通信,从而导致中断。DHCP 本地服务器需要等待客户端发送消息,以便续订租约或重新绑定到服务器。作为响应,服务器向客户端发送 NAK 消息,强制其再次开始 DHCP 连接进程。或者,您也可以等待用户向您通知网络故障,然后指示他们将设备重启以 reinitiate 连接。这些操作对用户来说都是即时还是方便的。

面向 DHCPv4 的动态客户端/服务器交互

通过 RFC 3203 的部分实施可获得对 DHCPv4 的动态重新配置, DHCP 重新配置扩展适用于 DHCPv4。它允许 DHCPv4 本地服务器向客户端发送消息,以强制重新配置。

服务器向 DHCPv4 客户端发送 forcerenew 消息,并启动消息交换。作为响应,支持 forcerenew 消息的 DHCPv4 客户端随后会向服务器发送租约续订消息。服务器拒绝租约续订请求并向客户端发送 NAK,从而导致客户端 reinitiate DHCP 连接。成功重新连接会导致 DHCP 客户端重新配置。RFC 3202 仅支持 forcerenew、续订和 NAK 消息的交换。DHCP 中继和 DHCP 中继代理不参与客户端重新配置或响应 forcerenew 消息,而不是将其转发到客户端。

当本地服务器状态机器在绑定客户端上启动重新配置过程时,客户端将过渡到重新配置状态,而本地服务器会向客户端发送 forcerenew 消息。由于客户端在进入重新配置状态之前处于绑定状态,因此所有订户服务或 DHCP 托管服务(如转发和统计)都将继续工作。客户端统计信息不会在成功重新配置和后续客户端绑定之间的时间间隔内维护。当服务器使用 NAK 响应客户端续订请求时,客户端条目将从绑定表中删除,并报告最终统计信息。当客户端发送发现消息以建立新会话时,将收集新统计信息。

用于 DHCPv6 的动态客户端/服务器交互

DHCPv6 的动态重新配置可通过 RFC 3315 的部分实施获得, 用于 IPv6 的动态主机配置协议(DHCPv6). 它允许 DHCPv6 本地服务器向客户端发送消息,以强制重新配置。

DHCPv6 服务器向 DHCPv6 客户端发送重新配置消息,从而启动消息交换。响应时,支持重新配置消息的 DHCPv6 客户端将过渡到更新状态,并将续订消息发送至服务器。服务器将返回一个生存时间为零(0)的回复消息。客户端转换为 init 状态并发送一条要求消息。服务器发送通告消息,指示其可用于服务。客户端发送配置参数请求,然后服务器将在其回复中包含该要求。如果不将消息转发至客户端,DHCP 中继和 DHCP 中继代理不会参与客户端重新配置或响应。

在将 DHCPv6 服务器触发为在绑定 DHCPv6 客户端上启动重新配置时,客户端将转换为再次配置状态。所有订阅者服务(如转发和统计)都将继续工作。然后,服务器会将重新配置消息发送至客户端。如果 DHCPv6 客户端已处于重新配置状态,则 DHCPv6 服务器将忽略再次配置触发器。对于不是绑定或重新配置的任何状态的客户端,服务器将清除客户端的绑定状态,就clear dhcpv6 server binding像命令已发出一样。

手动强制本地服务器启动重新配置过程

您可以通过发出 DHCPv4 客户端request dhcp server reconfigure命令和 DHCPv6 客户端request dhcpv6 server reconfigure命令来强制本地服务器为客户端启动重新配置过程。命令选项确定是否随后将针对所有客户端或指定客户端尝试重新配置。

对重新配置期间发生的事件采取的操作

重新配置过程中发生的事件优先于重新配置。表 1列出了为响应多个不同事件所采取的操作。

表 1: 对重新配置期间发生的事件采取的操作

活动

操作

服务器从客户端接收发现(DHCPv4)或征求(DHCPv6)消息。

服务器丢弃数据包并删除客户端。

服务器接收来自客户端的请求、更新、重新绑定或 init 重启消息。

DHCPv4—服务器发送 NAK 消息并删除客户端。

DHCPv6—服务器丢弃数据包并删除客户端。服务器回复续订消息,租约时间为零(0)。

服务器接收来自客户端的释放或拒绝消息。

服务器会删除客户端。

客户租约超时。

服务器会删除客户端。

发出clear dhcp server binding命令。

服务器会删除客户端。

发出request dhcp server reconfigure (DHCPv4)或request dhcpv6 server reconfigure (DHCPv6)命令。

命令将被忽略。

发生 GRES 或 DHCP 重新启动。

重新配置进程已停止。

DHCP 本地服务器客户端的动态重新配置的优势

  • 允许 DHCP 本地服务器动态重新配置 DHCP 客户端,从而避免由于服务器配置更改而导致延长的停机时间,否则需要服务器等待客户端续订租约或重新绑定到服务器。

配置扩展本地服务器客户端的动态客户端重新配置概述

DHCP 本地服务器可以启动重新配置其客户端,以避免由于服务器配置更改而延长停机时间。您可以为所有 DHCP 客户端或仅为指定接口组提供服务的 DHCP 客户端启用动态重新配置,并且您可以相应修改此行为。

从 Junos OS 版本14.1 开始,您可以修改 DHCP 本地服务器通过包含相应配置语句来启动其客户端重新配置的进程的行为。您可以在[edit system services dhcp-local-server reconfigure]层次结构级别为所有 DHCPv4 客户端以及所有 DHCPv6 客户端的[edit system services dhcp-local-server dhcpv6 reconfigure]层次结构级别提供语句。要仅为指定接口组提供服务的 DHCP 客户端重写此全局配置,您可以在 DHCPv4 客户端的[edit system services dhcp-local-server group group-name reconfigure]层次结构级别和 DHCPv6 客户端的[edit system services dhcp-local-server dhcpv6 group group-name reconfigure]层次结构级别上包括具有不同值的语句。

要配置 DHCP 客户端的动态重新配置:

  1. 使用所有客户端的默认值启用动态重新配置。

    对于 DHCPv4:

    对于 DHCPv6:

  2. 必仅为一组接口提供服务的客户端启用动态重新配置。

    对于 DHCPv4:

    对于 DHCPv6:

  3. 必配置服务器尝试重新配置的方式。

    请参阅为 DHCP 客户端配置动态重新配置尝试

  4. 必配置对失败的重新配置的响应。

    请参阅在动态重新配置失败时配置客户端删除

  5. 必配置响应 RADIUS 发起的断开的行为。

    请参阅配置在收到 RADIUS 发起的断开连接时重新配置客户端的重新配置。

  6. 必为初级服务器身份验证配置令牌。

    请参阅为 DHCP 本地服务器身份验证配置令牌

  7. 必如果 DHCPv6 客户端不支持重新配置消息,则阻止其绑定。

    请参阅防止绑定不支持重新配置消息的客户端

请求 DHCP 本地服务器启动客户端绑定重新配置

您可以请求 DHCP 本地服务器启动所有客户端的重新配置,或者仅初始化指定的客户端。

要请求重新配置所有客户端:

  • 指定all选项。

您可以使用以下任何方法请求特定客户端的重新配置:

  • 指定 DHCPv4 客户端的 IP 地址。

  • 指定 DHCPv4 客户端的 MAC 地址。

  • 指定接口;对此接口上的所有客户端尝试重新配置。

  • 指定逻辑系统;将尝试对此逻辑系统中的所有客户端或指定客户端进行重新配置。

  • 指定路由实例;为此路由实例中的所有客户端或指定客户端尝试重新配置。

为 DHCP 客户端配置动态重新配置尝试

您可以配置本地服务器通过发送 forcerenew 或重新配置消息来启动重新配置 DHCP 客户端的尝试次数。您还可以指定服务器在两次尝试之间等待多长时间。默认情况下,将进行八次尝试,初始间隔为两秒。

每次连续尝试都将重试间隔加倍。例如,如果第一个值为2,首次重试将在第一次尝试失败后尝试2秒。第二次重试失败后尝试4秒。第三次重试将在秒重试失败后尝试8秒,依此类推。组配置优先于 DHCP 本地服务器配置。

必要为所有 DHCP 客户端配置 DHCP 本地服务器重新配置行为:

  1. 指定重新配置尝试次数。

    对于 DHCPv4:

    对于 DHCPv6:

  2. 指定重新配置尝试之间的时间间隔。

    对于 DHCPv4:

    对于 DHCPv6:

要覆盖特定客户端组的全局配置,请在[edit system services dhcp-local-server group group-name reconfigure]层次结构级别或[edit system services dhcpv6 dhcp-local-server group group-name reconfigure]层次结构级别中包括这些语句。

在动态重新配置失败时配置客户端删除

您可以将本地服务器配置为在没有成功的重新配置尝试次数最多时,删除客户端。默认情况下,客户’端的原始配置将得到恢复。

必要在重新配置不成功时将 DHCP 本地服务器配置为删除客户端,请执行以下操作:

  • 指定客户端删除。

    对于 DHCPv4:

    对于 DHCPv6:

要覆盖特定客户端组的全局配置,请将该语句包含在[edit system services dhcp-local-server group group-name reconfigure]层次结构级别或[edit system services dhcpv6 dhcp-local-server group group-name reconfigure]层次结构级别。

配置在收到 RADIUS 发起的断开连接时重新配置客户端

您可以将本地服务器配置为在客户端收到 RADIUS 发起的断开连接时重新配置客户端。默认情况下,收到 RADIUS 启动的断开连接时,客户端将被删除。

必要将 DHCP 本地服务器配置为重新配置客户端,而不是在收到 RADIUS 发起的断开连接时删除客户端,则对于所有客户端:

  • 指定 RADIUS 发起的断开连接触发器。

    对于 DHCPv4:

    对于 DHCPv6:

要覆盖特定客户端组的全局配置,请将该语句包含在[edit system services dhcp-local-server group group-name reconfigure trigger]层次结构级别或[edit system services dhcpv6 dhcp-local-server group group-name reconfigure trigger]层次结构级别。

相关主题

Release History Table
版本
说明
从 Junos OS 版本14.1 开始,您可以修改 DHCP 本地服务器通过包含相应配置语句来启动其客户端重新配置的进程的行为。