内容

概要

前提条件

要件

使用するコンポーネント

課題

ベストエフォート型パケットの利点でドロップされるプライオリティパケット

解決方法

クラスで提供する帯域幅の割合を計算する方法

RSP2 QoSプライオリティテスト

コンフィギュレーション

トラフィック

フレームの例

トラフィックジェネレータを使用したテスト

陰性試験

結論

概要

このドキュメントでは、ASR920/RSP2ルータがQoSプライオリティを処理する方法と、その設定方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- ASR 920 シリーズ ルータ

- QoS ポリシー

使用するコンポーネント

このドキュメントの情報は、ソフトウェアバージョン16.x ～ 17.xが稼働するRSP2ルータを搭載したASR 9xxに基づいています。

トラフィックジェネレータは、プライオリティパケットを処理する機能をテストするために使用されます。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

課題

このドキュメントでは、ASR 920およびRSP2ベースのルータに固有の次の問題について説明します。

- RSP2のASIC制限によるベストエフォート型パケットを利用してドロップされたプライオリティパケット

- クラスで提供する帯域幅の割合の計算方法

ベストエフォート型パケットの利点でドロップされるプライオリティパケット

テスト中に、ベストエフォートパケットを利用してプライオリティパケットをドロップできることが判明しました。これは、入力トラフィックが出力インターフェイスよりも高速なインターフェイスを経由して到着し、出力方向でオーバーサブスクリプションが発生する場合に明らかです。たとえば、5 Gbpsのトラフィックを受信し、1 Gbpsインターフェイスを介して転送する必要がある場合です。

これは、シェーパを使用して設定された出力インターフェイスにも当てはまります。入力速度が出力プライオリティで設定されたCIRよりも高い場合でも、ベストエフォートパケットを利用してパケットをドロップできます。

注：プライオリティの子を非プライオリティの親に割り当てることができないASICの制限があります。

キューが緊急として設定され、その親サブチャネルが緊急でない場合は、サブチャネルレベルでの調停の遅延が原因で、プライオリティキューにジッタが発生します。

解決方法

1. EFPの設定

2. 物理インターフェイスにシェーパーを適用する

3. 目的のQoSをEFPに適用します。

4. 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は含まれません）。