服务质量 (QoS)
总结 阅读本主题,了解在 L2 模式下部署时瞻博网络云原生路由器的服务质量 (QoS) 功能。
从瞻博网络云原生路由器 22.4 版开始,您可以配置服务质量 (QoS) 参数,包括分类、标记和排队。云原生路由器在 vRouter 中执行分类和标记操作,在物理网络接口卡 (NIC) 中执行排队(调度)操作。仅在 E810 网卡上支持调度。
QoS 概述
您可以在部署之前启用 QoS,方法是编辑 values.yaml
Juniper-Cloud-Native-Router-version-number/helmchart 目录中的文件并将值true
更改为 qosEnable
。QoS 功能的默认值为false
(禁用)。例如:
# Set true/false to Enable or Disable QOS, note: QOS is not supported on X710 NIC. qosEnable: true
仅当安装云原生路由器的主机服务器包含运行 lldp 的英特尔 E810 网卡时,您才能启用 QoS 功能。
您可以使用 lldptool
在主机服务器上作为 CLI 应用程序运行的 在 NIC 上启用 lldp。发出以下命令以在 E810 网卡上启用 lldp。例如,您可以使用以下命令:
lldptool -T -i INTERFACE -V ETS-CFG willing=no tsa=0:strict,1:strict,2:strict,3:strict,4:strict, 5:strict,6:strict,7:strict up2tc=0:0,1:1,2:2,3:3,4:0,5:1,6:2,7:3
上述命令的详细信息如下:
-
ETS – 增强型传输选择
-
愿意 – 愿意属性确定系统是否使用本地配置的数据包转发分类 (PFC)。如果设置为
willing
no
(默认设置),云原生路由器将应用本地 PFC 配置。如果将“愿意”设置为“是”,并且云原生路由器从对等路由器接收 TLV,则云原生路由器将应用收到的值。 -
tsa – 传输选择算法是流量类到选择算法映射的逗号分隔列表。您可以选择
ets
、strict
或vendor
作为选择算法。 -
up2tc–逗号分隔的列表,将用户优先级映射到流量类
下面的列表概述了云原生路由器执行的分类、标记和排队操作。
-
分类:
-
vRouter 通过检查数据包中的优先级位对数据包进行分类
-
vRouter 派生流量类别和丢失优先级
-
vRouter 可以将流量分类器应用于结构、流量和工作负载接口类型
-
vRouter 在其分类器映射中维护 16 个条目
-
-
标记(重写):
-
虚拟路由器执行标记操作
-
vRouter 执行出口路径中 p 位的重写
-
vRouter 根据流量类别派生新的流量优先级,并在出口处获得丢弃优先级
-
vRouter 只能对交换矩阵接口上的数据包应用标记
-
vRouter 在其标记映射中维护 8 个条目
-
-
排队(调度):
-
云原生路由器在硬件 (E810 NIC) 中执行严格的优先级调度
-
云原生路由器将每个流量类映射到一个队列
-
云原生路由器将最大流量队列数限制为 4
-
云原生路由器将 8 个可能的优先级映射到 4 个流量类;它还映射每个流量类 1 硬件队列
-
云原生路由器只能将调度应用于交换矩阵接口
-
虚拟功能 (VF) 利用您在物理功能(接口)中配置的队列
-
vRouter 在其调度器映射中维护 8 个条目
-
配置示例
您可以使用 Junos set 命令在 cRPD 中配置 QoS 分类器、重写规则和调度程序,也可以使用 NETCONF 远程配置 QoS 分类器。我们在下面显示基于 Junos 的示例配置:
set class-of-service classifiers ieee-802.1 class1 forwarding-class assured-forwarding loss-priority high code-points 011 set class-of-service rewrite-rules ieee-802.1 Rule_1 forwarding-class assured-forwarding loss-priority high code-point 110 set class-of-service schedulers sch1 priority high set class-of-service scheduler-maps sch1 forwarding-class assured-forwarding scheduler sch1 set class-of-service interfaces enp175s1 scheduler-map sch1 set class-of-service interfaces enp175s1 unit 0 rewrite-rules ieee-802.1 Rule_1 set class-of-service interfaces vhostnet123-3546aefd-7af8-4fe5 unit 0 classifiers ieee-802.1 class1
您可以通过 访问 cRPD CLI 来查看 QoS 配置。在 Junos 操作模式下使用 show 命令。show 命令分别显示分类器、重写规则或调度器图的配置。例如:
显示分类器user@jcnr-01> show class-of-service classifier Classifier: class1, Code point type: ieee802.1p Code point Forwarding class Loss priority 011 assured-forwarding high
显示重写规则
user@jcnr-01> show class-of-service rewrite-rule Rewrite rule: Rule_1, Code point type: ieee802.1p Forwarding class Loss priority Code point assured-forwarding high 110
显示调度器映射
show class-of-service scheduler-map sch1 Scheduler map: sch1 Scheduler: sch1, Forwarding class: assured-forwarding Transmit rate: unspecified, Rate Limit: none, Priority: high
show class-of-service interface vhostnet123-5a1e3079-d45e-4ab5 Physical interface: vhostnet123-5a1e3079-d45e-4ab5 Maximum usable queues: 4, Queues in use: 4 Logical interface: vhostnet123-5a1e3079-d45e-4ab5.0 Object Name Type Classifier class1 ieee802.1p
show class-of-service interface enp175s1 Physical interface: enp175s1 Maximum usable queues: 4, Queues in use: 4 Scheduler map: sch1 Logical interface: enp175s1.0 Object Name Type Rewrite-Output Rule_1 ieee802.1p
故障 排除
您可以通过 访问虚拟路由器外壳来排除 QoS 配置故障。使用 purel2cli 命令并查看接口映射。
显示分类器配置
purel2cli --qos cla class1 Classifer name: class1 Classifier Index: 0 =============================================== code-points loss priority forwarding-class =============================================== 000 low best-effort 001 low best-effort 010 low best-effort 011 high assured-forwarding 100 low best-effort 101 low best-effort 110 low best-effort 111 low best-effort
vif0/2 PMD: vhostnet123-3546aefd-7af8-4fe5 Type:Virtual HWaddr:aa:bb:cc:dd:ee:12 Vrf:0 Flags:L2Mon QOS:-1 Ref:13 RX port packets:20 errors:0 RX queue packets:20 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vlan Mode: Trunk Vlan: 100 200 300 Qos classifier: class1 RX packets:20 bytes:1200 errors:0 TX packets:0 bytes:0 errors:0 Drops:40
purel2cli --qos rw Rule_1 Re-Write name: Rule_1 Re-write Index: 0 =========================================loss priority Forwarding-class re-write prio ========================================= low best-effort n/a low expedited-forwarding n/a low assured-forwarding n/a low network-control n/a high best-effort n/a high expedited-forwarding n/a high assured-forwarding 110 high network-control n/a
vif0/1 PCI: 0000:af:01.0 (Speed 10000, Duplex 1) Type:Physical HWaddr:46:d5:f3:fc:fc:92 Vrf:0 Flags:L2Vof QOS:-1 Ref:42 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:af:01.0 Status: UP Driver: net_iavf Vlan Mode: Trunk Vlan: 100 200 300 700-705 2001 Rewrite: Rule_1 Scheduler: sch1 RX packets:0 bytes:0 errors:0 TX packets:20 bytes:1200 errors:0 Drops:0 TX port packets:20 errors:0
purel2cli --qos sch sch1 Scheduler name: sch1 Scheduler Index: 0 ===================================== forwarding-class priority_map ===================================== best-effort 0 expedited-forwarding 0 assured-forwarding 2 network-control 0
vif0/1 PCI: 0000:af:01.0 (Speed 10000, Duplex 1) Type:Physical HWaddr:46:d5:f3:fc:fc:92 Vrf:0 Flags:L2Vof QOS:-1 Ref:42 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:af:01.0 Status: UP Driver: net_iavf Vlan Mode: Trunk Vlan: 100 200 300 700-705 2001 Rewrite: Rule_1 Scheduler: sch1 RX packets:0 bytes:0 errors:0 TX packets:20 bytes:1200 errors:0 Drops:0 TX port packets:20 errors:0