从 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-Options) 来分发源自 RADIUS 的 DHCP 选项。RADIUS 服务器在订阅者身份验证或 DHCP 客户端身份验证期间服务器返回的 Access-Accept 消息中包括 VSA 26-55。RADIUS 服务器将 Access-Accept 消息发送到 RADIUS 客户端,然后发送到 DHCP 本地服务器以返回给 DHCP 订阅者。RADIUS 服务器可以在单个 Access-Accept 消息中包含 VSA 26-55 的多个实例。RADIUS 客户端连接多个实例,并将结果用作单个实例。
启用订阅者管理(DHCP 管理)无需 CLI 配置即可使用集中配置的 DHCP 选项 — 该过程由 RADIUS 访问-接受消息中存在 VSA 26-55 触发。
为 DHCP 客户端构建提供数据包时,DHCP 本地服务器使用以下顺序:
处理作为单独的 RADIUS 属性传递的任何 RADIUS 配置的参数;例如,RADIUS 属性 27(会话超时)。
处理任何客户端来源的参数;例如,RADIUS 属性 53(DHCP 消息类型)和 54(服务器标识符)。
追加(不执行任何处理)从 RADIUS 服务器接收的 VSA 26-55 中包含的不透明 DHCP 选项字符串。
客户端源选项配置
除了支持直接在 RADIUS 服务器上集中配置 DHCP 选项(RADIUS 源选项)之外,订阅者管理(DHCP 管理)还支持传统的客户端源选项配置,其中路由器(交换机的)DHCP 组件将选项发送到 RADIUS 服务器。DHCP 本地服务器和 DHCP 中继代理均支持客户端源的 DHCP 选项方法;但是,源自 RADIUS 的中央配置方法仅在 DHCP 本地服务器上受支持。RADIUS 源和客户端源方法均支持 DHCPv4 和 DHCPv6 订阅者(客户端)。
您可以在 DHCP 本地服务器上同时使用 RADIUS 源和客户端源方法。但是,您必须确保中心配置方法不包含覆盖客户端源 DHCP 选项的选项,因为这可能会导致不可预测的结果。
RADIUS 源 DHCP 选项的数据流
图 1 显示了订阅者管理(DHCP 管理)在为订阅者(DHCP 客户端)配置 DHCP 选项时使用的过程。

以下常规顺序介绍了订阅者管理(DHCP 管理)使用源自 RADIUS 的 DHCP 选项和 VSA 26-55 配置 DHCP 订阅者(客户端)时的数据流:
订阅者(DHCP 客户端)向 DHCP 本地服务器发送 DHCP 发现消息(或 DHCPv6 请求消息)。该消息包含客户端源的 DHCP 选项。
DHCP 本地服务器使用 Junos OS RADIUS 客户端启动身份验证。
RADIUS 客户端代表订阅者(DHCP 客户端)向外部 RADIUS 服务器发送 Access-Request 消息。该消息包含订阅者(DHCP 客户端的)客户端源 DHCP 选项。
外部 RADIUS 服务器通过向 RADIUS 客户端发送 Access-Accept 消息来做出响应。Access-Accept 消息包括 VSA 26-55 中源自 RADIUS 的不透明 DHCP 选项。
RADIUS 客户端将 DHCP 选项字符串发送到 DHCP 本地服务器。如果有多个 VSA 26-55 实例,RADIUS 客户端会先将它们组合成一个选项字符串。
DHCP 本地服务器将所有选项处理到 DHCP 提供(或 DHCPv6 回复)消息中,但源自 RADIUS 的 VSA 26-55 DHCP 选项除外。处理完所有其他选项后,DHCP 本地服务器会将未修改的 VSA 26-55 DHCP 选项追加到消息,并将消息发送到订阅者(DHCP 客户端)。
订阅者(DHCP 客户端)配置了 DHCP 选项。
订阅者(DHCP 客户端)收到 DHCP 选项后,将进行以下操作:
核算 — RADIUS 客户端向 RADIUS 服务器发送 Acct-Start 和 Interim-Accounting 请求,包括 VSA 26-55 中源自 RADIUS 的 DHCP 选项。默认情况下,DHCP 选项包含在计费请求中。
续订 — 订阅者(DHCP 客户端)续订时,将在 DHCP 续订(或 DHCPv6 ACK)消息中返回缓存的 DHCP 选项值。在续订周期内无法修改最初分配的 DHCP 选项。
注销 — 当订阅者(DHCP 客户端)注销时,RADIUS 客户端会向 RADIUS 服务器发送 Acct-Stop 消息,包括来自 RADIUS 的 VSA 26-55。
多个 VSA 26-55 实例配置
VSA 26-55 支持的最大大小为 247 字节。如果 RADIUS 源的 DHCP 选项字段大于 247 字节,则必须将该字段分解并手动配置 VSA 26-55 的多个实例,以便 RADIUS 服务器返回。对选项字段使用多个实例时,必须按照 RADIUS 客户端重新组合分段的顺序将实例放置在数据包中。片段可以是 247 字节或更小的任何大小。
为了便于配置和管理 DHCP 选项,您可能希望每个 VSA 26-55 实例有一个 DHCP 选项,而不考虑选项字段的大小。
当 RADIUS 客户端在向 RADIUS 服务器的计费请求中返回重新组合的不透明选项字段时,客户端将使用 247 字节的分段。如果您最初创建的实例小于 247 字节,则返回的片段可能与您最初在 RADIUS 服务器上配置的片段不同。
如果将 Steel-Belted Radius (SBR) 配置为支持多个 VSA 26-55 实例,请确保使用 RO
订阅者管理 RADIUS 字典文件中的标志指定 VSA 26-55。 R
该值表示多值回复属性, O
该值表示有序属性。
无法集中配置的 DHCP 选项
表 1 显示了不得在 RADIUS 服务器上集中配置的 DHCP 选项。
DHCP 选项 |
选项名称 |
评论 |
---|---|---|
选项 0 |
焊盘选项 |
不支持。 |
选项 51 |
IP 地址租用时间 |
值由 RADIUS 属性 27 (Session-Timeout) 提供。 |
选项 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-Options VSA (26-207) 用于与 RADIUS 服务器交换 DHCPv6 选项。在早于 Junos OS 17.4R1 版的版本中,DHCPv6 选项包含在 DHCP-Options VSA (26-55) 中的 DHCPv4 选项中。
从 DHCPv6 客户端发送到 DHCPv6 服务器的选项值与从 DHCPv6 服务器发送到 DHCPv6 客户端的值分开保存在会话数据库中。
如果 DHCPv6 选项太大而无法放入一个 VSA,则会在 RADIUS 数据包中将其拆分为多个连续的 VSA。在这种情况下,选项将在 VSA 大小限制处拆分,而不是在类型长度值 (TLV) 边界处拆分。
如果 RADIUS 访问-接受消息中包含 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 访问-接受消息中包含 VSA 的多个实例,则这些实例将串联为单个块并存储在会话数据库中,而无需检查 TLV 的有效性。
DHCP 报头 VSA (26-208):
DHCP-Header VSA (26-208) 将 DHCPv4 数据包标头传送到 RADIUS 服务器。标头信息用于实例化动态用户接口。
VSA 仅在 RADIUS 访问请求消息中被允许,并存储在会话数据库中。
DHCPv6-Head VSA (26-209):
DHCPv6 报头 VSA (26-209) 将 DHCPv6 数据包标头传送到 RADIUS 服务器。标头信息用于实例化动态用户接口。
VSA 仅在 RADIUS 访问请求消息中被允许,并存储在会话数据库中。
acct-request-reason 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 Option 17 和 VSA 26-207 区分用户类别
从 Junos OS 18.3R1 版开始,您可以在 DHCPv6 中继身份验证期间使用 DHCPv6-Options 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 服务器返回的访问-接受消息中传达订阅者类信息。VSA 的内容在会话数据库属性 SDB_SERVER_DHCPV6_OPTIONS 中从 AAA 进程传递到 DHCP 进程。DHCPv6 中继代理从 SDB 属性中提取信息,并将其放在 DHCPv6 选项 17 中。随后,中继代理会将选项 17 传递给 Relay-Forward 标头中的 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 收到的子选项的优先级高于本地配置的信息。例如,如果主机名和位置配置了 host-name
层次 [edit forwarding-options dhcp-relay dhcpv6 relay-option-vendor-specific]
结构级别的语句,并且在子选项 1 和 4 中从 RADIUS 接收,则使用 RADIUS 值。
从 RADIUS 消息中排除 VSA
您可以使用语句从发送 exclude
中排除任何这些 VSA,如以下示例所示:
[edit access profile profile-name radius attributes] user@host# set exclude acct-request-reason [accounting-start | accounting-stop] user@host# set exclude dhcp-header [access-request] user@host# set exclude dhcpv6-header [access-request] user@host# set exclude dhcpv6-options [access-request | accounting-start | accounting-stop]
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 租用时间的情况。 AUTHD_ATTR_SESSION_TIMEOUT
如果从 RADIUS 服务器返回选项(存储在 RADIUS 服务器中的 VSA),则会为其提供优先权。如果未返回此选项,则在相应的会话数据库中优先选择 DHCPv4 的选项 51。如果也未返回该选项,则该选项源自 DHCP 本地配置。
同样,对于 DHCPv6 租用时间,RADIUS 服务器中的 VSA 将获得优先权 AUTHD_ATTR_SESSION_TIMEOUT
。如果 AUTHD_ATTR_SESSION_TIMEOUT
不存在,则 RADIUS 源选项 valid-lifetime
或 preferred-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_NA
和OPTION_IA_PD
中。客户端租用时间从 RADIUS 服务器中的这些值开始。如果、IA_PREFIX
、IA_NA
或IA_PD
选项IA_ADDRESS
不是源自 RADIUS,则这些选项取自本地池和委托池配置。特定于 DHCPV6 服务器的选项将添加到数据包中。
注意:DHCPv6 服务器可以从本地配置获取请求和未经请求的选项。因此,在添加选项时防止重复非常重要。
播 发 消息从 DHCPv6 服务器发送到 DHCPv6 客户端。
监控 RADIUS 服务器上配置的 DHCP 选项
目的
查看在 RADIUS 服务器上集中配置并使用瞻博网络 VSA 26-55 (DHCP-Options) 分发的 DHCP 选项的信息。
行动
要显示不透明 DHCP 选项的信息,请执行以下操作:
user@host> show subscribers detailType: DHCP IP Address: 192.168.9.7 IP Netmask: 255.255.0.0 Logical System: default Routing Instance: default Interface: demux0.1073744127 Interface type: Dynamic Dynamic Profile Name: dhcp-prof-23 MAC Address: 00:00:5E:00:53:98 State: Active Radius Accounting ID: jnpr :2304 Session Timeout (seconds): 3600 Idle Timeout (seconds): 600 Login Time: 2011-08-25 14:43:52 PDT DHCP Options: len 52 35 01 01 39 02 02 40 3d 07 01 00 10 94 00 00 08 33 04 00 00 00 3c 0c 15 63 6c 69 65 6e 74 5f 50 6f 72 74 20 2f 2f 36 2f 33 2d 37 2d 30 37 05 01 06 0f 21 2c
意义
DHCP Options: len 52 35 01 01 39 02 02 40 3d 07 01 00 10 94 00 00 08 33 04 00 00 00 3c 0c 15 63 6c 69 65 6e 74 5f 50 6f 72 74 20 2f 2f 36 2f 33 2d 37 2d 30 37 05 01 06 0f 21 2c
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
),它指定接下来的七组十六进制条目组成选项的值。因此,此选项规范总共使用了九组十六进制条目;1 表示类型 (3d
),1 表示指定长度 (07
),7 表示 DHCP 选项 (01 00 10 94 00 00 08
) 的值。
表 2 更详细地描述了前两个选项。
选择 |
类型 |
长度 |
价值 |
---|---|---|---|
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 个八位位组的长度 |
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。