简介
本文档介绍ASR920/RSP2路由器如何处理QoS优先级以及如何配置它。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于运行软件版本16.x至17.x的带RSP2的ASR 9xx路由器。
流量生成器用于测试处理优先级数据包的功能。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
问题
本文档针对基于ASR 920和RSP2的路由器解决以下问题:
- 由于RSP2上的ASIC限制,优先级数据包被丢弃,优势是尽力而为的数据包
- 如何计算班级中提供的带宽百分比
优先数据包丢弃的优势最大努力数据包
在测试过程中,确定优先级数据包可以优先丢弃,而尽力而为数据包则处于劣势。当传入流量通过速度高于出口接口的接口到达并在输出方向导致超订用时,这一点很明显。例如,当收到5 Gbps的流量并需要通过1 Gbps接口转发时。
对于使用整形器配置的出口接口,同样如此。如果入口速度高于在出口优先级配置的CIR,则仍可采用尽力而为的数据包丢弃数据包。
注:存在一个ASIC限制,对于该限制,我们不能将优先级子级分配给非优先级父级。
如果队列配置为加速且其父子通道未配置,则优先级队列上由于子通道级别的仲裁延迟而存在抖动。
解决方案
- 配置EFP
- 在物理上应用整形器
- 在EFP上应用所需的QoS
- 在BDI接口中应用IP连接
示例:
configuration with issue
-------------------------
interface GigabitEthernet0/0/0
description this is my egress interface
service-policy output PM-1G-Out
configuration without issue
---------------------------
interface GigabitEthernet0/0/0
description this is egress interface
service-policy output POL-PRIO-MAIN-1G ==> shaper, useful to allow internal priority like BDF
service instance 200 ethernet
encapsulation dot1q 200
rewrite ingress tag pop 1 symmetric
service-policy output PM-1G-Out ==> the original QoS previously applied in the physical interface
bridge-domain 200
!
interface BDI200 ==> BDI must match the bridge-domain defined under the service-instance
description this is L3 egress
ip address 10.20.2.45 255.255.255.0
ip mtu 9000
==> no QoS applied under the BDI, all QoS are in the service-instance with a backpressure of the shaper in the physical
使用此配置时,所有优先级数据包都得到正确优先级排序,且没有数据包被丢弃,但您仍需要计算正确分配的带宽。
如何计算班级中提供的带宽百分比
RSP2平台中的带宽分配也有特定的行为。当QoS配置为与其他平台相同时,会多次出现丢弃。
例如,如果您在ASR1K路由器中配置整形器为2 Mbps的QoS,则它不会在到达2 Mbps之前丢弃,也不会在类中对数据包进行排队。但是,RSP2会发生这种情况。
在许多情况下,提供的速度甚至不能达到已看到丢弃时允许的最大速度。
这是一个在RSP2上可见的典型示例,而应用于另一个平台的完全相同流量的相同值不会显示任何丢弃:
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
58803127 packets, 5488269944 bytes
5 minute offered rate 279000 bps, drop rate 35000 bps
Match: mpls experimental topmost 5
Priority: 3% (297 kbps), burst bytes 37000, b/w exceed drops: 60373
Priority Level: 1
问题是由硬件中处理流量的方式造成的。基本上,RSP2硬件实施不只考虑第3层,而是考虑整个帧,这意味着所有报头都考虑在内。
RSP2 QoS优先级测试
在这种情况下,CEM流量用于测试优先级行为。
本示例展示了如何配置优先级,从而利用尽力而为的优势避免丢包并调整带宽分配。
配置
policy-map POL-PRIO-MAIN-1G
class class-default
shape average 8650000
!
policy-map PM-MPLS-1G-Out
class EXP-5
priority level 1 percent 4
class EXP-4
priority level 2 percent 24
class EXP-6
bandwidth percent 2
queue-limit 25000 us
class EXP-3
bandwidth percent 2
queue-limit 10000 us
class EXP-2
bandwidth percent 2
queue-limit 50000 us
class EXP-1
bandwidth percent 2
queue-limit 20000 us
class class-default
bandwidth percent 1
queue-limit 40000 us
!
interface GigabitEthernet0/0/0
no ip address
negotiation auto
service-policy output POL-PRIO-MAIN-1G
service instance 200 ethernet
encapsulation dot1q 200
rewrite ingress tag pop 1 symmetric
service-policy output PM-MPLS-1G-Out
bridge-domain 200
!
interface CEM0/1/8
no ip address
cem 0
service-policy input PM-CEM-in
payload-size 128
dejitter-buffer 20
!
interface CEM0/1/9
no ip address
cem 0
service-policy input PM-CEM-in
payload-size 64
dejitter-buffer 16
!
interface BDI200
description path for qos stress
ip address 10.20.2.45 255.255.255.0
ip mtu 9000
ip router isis
carrier-delay msec 0
cdp enable
mpls traffic-eng tunnels
bfd template BFD-1hop-5ms
isis circuit-type level-2-only
isis network point-to-point
isis metric 15 level-1
isis metric 15 level-2
ip rsvp bandwidth percent 90
ip rsvp signalling hello graceful-restart
Traffic
CEM0/1/8以红色创建2个流量流,CEM0/1/9以绿色创建:
我们可以看到不同数据包大小的行为,CEM0/1/9发送的数据包数量是CEM0/1/8的两倍,CEM0/1/8配置为128字节。
通常,RP上的QoS配置仅考虑CEM的负载,而RSP2则考虑整个帧。
帧示例
您可以看到在CEM下配置的原始负载额外的30字节。这可以解释为:
Ethernet header = 14 Bytes
Dot1q header = 4 Bytes
Mpls header = 4 Bytes
PW Header = 4 Bytes
CEM trailer = 4 Bytes
Total = 30 Bytes
计算硬件所需的带宽,提醒需要考虑该帧:
CEM 0/1/8 125 Packet/sec, size 128bytes ==> 125*128*8 = 128000 bps
CEM 0/1/9 250 Packet/sec, size 64bytes ==> 250*64*8 = 128000 bps
on each frame we need an extra 30bytes ==> 375*30*8 = 90000 bps
Total = 346000 bps
要验证整形器在其配置为8650000 bps的接口上的行为和准确性,优先级类的准确率为4%。
计算:346000.0000/8650000.0000 = 0.04 = 4%。
以上配置中即是这种情况。计算结果验证了配置和计算的正确性。
策略输出:
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
3063745 packets, 285949512 bytes
5 minute offered rate 279000 bps, drop rate 0000 bps
Match: mpls experimental topmost 5
Priority: 4% (346 kbps), burst bytes 8650, b/w exceed drops: 0
Priority Level: 1
346 Kbps应用于平台无关流量远大于L3,但确切地是L2流量。
使用流量生成器测试
Traffic generator —> TenGig interface —> Asr9xx RSP2 —>输出1G,其中应用了策略。
ASR903#show clock
22:54:40.976 CET Wed Nov 30 2022
ASR903#show ethernet service instance policy-map | inc Class-map:|drop rate
Class-map: EXP-5 (match-all)
5 minute offered rate 279000 bps, drop rate 0000 bps
Class-map: EXP-4 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-6 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-3 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-2 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-1 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: class-default (match-any)
5 minute offered rate 762348000 bps, drop rate 756024000 bps
ASR903#show clock
17:41:16.110 CET Thu Dec 1 2022
ASR903#show ethernet service instance policy-map | inc Class-map:|drop rate
Class-map: EXP-5 (match-all)
5 minute offered rate 279000 bps, drop rate 0000 bps
Class-map: EXP-4 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-6 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-3 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-2 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-1 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: class-default (match-any)
5 minute offered rate 762400000 bps, drop rate 756077000 bps
在大约18小时后,优先级没有一次下降,尽管在接口上由于整形器限制的CIR导致大量丢弃,如类默认丢弃率所示。
请注意,使用了默认队列限制:为了调整带宽以支持整个l2帧大小,您不需要调整队列。
阴性测试
验证正确性的另一个测试是忽略CEM报尾的4个字节,并查看是否发生小丢包:
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
352466 packets, 32896848 bytes
5 minute offered rate 279000 bps, drop rate 5000 bps
Match: mpls experimental topmost 5
Priority: 4% (334 kbps), burst bytes 8350, b/w exceed drops: 271
Priority Level: 1
如您所见,如果忽略该帧的一部分,则会导致丢弃。
结论
使用CEM流量的此测试确认带宽计算需要考虑整个L2帧。
一种方法是增加队列限制,但显然,对L2帧的正确计算对平台使用的内存资源的压力较小。
显然,并非所有流量都可以预测到每个时间点,例如使用可变数据包大小的传输。为了获得准确的配置,您需要考虑以太网、dot1q(s)、MPLS标记报头到平均数据包大小以及数据包速率。
对于流经RSP2的ASIC的任何流量,您需要了解从平台发出的帧中包含的每个字节(不包括CRC)。