概要
このドキュメントでは、ASR920/RSP2ルータがQoSプライオリティを処理する方法と、その設定方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- ASR 920 シリーズ ルータ
- QoS ポリシー
使用するコンポーネント
このドキュメントの情報は、ソフトウェアバージョン16.x ~ 17.xが稼働するRSP2ルータを搭載したASR 9xxに基づいています。
トラフィックジェネレータは、プライオリティパケットを処理する機能をテストするために使用されます。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
課題
このドキュメントでは、ASR 920およびRSP2ベースのルータに固有の次の問題について説明します。
- RSP2のASIC制限によるベストエフォート型パケットを利用してドロップされたプライオリティパケット
- クラスで提供する帯域幅の割合の計算方法
ベストエフォート型パケットの利点でドロップされるプライオリティパケット
テスト中に、ベストエフォートパケットを利用してプライオリティパケットをドロップできることが判明しました。これは、入力トラフィックが出力インターフェイスよりも高速なインターフェイスを経由して到着し、出力方向でオーバーサブスクリプションが発生する場合に明らかです。たとえば、5 Gbpsのトラフィックを受信し、1 Gbpsインターフェイスを介して転送する必要がある場合です。
これは、シェーパを使用して設定された出力インターフェイスにも当てはまります。入力速度が出力プライオリティで設定されたCIRよりも高い場合でも、ベストエフォートパケットを利用してパケットをドロップできます。
注:プライオリティの子を非プライオリティの親に割り当てることができないASICの制限があります。
キューが緊急として設定され、その親サブチャネルが緊急でない場合は、サブチャネルレベルでの調停の遅延が原因で、プライオリティキューにジッタが発生します。
解決方法
- EFPの設定
- 物理インターフェイスにシェーパーを適用する
- 目的のQoSをEFPに適用します。
- 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に達する前にQoSがドロップされず、クラスにパケットがキューイングされません。ただし、これは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は赤色、CEM0/1/9は緑色で、2つのトラフィックストリームを作成します。
パケットサイズが異なる動作を確認できます。CEM0/1/9は、128バイトに設定されているCEM0/1/8の2倍のパケットを送信します。
通常、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トラフィックです。
トラフィックジェネレータを使用したテスト
トラフィックジェネレータ – > TenGigインターフェイス – > 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時間後にはプライオリティの低下は1回もみられませんでしたが、シェーパ制限のCIRが原因でclass-defaultの廃棄レートに見られるように、インターフェイスでは多数の廃棄が発生しています。
デフォルトのキュー制限が使用されていることに注意してください。l2フレームサイズ全体をサポートするように帯域幅を調整するために、キューを調整する必要はありません。
陰性試験
良好な精度を確認するためのもう1つのテストは、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フレーム全体を考慮する必要があることを確認します。
1つの方法はキュー制限を増やすことですが、L2フレームを正しく計算すると、プラットフォームで使用されるメモリリソースへのストレスが少なくなることは明らかです。
可変パケットサイズでの転送のように、すべての時点ですべてのトラフィックを予測できるわけではないことは明らかです。正確な設定を行うには、イーサネット、dot1q、MPLSタグのヘッダーを考慮して、平均パケットサイズとパケットレートを設定する必要があります。
RSP2のASICを通過するトラフィックの場合は、プラットフォームから送信されるフレームに含まれるバイトをすべて認識する必要があります(CRCは含まれません)。