Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

从 RADIUS 服务器接收 DHCP 选项

在 RADIUS 服务器上集中配置 DHCP 选项

Junos OS设备上的 DHCP 管理支持直接在 RADIUS 服务器上集中配置 DHCP 选项(RADIUS源选项)和传统的客户端源选项配置。阅读以下部分,了解有关在 RADIUS 服务器上集中配置 DHCP 选项的信息。

RADIUS 来源的选项

您可以通过订阅者管理(在路由器上)或 DHCP 管理(在交换机上)在 RADIUS 服务器上集中配置 DHCP 选项,然后基于每个订阅者或每个 DHCP 客户端分配这些选项。此方法将产生源自 RADIUS 的 DHCP 选项 — DHCP 选项源自 RADIUS 服务器并发送至用户(或 DHCP 客户端)。这与配置 DHCP 选项的传统客户端源方法(也称为 DHCP 源)不同,在后者中,选项源自客户端并发送至 RADIUS 服务器。用户管理(DHCP 管理)源自 RADIUS 的 DHCP 选项也被视为 不透明,因为 DHCP 本地服务器在将选项传递给用户(DHCP 客户端)之前,会对 DHCP 选项字符串执行最少的处理和错误检查。

订阅者管理(或 DHCP 管理)使用瞻博网络 VSA 26-55(DHCP 选项)来分发源自 RADIUS 的 DHCP 选项。RADIUS服务器在服务器在用户身份验证或 DHCP 客户端身份验证期间返回的访问接受消息中包括 VSA 26-55。RADIUS 服务器将访问接受消息发送到 RADIUS 客户端,然后发送到 DHCP 本地服务器以返回给 DHCP 用户。RADIUS 服务器可以在单个 Access-Accept 消息中包含 VSA 26-55 的多个实例。RADIUS 客户端将多个实例连接起来,并将结果用作单个实例。

启用订阅者管理(DHCP 管理)以使用集中配置的 DHCP 选项不需要 CLI 配置 — 该过程由 RADIUS 访问接受消息中存在 VSA 26-55 触发。

为 DHCP 客户端构建提供数据包时,DHCP 本地服务器使用以下顺序:

  1. 处理作为单独 RADIUS 属性传递的任何 RADIUS 配置参数;例如,RADIUS 属性 27(会话超时)。

  2. 处理任何客户端源的参数;例如,RADIUS 属性 53(DHCP 消息类型)和 54(服务器标识符)。

  3. 附加(不执行任何处理)从 RADIUS 服务器接收的 VSA 26-55 中包含的不透明 DHCP 选项字符串。

客户端源选项配置

除了支持直接在 RADIUS 服务器上集中配置 DHCP 选项(RADIUS 源选项)外,订阅者管理(DHCP 管理)还支持传统的客户端源选项配置,其中路由器(交换机)的 DHCP 组件将选项发送到 RADIUS 服务器。DHCP 本地服务器和 DHCP 中继代理都支持客户端源的 DHCP 选项方法;但是,仅 DHCP 本地服务器支持 RADIUS 源的中央配置方法。RADIUS 源和客户端源的方法都支持 DHCPv4 和 DHCPv6 用户(客户端)。

注意:

您可以在 DHCP 本地服务器上同时使用 RADIUS 源和客户端源的方法。但是,您必须确保中央配置方法不包含覆盖客户端来源的 DHCP 选项的选项,因为这可能会产生不可预测的结果。

RADIUS 源 DHCP 选项的数据流

图 1 显示了在为订阅者(DHCP 客户端)配置 DHCP 选项时,订阅者管理(DHCP 管理)使用的过程。

图 1:DHCP 选项数据流 DHCP Options Data Flow

当订阅者管理(DHCP 管理)使用 RADIUS 源的 DHCP 选项和 VSA 26-55 配置 DHCP 订阅者(客户端)时,以下常规顺序描述了数据流:

  1. 用户(DHCP 客户端)向 DHCP 本地服务器发送 DHCP 发现消息(或 DHCPv6 请求消息)。该消息包含客户端源的 DHCP 选项。

  2. DHCP 本地服务器使用 Junos OS RADIUS 客户端启动身份验证。

  3. RADIUS 客户端代表用户(DHCP 客户端)向外部 RADIUS 服务器发送访问请求消息。该消息包括用户(DHCP 客户端)客户端源的 DHCP 选项。

  4. 外部 RADIUS 服务器通过向 RADIUS 客户端发送 Access-Accept 消息来进行响应。Access-Accept 消息在 VSA 26-55 中包括源自 RADIUS 的不透明 DHCP 选项。

  5. RADIUS 客户端将 DHCP 选项字符串发送至 DHCP 本地服务器。如果有多个 VSA 26-55 实例,RADIUS 客户端首先将它们组合成单个选项字符串。

  6. DHCP 本地服务器将所有选项处理到 DHCP 提供(或 DHCPv6 回复)消息中,源自 RADIUS 的 VSA 26-55 DHCP 选项除外。处理完所有其他选项后,DHCP 本地服务器会将未修改的 VSA 26-55 DHCP 选项追加到消息中,并将消息发送到用户(DHCP 客户端)。

  7. 用户(DHCP 客户端)配置了 DHCP 选项。

  8. 在用户(DHCP 客户端)收到 DHCP 选项后,将执行以下作:

    • 计费 — RADIUS 客户端向 RADIUS 服务器发送 Acct-Start 和 Interim-Accounting 请求,包括 VSA 26-55 中源 RADIUS 的 DHCP 选项。默认情况下,计费请求中包含 DHCP 选项。

    • 续订 — 当用户(DHCP 客户端)续订时,缓存的 DHCP 选项值将在 DHCP 续订(或 DHCPv6 ACK)消息中返回。在续订周期内无法修改最初分配的 DHCP 选项。

    • 注销 — 当用户(DHCP 客户端)注销时,RADIUS 客户端会向 RADIUS 服务器(包括源自 RADIUS 的 VSA 26-55)发送 Acct-Stop 消息。

多个 VSA 26-55 实例配置

VSA 26-55 支持的最大大小为 247 字节。如果 RADIUS 源的 DHCP 选项字段大于 247 字节,则必须分解该字段并手动配置 VSA 26-55 的多个实例,以便 RADIUS 服务器返回。对一个选项字段使用多个实例时,您必须按照 RADIUS 客户端重组分段的顺序将实例放入数据包中。片段可以是 247 字节或更小的任何大小。

最佳实践:

为了便于配置和管理 DHCP 选项,您可能希望每个 VSA 26-55 实例都有一个 DHCP 选项,而不管选项字段的大小如何。

当 RADIUS 客户端在向 RADIUS 服务器的计费请求中返回重组的不透明选项字段时,RADIUS 客户端会使用 247 字节片段。如果最初创建的实例小于 247 字节,则返回的片段可能与最初在 RADIUS 服务器上配置的片段不同。

注意:

如果要将钢带半径 (SBR) 配置为支持多个 VSA 26-55 实例,请确保使用订阅者管理 RADIUS 字典文件中的标志指定 RO VSA 26-55。该 R 值表示多值回复属性,该 O 值表示有序属性。

无法集中配置的 DHCP 选项

表 1 显示了不得在 RADIUS 服务器上集中配置的 DHCP 选项。

表 1:不受支持的不透明 DHCP 选项

DHCP 选项

选项名称

注释

选项 0

焊盘选项

不支持。

选项 51

IP 地址租用时间

值由 RADIUS 属性 27(会话超时)提供。

选项 52

选项过载

不支持。

选项 53

DHCP 消息类型

值由 DHCP 本地服务器提供。

选项 54

服务器标识符

值由 DHCP 本地服务器提供。

选项 55

参数请求列表

值由 DHCP 本地服务器提供。

选项 255

值由 DHCP 本地服务器提供。

DHCP 魔术 Cookie

不支持。

使用 RADIUS 服务器交换 DHCPv4 和 DHCPv6 参数概述

独立于 DHCPv4 和 DHCPv6 配置的 RADIUS 服务器可对客户端进行身份验证,并提供 IPv4 或 IPv6 前缀和客户端配置参数。要在网络上建立客户端会话,DHCPv4 和 DHCPv6 参数会通过 DHCP(DHCPv4 或 DHCPv6)服务器从客户端设备发送到 RADIUS 服务器,反之亦然。从 Junos OS 17.4R1 版开始,参数交换得到了增强,引入了几个新的供应商特定属性 (VSA) 以及对现有 DHCP 选项 VSA (26-55) 的更改。

当发生可配置事件(例如家族状态更改)时,会立即向 RADIUS 服务器发送临时会计报告。发生这些事件时,RADIUS 服务器无法直接确定报告的原因。您可以使用 Acct-Request-Reason VSA (26-210) 在启动会计报告以及立即临时会计报告中发送原因。

每当双堆栈会话(DHCPv4、DHCPv6 或 PPPoE)的第二个家族(IPv4 或 IPv6)被激活,或者双堆栈会话(DHCPv4、DHCPv6 或 PPPoE)的第一个家族(IPv4 或 IPv6)停用时,宽带网络网关 (BNG) 就会向 RADIUS 服务器发送临时记账报告。要立即发送中期记账报告,请在层次结构级别对 [edit access profile profile-name accounting] BNG 进行配置family-state-change-immediate-update语句。

以下 VSA 用于与 RADIUS 服务器交换客户端参数:

  • DHCPv6 选项 VSA (26-207):

    • DHCPv6 选项 VSA (26-207) 用于与 RADIUS 服务器交换 DHCPv6 选项。在早于 Junos OS 17.4R1 的版本中,DHCPv6 选项包含在 DHCP 选项 VSA (26-55) 中的 DHCPv4 选项中。

      从 DHCPv6 客户端发送到 DHCPv6 服务器的选项值与从 DHCPv6 服务器发送到 DHCPv6 客户端的值分开保存在会话数据库中。

    • 如果 DHCPv6 选项太大而无法容纳一个 VSA,则会在 RADIUS 数据包中将其拆分为多个连续的 VSA。在这种情况下,选项在 VSA 大小限制处拆分,而不是在类型长度值 (TLV) 边界处拆分。

    • 如果 RADIUS Access-Accept 消息中包含 VSA 的多个实例,则它们将串联为一个块并存储在会话数据库中,而不检查 TLV 的有效性。

  • DHCP 选项 VSA (26-55):

    • DHCP 选项 VSA (26-55) 用于与 RADIUS 服务器交换 DHCPv4 选项。

    • 随着 VSA 26-207 的推出,VSA 26-55 仅包含 DHCPv4 选项。

    • 如果 DHCPv4 选项太大而无法容纳一个 VSA,则会在 RADIUS 数据包中将其拆分为多个连续的 VSA。在这种情况下,选项在 VSA 大小限制处拆分,而不是在 TLV 边界处拆分。

    • 如果 RADIUS Access-Accept 消息中包含 VSA 的多个实例,则它们将串联为一个块并存储在会话数据库中,而不检查 TLV 的有效性。

  • DHCP 标头 VSA (26-208):

    • DHCP 报头 VSA (26-208) 将 DHCPv4 数据包报头传送到 RADIUS 服务器。标头信息用于实例化动态用户接口。

    • VSA 仅允许在 RADIUS 访问请求消息中使用,并存储在会话数据库中。

  • DHCPv6 标头 VSA (26-209):

    • DHCPv6 报头 VSA (26-209) 将 DHCPv6 数据包报头传送到 RADIUS 服务器。标头信息用于实例化动态用户接口。

    • VSA 仅允许在 RADIUS 访问请求消息中使用,并存储在会话数据库中。

  • 帐户请求原因 VSA (26-210):

    • Acct-Request-Reason VSA (26-210) 传达发送会计请求的原因。VSA 仅包含在 RADIUS Acct-Start 和 Interim-Update 消息中。VSA 仅适用于订阅者会计报告;它不存在于服务会话或可扩展订阅者服务管理器 (ESSM) 报告中。

    • Acct-Start 消息中 VSA 的典型值为 IP 活动 (0x0004) 或 IPv6 活动 (0x0010),表示 IPv4 或 IPv6 地址族已激活。对于第 2 层批发 VLAN 网络,该值为会话活动 (0x0040),因为不存在 IPv4 或 IPv6 系列。MLPPP 的值也是会话活动,因为计费消息是针对链路会话而不是捆绑会话发送的。ESSM 会话是父订阅者会话的子会话,被视为 ESSM 服务会话。仅为父订阅者会话发送 VSA。

使用 DHCPv6 区分用户类别 选项 17 和 VSA 26-207

从 Junos OS 18.3R1 版开始,您可以在 DHCPv6 中继身份验证期间使用 DHCPv6 选项 VSA (26-207) 区分不同类别的用户。例如,您可能希望为不同的用户类别分配不同的 IPv6 前缀。

您必须将 RADIUS 服务器配置为在 VSA 中包含以下信息:

  • 瞻博网络企业编号:2636

  • 子选项 5,JDHCPD_VS_OPT_CODE_KT_SUBSCRIBER_CLASS

注意:

要配置此信息,请参阅 RADIUS 服务器的文档。您必须在 RFC 3315《 IPv6 动态主机配置协议 (DHCPv6)》中以 DHCPv6 选项格式对信息进行编码。

对于要区分的每个类,您都可以为子选项 5 设置不同的值。您可以开发自己的方案来确定值和类之间的映射。

VSA 26-207 在 DHCPv6 用户身份验证期间,在 RADIUS 服务器返回的 Access-Accept 消息中传达用户类信息。VSA 的内容从AAA进程传递到会话数据库属性 SDB_SERVER_DHCPV6_OPTIONS 中的 DHCP 进程。DHCPv6 中继代理从 SDB 属性中提取信息,并将其置于 DHCPv6 选项 17 中。随后,中继代理在 Relay-Forward 报头中将选项 17 传递给 DHCPv6 本地服务器。然后,本地服务器可以返回特定于相关用户类的中继代理配置和服务信息。

在早于 Junos OS 18.3R1 的版本中,只有 DHCP 本地服务器支持 VSA 26-207。仅支持子选项 1 (JDHCPD_VS_OPT_CODE_HOST_NAME) 和子选项 4 (JDHCPD_VS_OPT_CODE_LOCATION_NAME)。如果收到 SDB_SERVER_DHCPV6_OPTIONS 属性,DHCP 中继代理也会丢弃该属性。

从 RADIUS 接收的子选项的优先级高于本地配置的信息。例如,如果主机名和位置在层次结构级别使用[edit forwarding-options dhcp-relay dhcpv6 relay-option-vendor-specific]语句配置host-name,并且在子选项 1 和 4 中从 RADIUS 接收,则使用 RADIUS 值。

从 RADIUS 消息中排除 VSA

您可以使用以下示例中所示的 exclude 语句将这些 VSA 中的任何一个排除在发送之外:

适用于 DHCPv4 和 DHCPv6 订阅者的专用会话数据库和供应商特定属性

动态主机配置协议 (DHCP) 服务器可以充当 DHCPv4 和 DHCPv6 订阅者的 DHCP 本地服务器、DHCP 客户端或 DHCP 中继代理。

目前,某些客户端参数(例如 DHCPv4 和 DHCPv6 数据包标头)无法与 RADIUS 服务器之间传递。从 Junos OS 17.4 版开始,我们进行了增强,以促进 DHCP 服务器(DHCPv4 和 DHCPv6)与 RADIUS 服务器之间更好的通信。客户端参数保存在会话数据库中并发送到 RADIUS 服务器;而 RADIUS 服务器则会对客户端进行身份验证,并使用要发送回该客户端的选项进行响应。

客户端选项

客户端选项可以在多个位置(如 DHCPv4 或 DHCPv6 服务器)或 RADIUS 服务器中配置。如果客户端配置在多个位置可用,则配置详细信息的来源可能会发生冲突。如果发生此类冲突,将考虑以下优先顺序:

  • 通过供应商特定属性 (VSA) 从 RADIUS 服务器接收的选项

  • 通过相应的会话数据库从 RADIUS 服务器接收的选项

  • DHCP 服务器上存在的 DHCP 本地配置中的选项

作为上述优先级的示例,请考虑 DHCPv4 租用时间的情况。如果从 RADIUS 服务器返回该选项(存储在 RADIUS 服务器中的 VSA),则 AUTHD_ATTR_SESSION_TIMEOUT 会优先选择该选项。如果未返回此选项,则在 DHCPv4 的相应会话数据库中优先选择选项 51。如果也未返回该选项,则该选项源自 DHCP 本地配置。

同样,对于 DHCPv6 租期,将优先级从 RADIUS 服务器提供 AUTHD_ATTR_SESSION_TIMEOUT 给 VSA。如果不存在,则 AUTHD_ATTR_SESSION_TIMEOUT 优先选择 RADIUS 源选项 valid-lifetimepreferred-lifetime 。如果该选项也不可用,则该选项源自 DHCPv6 本地配置。

交换 DHCPv4 客户端、DHCPv4 服务器和 RADIUS 源选项

以下步骤说明了在 DHCPv4 客户端、DHCPv4 服务器和 RADIUS 服务器之间交换配置选项的过程:

  • DHCPv4 服务器收到来自 DHCPv4 客户端的 发现 消息。

  • DHCP 选项将保存到相应的会话数据库中。

    在 17.4R1 之前的 Junos OS 版本中,相同的属性用于存储 DHCPv4 和 DHCPv6 选项。但是,由于支持单会话 DHCP 双堆栈,因此 DHCPv4 和 DHCPv6 具有单独的会话数据库属性。

  • DHCP 报头信息保存在会话数据库中。

    将添加新的会话数据库属性来存储标头信息,并将此信息发送至 RADIUS 服务器进行身份验证。

  • 访问请求消息从 DHCPv4 服务器发送到 RADIUS 服务器,当从 RADIUS 服务器收到访问接受消息时,DHCPv4 选项将保存到相应的会话数据库属性并发送到客户端。

  • DHCPv4 服务器特定选项将添加到数据包中。

    注意:

    DHCPv4 服务器可以从本地配置获取请求选项和未经请求选项。因此,在添加选项时防止重复非常重要。

  • DHCPv4 租用信息是从 RADIUS 源的 DHCP Option 51 中提取的。

    相应的会话数据库属性用于检查选项 51(租期时间)是否由 RADIUS 提供。如果是,则提取属性值并将其保存在客户端数据结构中。如果不是由 RADIUS 提供,则属性值取自本地池配置或 DHCPv4 属性配置,这是一项现有功能。对选项 58(更新时间 (T1))和选项 59(重新结合时间 (T2))执行类似的检查。

  • 提供 消息 从 DHCPv4 服务器发送到 DHCPv4 客户端。

交换 DHCPv6 客户端、DHCPv6 服务器和 RADIUS 源选项

以下步骤说明了在 DHCPv6 客户端、DHCPv6 服务器和 RADIUS 服务器之间交换配置选项的过程:

  • DHCPv6 服务器收到来自 DHCP 客户端的 请求 消息。

  • DHCPv6 选项保存在 DHCPv6 服务器的会话数据库中。

    在 17.4R1 之前的 Junos OS 版本中,DHCPv6 选项保存在相应的会话数据库属性中。由于当前支持单会话 DHCP 双堆栈,因此需要使用单独的会话数据库属性来保存 DHCPv4 和 DHCPv6 选项。如果客户端是单会话双堆栈配置的一部分,则使用相应的 DHCPv6 选项会话数据库属性。DHCPv6 选项直接复制到会话数据库,不作任何更改,然后发送到 RADIUS 服务器。

    注意:

    DHCPv6 auth-option (选项 11)也是这些选项的一部分。

  • DHCPv6 消息标头将保存到会话数据库。

    将添加新的会话数据库属性来复制 DHCPv6 邮件标头。

  • 从 DHCPv6 服务器发送 访问请求 消息,而 DHCPv6 服务器又接收来自 RADIUS 服务器的 访问接受 消息。此消息包含存储在新会话数据库属性中的 RADIUS 源 DHCPv6 选项。

  • DHCPv6 租用信息从 RADIUS 源的 DHCPv6 选项中提取。

    如果是 DHCPv6,租用时间嵌入在选项 OPTION_IA_NAOPTION_IA_PD中。客户端租赁时间从 RADIUS 服务器中的这些值开始。如果 、 IA_PREFIXIA_NAIA_PD 选项不是源自 RADIUS,则IA_ADDRESS这些选项将取自本地池和委托池配置。

  • DHCPV6 服务器特定选项将添加到数据包中。

    注意:

    DHCPv6 服务器可以从本地配置中获取请求选项和未经请求选项。因此,在添加选项时防止重复非常重要。

  • 消息从 DHCPv6 服务器发送到 DHCPv6 客户端。

监控 RADIUS 服务器上配置的 DHCP 选项

目的

查看在 RADIUS 服务器上集中配置的以及使用瞻博网络 VSA 26-55 (DHCP 选项) 分发的 DHCP 选项的信息。

行动

要显示不透明 DHCP 选项的信息:

意义

DHCP 选项输出提供以下信息:

  • len 字段是消息中的十六进制值总数。

  • 十六进制值指定 DHCP 选项的类型、长度和值 (TLV),并转换为十进制以标识 DHCP 选项,如 RFC 2132 中所定义。

构成特定 DHCP 选项的十六进制值数量因选项的长度而异。例如,输出中指定的第一个 DHCP 选项包含三组十六进制值 (35 01 01)。第一个十六进制值 (35) 标识选项类型,第二个值 (01) 表示值条目的长度,即在这种情况下是一组十六进制值。第三个十六进制值 (01) 指定 DHCP 选项的值。

在第二个 DHCP 选项规范 (39 02 02 40) 中,十六进制值 39 是类型,长度 02 指定两组十六进制条目组成选项的值。因此,此选项规范使用四组十六进制条目;一个用于类型 (),39一个用于指定长度 (),02两个用于选项值 (02 40)。

第三个 DHCP 选项由十六进制值 3d 07 01 00 10 94 00 00 08指定。十六进制值 3d 是类型,后跟长度 (07),它指定接下来的七组十六进制条目构成选项的值。因此,此选项规范总共使用九组十六进制条目;一个用于类型 (),3d一个用于指定长度 (),07七个用于 DHCP 选项 ()01 00 10 94 00 00 08 的值。

表 2 更详细地介绍了前两个选项。

表 2:DHCP 选项说明

选项

类型

长度

value

35 01 01

35 = 十进制 53(RFC 2132 中的代码 53 是 DHCP 消息类型选项)

01 = 选项的长度是一组十六进制值(列表中的下一组)

01 = RFC 2132 中描述的消息类型的值。代码 01 指定消息类型 DHCPDISCOVER。

39 02 02 40

39 = 十进制 57(代码 57 是“最大 DHCP 消息大小”选项)

02 = 选项的长度是两组十六进制值(列表中接下来的两组)

0240 = 转换为 576 个八位位组的长度

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。

发布
描述
18.3R1
从 Junos OS 18.3R1 版开始,您可以在 DHCPv6 中继身份验证期间使用 DHCPv6 选项 VSA (26-207) 区分不同类别的用户。
17.4R1
从 Junos OS 17.4R1 版开始,参数交换得到了增强,引入了几个新的供应商特定属性 (VSA) 以及对现有 DHCP 选项 VSA (26-55) 的更改。