KUSONEKOの見る世界

Catalyst QoS 備忘録

※マニュアルやデータシートを読んでまとめたもので、動作確認や検証もしていない内容もありますので、間違っている可能性が高いです。

Catalyst 2960X/3560X/3750X

  • MLS QoS。MQCも少し使える。
  • ライセンスの種類によって使えない機能があるので注意

分類

trust設定のポートは、受信したパケットの優先度情報(CoS/DSCP/IP Precedence)を元にQoSラベル(CoSまたはDSCP)が生成される。

ACLが設定されている場合はそのtrust設定による。(set dscpをした場合はQoSラベルにDSCPが設定される?)

untrust設定のポートは、受信したパケットの内部DSCPが0になる。


生成されるQoSラベルは、表にすると以下のようになる。
trust VLAN Tag IP/非IP QoSラベル
CoS 有り - CoSを元にQoSラベルが生成される
無し - ポートのdefault cosを元にQoSラベルが生成される
DSCP 有り IP DSCPを元にQoSラベルが生成される
非IP CoSを元にCoS/DSCPマップを使用し、DSCPからQoSラベルが生成される
無し IP DSCPを元にQoSラベルが生成される
非IP ポートのdefault cosを元にCoS/DSCPマップを使用し、DSCPからQoSラベルが生成される
IP Precedence 有り IP IP Precedenceを元にIP Precedence/DSCPマップを使用し、DSCPからQoSラベルが生成される
非IP CoSを元にCoS/DSCPマップを使用し、DSCPからQoSラベルが生成される
無し IP IP Precedenceを元にIP Precedence/DSCPマップを使用し、DSCPからQoSラベルが生成される
非IP ポートのdefault cosを元にCoS/DSCPマップを使用し、DSCPからQoSラベルが生成される
untrust - - DSCP0のQoSラベルが生成される

分類中には trustした優先度情報を元に、対応するマッピングテーブルでDSCPやCoS値が書き換えられる。

キューイング

キューイングでは、QoSラベル(CoSまたはDSCP)を元にキューイングされる。
以下のコマンドでキューを指定する。どちらのコマンドが使われるかはQoSラベルの中身(CoSまたはDSCP)による?
mls qos srr-queue (input|output) cos-map queue ~
mls qos srr-queue (input|output) dscp-map queue ~
ただし、自発パケットは、全てキュー2に入る。

キューのバッファサイズは非公開。

Catalyst 2960L

2960Xと似ているが、以下の差分が見られる。
  • queue-setはひとつのみ
  • trustは、DSCPとCoSのみ
  • DSCPとCoS間の変換テーブルがない
  • bufferやdrop-thresholdが設定できない
  • policy-mapで、trustは使えない、setはDSCPのみ
  • classのmatch行のACLのワイルドカードが機能しない→バグでした
ACLでワイルドカードが使えないと、分類が厳しいです。
バグ修正版のIOSを使えない場合は、tcp/udpのポート番号指定や、DSCP指定はできるため、それで何とかするしかなさそう。

Catalyst 6500 Sup2t

  • Sup2t QoSアーキテクチャ。MQCが使える。レガシーのコンフィギュレーションも出来る。
  • inputでDSCPを元に内部DSCP(discard value/class?)が生成される。
    IP PrecedenceやCoSにも設定変更が可能。
  • outputで内部DSCPを元にCoSが設定され(?)、CoSを元にキューイングされ、送信される。MLS QoSと違い、DSCPが書き換えられることは無い。
    一部の10G以上対応のラインカードでは、DSCPを元にキューイングする設定が可能。Sup上インターフェースでは10g-onlyと設定することで可能になる。
  • バッファサイズはラインカードのデータシートが確認できる。