五级和四级异构网络
四级和五级异构网络中的CoS节点整形
异构订阅者访问模型具有以下特征:
它既包括住宅用户,也包括企业用户。这两种用户类型通常都是 PPPoE 用户。
接入技术可以是传统媒体或共享媒体,或两者兼而有之。共享媒体访问包括通过 DPU-C 的粘合铜缆连接或通过 DPU-P 的光纤连接。DPU-C 和 DPU-P 是相应介质类型的分配单元。常规接入网络不包括 DPU-C 或 DPU-P。
流量整形取决于分层 CoS。网络可以使用四级调度器层次结构和/或五级调度器层次结构。
图 1 总结了 CoS 如何在五级调度器层次结构中塑造关键节点。整形基于 DSL 和 PON TLV 的调整速率,或基于动态客户端配置文件配置中的流量控制配置文件。CoS 调整控制配置文件指定应用于给定节点的整形速率的来源。
以下列表按访问类型和订阅者类型描述了 图 1 中五级层次结构的 CoS 调度器节点。
对于传统接入,住宅用户:
第 1 级节点 — 对应于面向接入的物理接口。
级别 2 节点 — 对应于保留 L2 节点的动态接口集。此父接口集基于底层物理接口。该名称通过附加“-underlying”从预定义变量 $junos-phy-ifd-underlying-intf-set-name 派生而来。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
级别 3 节点 — 对应于保留级别 3 节点的动态接口集。此子接口集基于物理接口。名称派生自预定义变量 $junos-phy-ifd-intf-set-name。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
第 4 级节点 — 对应于订阅者的 PPPoE 会话逻辑接口。流量整形由实际数据速率下行 TLV (0x82) 决定。
级别 5 节点 — 对应于订阅者的调度队列。
对于常规接入,企业订阅者:
第 1 级节点 — 对应于面向接入的物理接口。
级别 2 节点 — 对应于保留 L2 节点的动态接口集。此父接口集基于底层物理接口。该名称派生自预定义变量 $junos-phy-ifd-underlying-intf-set-name,方法是附加 “-underlying”。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
级别 3 节点 — 对应于保留 L3 节点的动态接口集。此子接口集基于物理接口和 VLAN 标记。集名的派生方式有以下两种:
如果已配置,则由 RADIUS 服务器的 Access-Accept 中的 Qos-Set-Name VSA (26–4874–130) 提供。
它是通过将 SVLAN 标记附加到 $junos-phy-ifd-interface-set-name 预定义变量创建的。
流量整形由实际数据速率下行 TLV (0x82) 决定。
第 4 级节点 — 对应于用户的动态 PPPoE 会话逻辑接口或静态 VLAN 逻辑接口。
级别 5 节点 — 对应于订阅者的调度队列。
对于共享媒体访问,住宅订阅者:
第 1 级节点 — 对应于面向接入的物理接口。
级别 2 节点 — 对应于保留 L2 节点的动态聚合接口集。此父接口集基于 Access-Aggregation-Circuit-Id-ASCII TLV 0x03 中的回传标识符,该标识符表示 PON 树连接。名称派生自预定义变量 $junos-aggregation-interface-set-name。流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 PON-Tree-Maximum-Data-Rate-Downstream TLV (0x98) 决定。
级别 3 节点 — 对应于保留 L3 节点的动态聚合接口集。此子接口集基于 Access-Aggregation-Circuit-ID-ASCII TLV (0x03) 中的回传标识符,该标识符表示 PON 树连接。该名称通过附加“-default”从预定义变量 $junos-aggregation-interface-set-name 派生而来。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
第 4 级节点 — 对应于订阅者的 PPPoE 会话逻辑接口。流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 ONT/ONU-Peak-Data-Rate-Downstream TLV (0x94) 决定。
级别 5 节点 — 对应于订阅者的调度队列。
对于共享媒体访问,企业订阅者:
第 1 级节点 — 对应于面向接入的物理接口。
级别 2 节点 — 对应于保留 L2 节点的动态聚合接口集。此父接口集基于 Access-Aggregation-Circuit-Id-ASCII TLV (0x03) 中的回传标识符,该标识符表示 PON 树连接。名称派生自预定义变量 $junos-aggregation-interface-set-name。流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 PON-Tree-Maximum-Data-Rate-Downstream TLV (0x98) 决定。
级别 3 节点 — 对应于保留 L3 节点的动态接口集。此子接口集基于物理接口和 VLAN 标记。集名的派生方式有以下两种:
如果已配置,则由 RADIUS 服务器的 Access-Accept 中的 Qos-Set-Name VSA (26–4874–130) 提供。
它是通过将 SVLAN 标记附加到 $junos-phy-ifd-interface-set-name 预定义变量创建的。
流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 ONT/ONU-Peak-Data-Rate-Downstream TLV (0x94) 决定。
第 4 级节点 — 对应于用户的动态 PPPoE 会话逻辑接口或静态 VLAN 逻辑接口。
级别 5 节点 — 对应于订阅者的调度队列。
图 2 总结了 CoS 如何在四级调度器层次结构中塑造关键节点。整形基于 DSL 和 PON TLV 产生的调整速率,或基于动态客户端配置文件配置中的流量控制配置文件。CoS 调整控制配置文件指定应用于给定节点的整形速率的来源。
以下列表按访问类型和订阅者类型描述了 图 2 中四级层次结构的 CoS 调度器节点。
对于传统接入,住宅用户:
第 1 级节点 — 对应于面向接入的物理接口。
第 2 级节点 — 对应于保留第 2 级节点的动态接口集。此接口集基于物理接口。名称派生自预定义变量 $junos-phy-ifd-intf-set-name。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
第 3 级节点 — 对应于订阅者的 PPPoE 会话逻辑接口。流量整形由实际数据速率下行 TLV (0x82) 决定。
级别 4 节点 — 对应于订阅者的调度队列。
对于常规接入,企业订阅者:
第 1 级节点 — 对应于面向接入的物理接口。
级别 2 节点 — 对应于保留 L2 节点的动态接口集。此接口集基于物理接口和 VLAN 标记。集名的派生方式有以下两种:
如果已配置,则由 RADIUS 服务器的 Access-Accept 中的 Qos-Set-Name VSA (26–4874–130) 提供。
它是通过将 SVLAN 标记附加到 $junos-phy-ifd-interface-set-name 预定义变量创建的。
流量整形由实际数据速率下行 TLV (0x82) 决定。
第 3 级节点 — 对应于用户的动态 PPPoE 会话逻辑接口或静态 VLAN 逻辑接口。
级别 4 节点 — 对应于订阅者的调度队列。
对于共享媒体访问,住宅订阅者:
第 1 级节点 — 对应于面向接入的物理接口。
第 2 级节点 — 对应于保留第 2 级节点的动态聚合接口集。此接口集基于 Access-Aggregation-Circuit-ID-ASCII TLV (0x03) 中的回传标识符,该标识符表示 PON 树连接。名称派生自预定义变量 $junos-aggregation-interface-set-name。流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 PON-Tree-Maximum-Data-Rate-Downstream TLV (0x98) 决定。
第 3 级节点 — 对应于订阅者的 PPPoE 会话逻辑接口。流量整形由绑定铜缆连接的实际数据速率下游 TLV (0x82) 和 PON 树连接的 ONT/ONU-Peak-Data-Rate-Downstream TLV (0x94) 决定。
级别 4 节点 — 对应于订阅者的调度队列。
四级共享媒体接入网络不支持企业订阅者。
CuTTB 用例拓扑和 CoS 层次结构
图 3 显示了一个异构 CuTTB 拓扑,其中包括共享介质(通过 DPU-C 的粘合铜缆)和 PPPoE 用户的传统(非粘合铜缆)接入。
此拓扑具有以下订阅者:
两个住宅用户 2 和 3 以及一个企业用户 4 可以通过 DPU-C 到 MSAN,然后再到 BNG,以共享媒体方式访问网络。
两个住宅用户 10 和 11 可以通过 MSAN 对 BNG 进行常规网络访问。
住宅用户 3 当前未登录。
当住宅用户 2 和企业用户 4 登录时:
PPPoE 向 DPU-C 发送一条 PADI 消息,其中包括每个 DPU-C 的外部 VLAN 标记。
DPU-C 向每个订户的 BNG 发送 ANCP Port Up 消息。消息中的 ANCP TLV 可标识接入线路、订阅者、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
ASCII 标识符 (TLV 0x03) 以 # 字符开头,表示该值的剩余部分标识回传(绑定铜缆、共享媒体)线路。两个用户的 TLV 0x03 是相同的,因为它们通过相同的 DPU-C 连接。
DPU-C 向 MSAN 发送每个订阅者的 PADI 消息。PADI 传达的 PPPoE-IA 标签标识与 ANCP TLV 相同的属性。
MSAN 向 BNG 发送带有 PPPoE 标记的 PADR 消息。MSAN 还通过向 MSAN 到 DPU-C 连接发送 ANCP Port Up 消息来打开到 BNG 的 ANCP 会话。TLV 0x81 和 0x82 中的速率是 MSAN 到 DPU-C 线路的值,由 L2 接口集表示。换言之,这些是保税铜线本身的费率,而不是用户接入线的费率。TLV 0x03值也在 TLV 0x02 中报告,以指示粘合的铜线。
当住宅用户 10 和 11 登录时:
PPPoE 为每个用户向 MSAN 发送一条 PADI 消息。PADI 为各个用户接入线路传送 PPPoE-IA 标签。
MSAN 向 BNG 发送一条带有每个用户线路的 PPPoE 标记的 PADR 消息。
MSAN 还向每个订阅者的 BNG 发送 ANCP Port Up 消息。消息中的 ANCP TLV 可标识接入线路、订阅者、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
由于这些订阅者使用常规访问,而不是通过 DPU-C 进行的共享媒体访问,因此 ASCII 标识符 (TLV 0x03) 不以 # 字符开头。在这种情况下,该值只是 TLV 0x06中传达的二进制值的 ASCII 等效项。
图 4 显示了与 图 3 中的 CuTTB 拓扑相对应的五级 CoS 层次结构。
以下节是用于创建 2 级和 3 级接口集的用例配置的一部分。该 stacked-interface-set
语句将第 2 级接口集设置为 $junos-aggregation-interface-set-name 预定义变量。该节还将第 3 级接口指定为 $junos-interface-set-name。它将级别 2 集建立为级别 3 集的父级。
dynamic-profiles test-prof interfaces { stacked-interface-set { interface-set "$junos-aggregation-interface-set-name" { interface-set $junos-interface-set-name; } } } }
该 predefined-variable-defaults
节使用变量表达式来设置条件,以建立级别 2 和级别 3 接口集的名称。仅当 RADIUS 未提供 $junos-aggregation-interface-set-name 和 $junos-interface-set-name 的值时,才使用默认值。
dynamic-profiles test-prof predefined-variable-defaults { aggregation-interface-set-name equals "$junos-phy-ifd-underlying-intf-set-name"; interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)"; default-interface-set-name equals "ifZero($junos-interface-set-name, ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default'))"; } }
以下列表介绍了 CuTTB 拓扑的分层 CoS 调度器节点。它解释了接口集的名称是如何从预定义变量派生的。
级别 1 对应于所有订阅者面向访问的物理接口 xe-1/1/0。
级别 2 对应于将子接口集作为其成员的父接口集。接口集的名称由动态配置文件中的 $junos-aggregation-interface-set-name 预定义变量提供。
TEST-X2CTTB 是为所有共享媒体访问用户设置的 2 级接口。其成员是住宅用户 2 和 3 以及企业用户 4 的 3 级接口集。
TLV 0x03包含 # 字符,用于将行标识为共享行。$junos-aggregation-interface-set-name 取 TLV 0x03 的值。
xe-1/1/0-underlying 是为常规访问设置的 2 级接口。其成员是为住宅用户 10 和 11 设置的第 3 级接口。
TLV 0x03 不包含 # 字符,因此无法标识共享行。$junos-aggregation-interface-set-name 动态取自 $junos-phy-ifd-underlying-intf-set-name。$junos-phy-ifd-underlying-intf-set-name 的值只是带有后缀“-underlying”的物理接口名称。
级别 3 对应于以订阅者逻辑接口作为其成员的子接口集。接口集的名称由动态配置文件中的 $junos-interface-set-name 预定义变量提供。
TEST-X2CTTB-default 是为住宅用户 2 和 3 设置的第 3 级接口。这些订阅者被标识为住宅,因为 RADIUS 服务器未返回 VSA 26-4874-130 QoS-Set-Name。TLV 0x03包含 # 字符,用于将行标识为共享行。$junos-interface-set-name 设置为 $junos-aggregation-interface-set-name 的值,后缀为“default”。
xe-1/1/0-110 是为企业订阅者 4 设置的 3 级接口。此订阅者被标识为企业,因为 RADIUS 服务器返回了 VSA 26-4874-130。TLV 0x03包含 # 字符,用于将行标识为共享行。$junos-interface-set-name 设置为 VSA 26-4874-130 的值。VSA 值是物理接口名称 ($junos-phy-ifd-intf-set-name) 和外部 VLAN 标记的串联。
xe-1/1/0 是为使用传统接入的住宅用户 10 和 11 设置的 3 级接口。这些订阅者被标识为住宅,因为 RADIUS 服务器未返回 VSA 26-4874-130。$junos-interface-set-name 设置为 $junos-phy-ifd-intf-set-name 的值。
级别 4 对应于各个订阅者的逻辑接口。这包括面向住宅和商业用户的 PPPoE 逻辑接口,以及面向企业用户的静态 VLAN 逻辑接口。
级别 5 对应于每个订阅者的调度队列,无论订阅者类型或访问类型如何。每个订阅者存在一个或多个队列,用于提供订阅者服务。
FTTB/FTTH 用例拓扑和 CoS 层次结构
图 5 显示了异构 FTTB/FTTH 拓扑,其中包括共享媒体(通过 DPU-P 的 PON)和 PPPoE 用户的传统(直接连接)接入。
此拓扑具有以下订阅者:
两个住宅用户 2 和 3 以及一个企业用户 4 可以通过 DPU-P 到 OLT,然后到 BNG 的共享媒体访问网络。这些是 FTTB 用户。
两个住宅用户 10 和 11 可以通过对 BNG 的同一 OLT 进行常规网络访问。这些是 FTTH 用户。
所有 FTTB 和 FTTH 用户都通过 OLT 上的同一 PON 树连接到 BNG。
住宅用户 3 当前未登录。
当住宅用户 2 和企业用户 4 登录时:
PPPoE 向 DPU-P 发送一条 PADI 消息,其中包括每个 DPU-P 的外部 VLAN 标记。
DPU-P 向每个用户的 BNG 发送 ANCP Port Up 消息。消息中的 ANCP TLV 可标识接入线路、订阅者、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
ASCII 标识符 (TLV 0x03) 以 # 字符开头,表示该值的剩余部分标识回传(PON 树)行。两个用户的 TLV 0x03是相同的,因为它们通过同一个 PON 树连接。
DPU-P 向 OLT 发送每个用户的 PADI 消息。PADI 传达的 PPPoE-IA 标签标识与 ANCP TLV 相同的属性。
OLT 向 BNG 发送带有 PPPoE 标记的 PADR 消息。OLT 还通过向 OLT 到 DPU-P 连接发送 ANCP Port Up 消息来打开到 BNG 的 ANCP 会话。TLV 0x81 和 0x82 中的速率是 OLT 到 DPU-P 线路的值,由 L2 接口集表示。换句话说,这些是 PON 树本身的速率,而不是用户接入线路的速率。尽管此用例示例显示 TLV 0x03值也会在 TLV 0x02 中报告,以指示 PON 树线,但这并不是 PON 网络的要求。
注意:该网络的 FTTB 部分将 G.fast DSL 用户连接到 PON 树共享媒体回传。因此,DPU-P 报告这些用户的 DSL TLV,而不是 PON TLV。
当住宅用户 10 和 11 登录时:
PPPoE 为每个用户向 OLT 发送一条 PADI 消息。PADI 为各个用户接入线路传送 PPPoE-IA 标签。
OLT 向 BNG 发送一条带有每个用户线路的 PPPoE 标记的 PADR 消息。
OLT 还向每个订阅者的 BNG 发送 ANCP Port Up 消息。消息中的 ANCP TLV 可标识接入线路、订阅者、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
ASCII 标识符 (TLV 0x03) 以 # 字符开头,表示该值的剩余部分标识回传(光纤 PON 树、共享媒体)线路。两个用户的 TLV 0x03 是相同的,因为它们通过相同的 DPU-P 连接。
由于用户 10 和 11 与 FTTB 用户连接到同一 PON 树,因此 ASCII 标识符 (TLV 0x03) 也以 # 字符开头,表示该值的其余部分标识回传(光纤 PON 树、共享媒体)线路。两个订阅者的 TLV 0x03是相同的。
图 6 显示了与 图 5 中的 FTTB/FTTH 拓扑相对应的五级 CoS 层次结构。
以下节是用于创建 2 级和 3 级接口集的用例配置的一部分。该 stacked-interface-set
语句将第 2 级接口集设置为 $junos-aggregation-interface-set-name 预定义变量。该节还将第 3 级接口指定为 $junos-interface-set-name。它将级别 2 集建立为级别 3 集的父级。
dynamic-profiles test-prof interfaces { stacked-interface-set { interface-set "$junos-aggregation-interface-set-name" { interface-set $junos-interface-set-name; } } } }
该 predefined-variable-defaults
节使用变量表达式来设置条件,以建立级别 2 和级别 3 接口集的名称。仅当 RADIUS 未提供 $junos-aggregation-interface-set-name 和 $junos-interface-set-name 的值时,才使用默认值。
dynamic-profiles test-prof predefined-variable-defaults { aggregation-interface-set-name equals "$junos-phy-ifd-underlying-intf-set-name"; interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)"; default-interface-set-name equals "ifZero($junos-interface-set-name, ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default'))"; } }
以下列表介绍了 FTTB/FTTH 拓扑的分层 CoS 调度器节点。它解释了接口集的名称是如何从预定义变量派生的。
级别 1 对应于所有订阅者面向访问的物理接口 xe-1/1/0。
级别 2 对应于将子接口集作为其成员的父接口集。接口集的名称由动态配置文件中的 $junos-aggregation-interface-set-name 预定义变量提供。
TEST-X2PON 是为所有 PON 用户(包括常规接入和 DPU-P 接入)设置的 2 级接口。其成员是为 FTTB/FTTH 住宅用户设置的 3 级接口集和为商业用户 4 设置的 3 级接口。TLV 0x03包含 # 字符,用于将 PON 树线标识为回传。$junos-aggregation-interface-set-name 取 TLV 0x03 的值。
级别 3 对应于将用户逻辑接口作为其成员的接口集。
TEST-X2PON 默认值是为 FTTB 住宅用户 2 和 3 以及 FTTH 住宅用户 10 和 11 设置的 3 级接口。这些用户都使用相同的 PON 树,因此包含在相同的接口集中。
这些订阅者被标识为住宅,因为 RADIUS 服务器未返回 VSA 26-4874-130 QoS-Set-Name。TLV 0x03包含 # 字符,用于将 PON 树线标识为回传。$junos-interface-set-name 设置为 $junos-aggregation-interface-set-name 的值,后缀为“default”。
xe-1/1/0-110 是为企业订阅者 4 设置的第 3 级接口,它使用共享媒体访问。
此订阅者被标识为企业,因为 RADIUS 服务器返回了 VSA 26-4874-130。TLV 0x03包含 # 字符,用于将 PON 树线标识为回传。$junos-interface-set-name 设置为 VSA 26-4874-130 的值。VSA 值是物理接口名称 ($junos-phy-ifd-intf-set-name) 和外部 VLAN 标记的串联。
级别 4 对应于各个订阅者的逻辑接口。这包括面向住宅和商业用户的 PPPoE 逻辑接口,以及面向企业用户的静态 VLAN 逻辑接口。
级别 5 对应于每个订阅者的调度队列,无论订阅者类型或访问类型如何。每个订阅者存在一个或多个队列,用于提供订阅者服务。
自动创建企业用户接口集
对于接入网络中的企业订户,四级调度器层次结构使用静态接口集来表示订户接入线路。接口集的成员是静态 VLAN 逻辑接口。此配置由可扩展订阅者服务管理器 (ESSM) 操作脚本 (op-scripts) 执行。
op-scripts 基于用户接口的外部 VLAN 标记来命名,因为每个订阅者的标记都是唯一的。接口集名称的格式 physical_interface_name为 -outer_vlan_tag。例如,以太网接口 ge-1/1/0 如果具有外部标记为 111 的双标记 VLAN 接口,则接口集名称为 ge-1/1/0-111。此格式与 $junos-svlan-interface-set-name 预定义变量使用的格式相同。
在企业订户的五级调度器层次结构中,每个业务会话都包括一个动态 PPPoE 控制会话(因此也包括一个动态 PPPoE 逻辑接口)和两个或更多静态商业 VLAN 逻辑接口。这些接口需要整形为接口集中的聚合。无法将动态逻辑接口分配给静态接口集。这意味着,这种部署设计需要为逻辑中间(级别 3)CoS 节点设置动态接口集,以容纳动态 PPPoE 逻辑接口和静态接口。
建议使用动态接口集为四级和五级层次结构提供统一的解决方案。此方法可确保所有逻辑接口(包括动态接口和静态接口)都是同一接口集的成员。这不是必需的。您只能继续为四级层次结构中的企业订阅者配置静态接口集。
在订阅者配置期间,op-scripts 需要引用业务订阅者动态接口集名称。这意味着动态接口集名称的格式必须与脚本用于静态接口集的格式相同。接口集名称由 RADIUS 服务器在用户身份验证期间提供,因为服务器必须确定登录的用户是企业用户还是住宅用户。这意味着您必须配置 RADIUS 软件来指定为每个订阅者设置的接口集。此要求会增加运维的初始配置和维护配置开销,尤其是当您的网络扩展到更多订阅者时。
从 Junos OS 19.3R1 版开始,您可以将 BNG 配置为动态创建接口集名称,并在订阅者的 Access-Request 消息中向 RADIUS 服务器建议该名称。此方法降低了 RADIUS 配置的复杂性,因为您不必配置 RADIUS 软件来为每个用户指定接口集。要为企业订阅者动态创建接口集名称,请在[edit protocols ppp-service]
层次结构级别使用source-interface-set-at-login svlan
语句。
BNG 提议的接口集名称由瞻博网络 VSA, Qos-Set-Name (26-130) 在 RADIUS 访问请求消息中携带。集合名称包含附加了 VLAN 标记的面向访问的物理接口的名称。这与 op 脚本使用的格式相同:
外部 VLAN 标记用于双标记 VLAN。对于 xe-1/1/0 上带有 VLAN 标记 (110,7) 的企业订阅者,名称格式如下:
XE-1/1/0-110
单独 VLAN 标记用于单标记 VLAN。当 CPE 设备直接连接到接入节点时,使用单标记 VLAN。对于 xe-2/2/1 上带有 VLAN 标记 (33) 的企业订阅者,名称采用以下格式:
XE-2/2/1-33
订阅者登录时,RADIUS 服务器将评估访问请求并确定订阅者是企业还是住宅:
当 RADIUS 服务器确定订阅者是企业订阅者时,它会将 Access-Accept 消息中名称的 VSA 返回给 BNG,其中该名称用于为商业订阅者创建动态接口集。
如果 RADIUS 服务器在身份验证期间确定订阅者是住宅用户,则服务器不会在 Access-Accept 消息中返回 VSA。在这种情况下,动态 PPPoE IFL 将添加到默认动态接口集,以为五级层次结构保留 L3 CoS 节点,为四级层次结构保留 L2 CoS 节点。为住宅用户设置的动态接口始终解析为默认接口集。默认动态接口集取决于您如何使用动态配置文件中的表达式配置
predefined-variable-defaults
语句。有关配置默认值的信息,请参阅 使用预定义变量的动态级别 2 和级别 3 接口集命名 。
如何配置自动创建业务订阅者接口集
在异构接入网络中,您可以通过在 BNG 上设置 PPP,动态地为业务用户创建接口集名称,并在用户的 Access-Request 消息中向 RADIUS 服务器建议该名称,从而降低 RADIUS 配置的某些复杂性。此方法可降低复杂性,因为您不必在 RADIUS 服务器上配置所有可能的接口集名称。建议的名称由 Qos-Set-Name VSA (26-4874–130) 携带。
如果服务器确定订阅者是企业订阅者,则会将 Access-Accept 消息中的名称返回给 BNG。然后,BNG 上的 PPP 使用该名称为企业订户创建动态接口集。此接口集用于中间 CoS 节点;例如,五级层次结构中的第 3 级。此接口集包括企业用户 PPPoE IFL 和由 ESSMD 操作脚本创建的静态 VLAN IFL。它是第 2 级父接口集的子接口集。
有关如何形成接口集名称的信息,请参阅 自动创建企业订阅者接口集。
如果 RADIUS 服务器确定订阅者是住宅用户,则服务器不会在 Access-Accept 消息中返回 VSA。在这种情况下,动态 PPPoE IFL 将添加到默认动态接口集中。
要使用与 $junos-svlan-interface-set-name 相同的格式配置动态创建业务用户接口集,请执行以下操作:
启用 PPP 以进行动态创建。
[edit protocols ppp-service] user@host# set source-interface-set-at-loginsvlan
带有预定义变量的动态 2 级和 3 级接口集命名
在异构接入网络中,瞻博网络预定义变量提供 2 级和 3 级 CoS 节点的接口集名称:
级别 2 — $junos-aggregation-interface-set-name
级别 3 - $junos-interface-set-name
您可以在层次结构级别的动态客户端配置文件 [edit dynamic-profiles profile-name interfaces]
中指定以下变量:
stacked-interface-set { interface-set "$junos-aggregation-interface-set-name" { interface-set “$junos-interface-set-name”; } }
这些接口称为堆叠。级别 2 是父接口集,级别 3 是子接口集。
您可以选择性地为预定义变量配置默认值。默认值必须适合变量,例如整数或字母数字字符串。当变量未解析时,Junos OS 使用默认值,这意味着它没有值。预定义变量可能由于多种原因而无法解析,具体取决于访问类型(传统媒体或共享媒体)和订阅者类型(住宅或企业),例如:
Access-Aggregation-Circuit-Id-ASCII TLV (0x03) 不存在或不包含指示其携带回传标识符的 # 字符。
外部 RADIUS 服务器不返回 QoS-Set-Name VSA (26-4874-130)。
从 Junos OS 19.3R1 版开始,可以使用变量表达式将预定义变量的默认值配置为另一个预定义变量。在早期版本中,默认值必须是固定的;它不能是变量。
通常为用户定义的变量和动态服务配置文件配置表达式。有关详细信息,请参阅 在用户定义变量中使用变量表达 式。
使用变量表达式时,您将设置一个条件来确定预定义变量的默认值。当条件匹配时,默认值的值与不匹配时的值不同。通过此功能,您可以为异构网络配置单个动态客户端配置文件。该配置文件可以实例化传统接入线路和共享媒体接入线路上的企业用户和住宅用户的正确接口集。
在动态客户机配置文件中,您可以使用以下任一选项配置变量表达式:
equals
- 将预定义的变量或表达式指定为缺省值。ifNotZero(parameter-1, parameter-2)
- 设置要匹配的条件。仅当为非零时parameter-1,才将 from parameter-2 的值赋值为默认值,这意味着参数解析为某个值。ifZero(parameter-1, parameter-2)
- 设置要匹配的条件。仅当为零时parameter-1,才将 from parameter-2 的值赋值为默认值,这意味着参数未解析为任何值。如果parameter-1确实解析为某个值(因此它不是零),则将 from parameter-1 的值指定为默认值。
您还可以嵌套表达式,这为设置变量值提供了附加条件。对于异构网络,您可以使用以下表达式来确定 2 级和 3 级 CoS 节点的名称:
dynamic-profiles name { predefined-variable-defaults { interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)"; default-interface-set-name equals "ifZero($junos-interface-set-name, ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default'))"; } }
以下各节介绍如何计算这些表达式中的每一个。
第 2 级节点接口集的预定义变量默认值
以下定义仅将预定义变量指定为 $junos-aggregation-interface-set-name 的默认值:
aggregation-interface-set-name equals “$junos-phy-ifd-underlying-intf-set-name”
表达式没有要计算的条件。$junos-phy-ifd-underlying-intf-set-name 预定义变量的格式 physical-interface-name为 -underlying。例如,如果物理接口为 xe-1/1/0,则 $junos-phy-ifd-underlying-intf-set-name 将解析为 xe-1/1/0-underlying。这将成为 $junos-aggregation-interface-set-name 的默认值:
$junos-aggregation-interface-set-name = $junos-phy-ifd-underlying-intf-set-name = xe-1/1/0-underlying
已解析 $junos-aggregation-interface-set-name 时,不使用默认值。如果 Access-Aggregation-Circuit-ID-ASCII 属性 (TLV 0x03) 以 # 字符(回传标识符)开头,则变量将取 # 字符后字符串剩余部分的值。因此,它将被解析,并且不使用默认值。
下表显示了当 TLV 0x03识别回传节点且回传节点不存在时 $junos-aggregation-interface-set-name 的值。物理接口为 xe-1/1/0。
TLV 0x03 (访问类型) |
$junos-aggregation-interface-set-name |
---|---|
#TEST-X2PON (DPU-C/DPU-P) |
测试-X2PON |
PPPoE-IA 标记中不存在 (常规) |
xe-1/1/0-底层 |
第 3 级节点接口集的预定义变量默认值
您必须使用多个表达式才能为 $junos-interface-set-name 提供默认值:
interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)"; default-interface-set-name equals "ifZero($junos-interface-set-name, ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default'))";
第一个表达式表示它必须检查 $junos-default-interface-set-name 是否已解析。
interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)";
如果未解析,则 $junos-interface-set-name 的默认值将设置为 $junos-phy-ifd-interface-set-name 的值:
$junos-interface-set-name = $junos-phy-ifd-interface-set-name
如果已解析,则 $junos-interface-set-name 的默认值将设置为 $junos-default-interface-set-name 的解析值:
$junos-interface-set-name = $junos-default-interface-set-name
$junos-default-interface-set-name 的值由嵌套表达式确定。
default-interface-set-name equals "ifZero($junos-interface-set-name, ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default'))";
如果未解析 $junos-interface-set-name,则将 $junos-interface-set-name 设置为嵌套表达式 (ifNotZero) 的结果。但是,仅当未解析 $junos-interface-set-name 时,才会使用预定义变量默认值。因此,表达式必须简化为:
default-interface-set-name equals “ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default')"
通过评估是否解析 $junos-aggregation-interface-set-name 来求解 ifNotZero 表达式。仅当 TLV 0x03包含回传标识符 (#) 时,才会解析 $junos-aggregation-interface-set-name。
如果解析$junos-aggregation-interface-set-name,则
-default
追加到该名称,这将成为 $junos-default-interface-set-name 的默认值:$junos-default-interface-set-name = $junos-aggregation-interface-set-name+ “-default”
如果未解析 $junos-aggregation-interface-set-name,则 $junos-default-interface-set-name 也不会解析。
现在可以确定 $junos-interface-set-name 的值:
interface-set-name equals "ifZero($junos-default-interface-set-name, $junos-phy-ifd-interface-set-name)";
如果 $junos-default-interface-set-name 已解析,那么这也是 $junos-interface-set 的值:
$junos-interface-set-name = $junos-default-interface-set-name = $junos-aggregation-interface-set-name+ “-default”
如果 $junos-default-interface-set-name 未解析,则:
$junos-interface-set-name = $junos-phy-ifd-interface-set-name
下表显示了基于上述表达式的预定义变量的可能值。参考四级和五级异构网络中的 CoS 节点整形、CuTTB 用例拓扑和 CoS 层次结构以及FTTB/FTTH 用例拓扑和 CoS 层次结构中的图文可能会有所帮助
TLV 0x03 (访问类型) |
VSA 26-4874-130 (订阅者类型) |
$junos-phy-ifd-interface-set-name |
$junos-default-interface-set-name |
$junos-interface-set-name |
---|---|---|---|---|
#TEST-X2PON (DPU-C/DPU-P) |
未返回 (住宅) |
XE-1/1/0 |
未解决 |
TEST-X2PON 默认 |
#TEST-X2PON (DPU-C/DPU-P) |
返回为 xe-1/1/0 (业务) |
XE-1/1/0 |
XE-1/1/0 |
XE-1/1/0-110 |
PPPoE-IA 标记中不存在 (常规) |
未返回 (住宅) |
XE-1/1/0 |
未解决 |
XE-1/1/0 |
PPPoE-IA 标记中不存在 (常规) |
返回为 xe-1/1/0 (业务) |
XE-1/1/0 |
XE-1/1/0 |
XE-1/1/0-110 |
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。