五级和四级异构网络
四级和五级异构网络中的 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 节点的动态接口集。此父接口集基于底层物理接口。该名称派生自预定义变量 $junos-phy-ifd-underlying-intf-set-name,方法是附加“-underlying”。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
-
级别 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) 提供。
-
它是从 $junos-phy-ifd-interface-set-name 预定义变量通过将 SVLAN 标记附加到值中创建的。
流量整形由实际数据速率下行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 树最大数据速率下游TLV (0x98) 确定。
-
第 3 级节点 — 对应于保留 L3 节点的动态聚合接口集。此子接口集基于来自 Access-Aggregation-Circuit-Id-ASCII TLV (0x03) 的回传标识符,表示 PON 树连接。该名称派生自预定义变量 $junos-aggregation-interface-set-name,方法是附加 “-default”。流量整形由动态客户端配置文件中指定的流量控制配置文件决定。
-
第 4 级节点 — 对应于用户的 PPPoE 会话逻辑接口。流量整形由绑定铜缆连接的实际数据速率下行TLV (0x82) 和 PON 树连接的 ONT/ONU-峰值数据速率下游TLV (0x94) 决定。
-
级别 5 节点 — 对应于订阅者的调度队列。
对于共享媒体访问,企业订阅者:
-
级别 1 节点 — 对应于面向接入的物理接口。
-
级别 2 节点 — 对应于保留 L2 节点的动态聚合接口集。此父接口集基于 Access-Aggregation-Circuit-Id-ASCII TLV (0x03) 中的 回传标识符,表示 PON 树连接。该名称派生自预定义变量 $junos-aggregation-interface-set-name。对于粘结铜缆连接,流量整形由实际数据速率下行TLV (0x82) 确定,而对于 PON 树连接,由 PON 树最大数据速率下游TLV (0x98) 确定。
-
级别 3 节点 — 对应于保留 L3 节点的动态接口集。此子接口集基于物理接口和 VLAN 标记。集合名称以以下两种方式之一派生:
-
如果配置,则由 RADIUS 服务器的 Access-Accept 中的 Qos-Set-Name VSA (26–4874–130) 提供。
-
它是从 $junos-phy-ifd-interface-set-name 预定义变量通过将 SVLAN 标记附加到值中创建的。
流量整形由绑定铜缆连接的实际数据速率下行TLV (0x82) 和 PON 树连接的 ONT/ONU-峰值数据速率下游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) 提供。
-
它是从 $junos-phy-ifd-interface-set-name 预定义变量通过将 SVLAN 标记附加到值中创建的。
流量整形由实际数据速率下行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 树最大数据速率下游TLV (0x98) 确定。
-
第 3 级节点 — 对应于用户的 PPPoE 会话逻辑接口。流量整形由绑定铜缆连接的实际数据速率下行TLV (0x82) 和 PON 树连接的 ONT/ONU-峰值数据速率下游TLV (0x94) 决定。
-
级别 4 节点 — 对应于订阅者的调度队列。
四级共享媒体接入网络不支持企业订阅者。
CuTTB 用例拓扑和 CoS 层次结构
图3 显示了异构CuTTB拓扑,该拓扑包括PPPoE用户的共享介质(通过DPU-C的键合铜)和常规(非键合铜)接入。
此拓扑具有以下订户:
两个住宅用户(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 端口启动消息。消息中的 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 端口启动消息来打开到 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 端口启动消息。消息中的 ANCP TLV 标识接入线路、用户、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
由于这些用户使用常规访问,而不是通过 DPU-C 进行共享媒体访问,因此 ASCII 标识符(TLV 0x03)不以 # 字符开头。在这种情况下,该值只是 ASCII 等效于TLV 0x06中传达的二进制值。
图 4 显示了与 图 3 中的 CuTTB 拓扑相对应的五级 CoS 层次结构。
的 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 设置为后缀为“default”的 $junos-aggregation-interface-set-name 值。
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 拓扑,其中包括 PPPoE 用户的共享介质(通过 DPU-P的 PON)和常规(直接连接)接入。
此拓扑具有以下订户:
两个住宅用户(2 和 3)和一个商业用户(4)可通过 DPU-P 对网络的共享媒体访问,然后访问 OLT,然后访问 BNG。这些是 FTTB 用户。
两个住宅用户(10 和 11)可以通过相同的 OLT 到 BNG 进行网络常规访问。这些是 FTTH 用户。
所有 FTTB 和 FTTH 用户都通过 OLT 上的相同 PON 树连接到 BNG。
住宅用户 3 当前未登录。
当住宅用户 2 和商业用户 4 登录时:
PPPoE 向 DPU-P 发送一条 PADI 消息,其中包含每个 DPU-P 的外部 VLAN 标记。
DPU-P 向每个用户的 BNG 发送 ANCP 端口启动消息。消息中的 ANCP TLV 标识接入线路、用户、接入线路的 ASCII 标识符、作为接入线路二进制标识符的 VLAN 外部标记、上行速率和下行速率。
ASCII 标识符(TLV 0x03)以 # 字符开头,表示值的其余部分标识 回传(PON 树)行。两个用户的0x03 TLV相同,因为它们通过相同的 PON 树进行连接。
DPU-P 为每个用户向 OLT 发送 PADI 消息。PADI 传送 PPPoE-IA 标签,这些标签标识与 ANCP TLV 相同的属性。
OLT 向 BNG 发送带有 PPPoE 标记的 PADR 消息。OLT 还通过发送 OLT 到 DPU-P 连接的 ANCP 端口启动消息来打开到 BNG 的 ANCP 会话。TLV 0x81 和 0x82 中的速率是 OLT 到 DPU-P 线路的值,由 L2 接口集表示。换句话说,这些是 PON 树本身的速率,而不是用户接入线路的速率。虽然此用例示例显示,TLV 0x02中也会报告TLV 0x03值,以指示 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 端口启动消息。消息中的 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 层次结构。
的 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-default 是为 FTTB 住宅用户 2 和 3 以及 FTTH 住宅用户 10 和 11 设置的第 3 级接口。这些用户都使用相同的 PON 树,因此包含在同一个接口集中。
这些订阅者被识别为住宅,因为 RADIUS 服务器未返回 VSA 26-4874-130 QoS-Set-Name。TLV 0x03包含 # 字符,用于将 PON 树线标识为回传。$junos-interface-set-name 设置为后缀为“default”的 $junos-aggregation-interface-set-name 值。
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 携带,即 RADIUS 访问请求消息中的 Qos-Set-Name (26-130)。集合名称由前附加 VLAN 标记的面向接入的物理接口的名称组成。这与 op 脚本使用的格式相同:
外部 VLAN 标记用于双标记 VLAN。对于使用 VLAN 标记 (110,7) 的 xe-1/1/0 上的企业订阅者,名称格式如下:
xe-1/1/0-110
单标记 VLAN 标记用于单标记 VLAN。当 CPE 设备直接连接到接入节点时,将使用单标记 VLAN。对于使用 VLAN 标记 (33) 的 xe-2/2/1 上的企业订阅者,名称格式如下:
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-聚合-接口-设置-名称 = $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-聚合-接口-设置-名称 |
|---|---|
#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 时,才会使用预定义的变量 defaults。因此,表达式必须简化为:
default-interface-set-name equals “ifNotZero($junos-aggregation-interface-set-name, $junos-aggregation-interface-set-name##'-default')"
ifNotZero 表达式通过评估是否解析 $junos-aggregation-interface-set-name 来求解。只有当0x03包含回传标识符 (#) 时,才会解析 $junos-aggregation-interface-set-name TLV。
如果解析 $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接口集名称 |
|---|---|---|---|---|
#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 |
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。