簡介
本文檔介紹ASR920/RSP2路由器如何處理QoS優先順序以及如何配置QoS。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文檔中的資訊基於運行軟體版本16.x至17.x的ASR 9xx和RSP2路由器。
流量發生器用於測試處理優先順序資料包的功能。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
問題
本文檔針對基於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
流量
CEM0/1/8以紅色建立2個流量流,而CEM0/1/9以綠色建立:
我們可以看到不同資料包大小的行為,CEM0/1/9傳送的資料包數是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)。