Catalyst 4500 QoS

スポンサーリンク

QoSを導入したネットワークではフレームやパケット を判別し重要度に応じた取り扱いをしてくれます。全ての通信を平等に扱うのをとりやめ一定の規則に基づいた不公平を導入します。たとえば重要度が高く遅延 に敏感ですぐに送信しなければならないアプリケーションのフレームやパケットは送信待ちのほかの種類のものより先に送ります。

また同じアプリケーションを使っていてもユーザの種類や場所によって優先度を変えることもあります。逆に重要度が低くかつ今すぐ送信しなくてもよいフレー ムやパケットがあれば後回しにします。さらに必要に応じ重要度の低いフレームやパケットを廃棄し他の重要度の高い通信を守ります。


QoSを導入することでネットワークの帯域が増大するわけではありません。もし全てのアプリケーションの優先度が同じであれば不公平な取り扱いはできませ んからQoSを適用できません。しかし現実のネットワークでは重要度や遅延と廃棄に対する敏感さはアプリケーションやユーザの種類によって大きく異なって います。この性質を利用して故意に不公平な取り扱いをしてネットワークの限られた帯域をやりくりすることがQoSの役割です。


■Catalyst QoSの実装


CatalystのQoSの実装、アーキテクチャは機種ごとに異なり大きくわけて以下の3つに分類されます。

  • Catalyst6500
  • Catalyst4500E
  • Catalyst2960/3560/3750

また、Catalyst QoSの共通の特徴として以下が挙げられます。

  • ハードウェア処理される (CPU負荷などには影響はない)
  • ルータの輻輳制御のように必要時のみ発動するの ではなく設定をいれた時点で動作が変わる
  • トラフィックが混雑していない環境で導入しても 意味はない

ここでは Catalyst4500Eを前提にQoSを紹介します。

■Catalyst QoSのフロー

図で表しますと以下のようになります。

一般的かどうかわかりませんが、Catalystで帯域制限を行うことはできなくはないですが、あまり実務でやったことがありません。Catalyst側 では優先制御、ルータ側では帯域制御というようにルータ・スイッチで役割分担をしながら導入することが多いです。


■クラス分け / マーキング


フレームまたはパケットをクラス分けする際に基準とするのが以下のものです。

  • CoS ( Layer2 3bit )
  • IP Precedence ( Layer3 3bit )
  • DSCP ( Layer3 6bit )
  • ACL ( Access Control List )

CoSについてはLayer2のフレームに付加される のでパケットでは伝えることができません。なおかつタグ付きのフレーム(Trunk)に限定されます。また、上記の値をフレーム(パケット)が到達した時点のものを使用するか上書きするか選択することができます。既に値 付けされたものを信用する(Trust)設定と上書きをするACLを用いたPolicy-Mapの両方を行うことが可能で す。 


4つの選択基準がありますが、基本的にはどれを使用してもOKです。要件次第という部分もあるかと思いますが、Layer2レベルでの優先制御で Trunk接続しているのであればCoSでやればいいですしLayer3レベルであればIP PrecedenceかDSCPのどちらでも構いません。混在させることも可能ですがあまり意味はなく、policy-mapが設定されていれば Trustなどが設定されていても上書きされます。


■クラス分け/マーキング

4500のインターフェイスはデフォルトでTrust状態です。2960/3750などでは明示的に Trust設定が必要でしたが4500ではその必要はありません。着信したパケットのマーキングを上書きしたい場合はpolicy-mapを使用します。 下記ではインターフェイスGi0/1に着信するパケットはすべてDSCPをef ( 46 ) にセットしています。下記では物理インターフェイスに適用していますが、Port-Channelインターフェイスがある場合は、それに適用することも可能です。

(config)# access-list 100 permit ip any any

(config)# class-map match-all QoS
(config-cmap)# match access-group 100

(config)# policy-map QoS
(config-pmap)# class QoS
(config-pmap-c)# set dscp ef

(config)# interface GigabitEthernet0/1
(config-if)# switchport access vlan 100
(config-if)# switchport mode access
(config-if)# service-policy input QoS


DSCPやip precedenceで指定できる値は下記のようになります。

(config-pmap-c)# set dscp ?
  <0-63>   Differentiated services codepoint value
  af11     Match packets with AF11 dscp (001010)
  af12     Match packets with AF12 dscp (001100)
  af13     Match packets with AF13 dscp (001110)
  af21     Match packets with AF21 dscp (010010)
  af22     Match packets with AF22 dscp (010100)
  af23     Match packets with AF23 dscp (010110)
  af31     Match packets with AF31 dscp (011010)
  af32     Match packets with AF32 dscp (011100)
  af33     Match packets with AF33 dscp (011110)
  af41     Match packets with AF41 dscp (100010)
  af42     Match packets with AF42 dscp (100100)
  af43     Match packets with AF43 dscp (100110)
  cs1      Match packets with CS1(precedence 1) dscp (001000)
  cs2      Match packets with CS2(precedence 2) dscp (010000)
  cs3      Match packets with CS3(precedence 3) dscp (011000)
  cs4      Match packets with CS4(precedence 4) dscp (100000)
  cs5      Match packets with CS5(precedence 5) dscp (101000)
  cs6      Match packets with CS6(precedence 6) dscp (110000)
  cs7      Match packets with CS7(precedence 7) dscp (111000)
  default  Match packets with default dscp (000000)
  ef       Match packets with EF dscp (101110)
(config-pmap-c)# set ip precedence ?
  <0-7>           Precedence value
  critical        Match packets with critical precedence (5)
  flash           Match packets with flash precedence (3)
  flash-override  Match packets with flash override precedence (4)
  immediate       Match packets with immediate precedence (2)
  internet        Match packets with internetwork control precedence (6)
  network         Match Packets with network control precedence (7)
  priority        Match packets with priority precedence (1)
  routine         Match packets with routine precedence (0)

■キューイング


4500EではデフォルトでQoSが有効となっており、2つの出力キューが存在ます。下記のQueue1がルーティングプロトコルやARPなどの自身でやりとりをするキューであり、Queue8がそれ以外のトラフィックが配置されます。

# show int gi3/1 counters detail
<省略>
 Port       Tx-Bytes-Queue-1  Tx-Bytes-Queue-2 Tx-Bytes-Queue-3  Tx-Bytes-Queue-4
Gi3/1             638250252                 0                0                 0

Port       Tx-Bytes-Queue-5  Tx-Bytes-Queue-6 Tx-Bytes-Queue-7  Tx-Bytes-Queue-8
Gi3/1                     0                 0                0    10642464717123

Port       Tx-Drops-Queue-1  Tx-Drops-Queue-2 Tx-Drops-Queue-3  Tx-Drops-Queue-4
Gi3/1                     0                 0                0                 0

Port       Tx-Drops-Queue-5  Tx-Drops-Queue-6 Tx-Drops-Queue-7  Tx-Drops-Queue-8
Gi3/1                     0                 0                0                 0

Port       Dbl-Drops-Queue-1 Dbl-Drops-Queue-2 Dbl-Drops-Queue-3 Dbl-Drops-Queue-4
Gi3/1                      0                 0                 0                 0

Port       Dbl-Drops-Queue-5 Dbl-Drops-Queue-6 Dbl-Drops-Queue-7 Dbl-Drops-Queue-8
Gi3/1                      0                 0                 0                 0

Port         Rx-No-Pkt-Buff     RxPauseFrames    TxPauseFrames   PauseFramesDrop
Gi3/1                     0                 0                0                 0

Port       UnsupOpcodePause
Gi3/1                     0

デフォ ルトではこのような配置になっていますが、ルータなどでよく利用するMQC ( Modular QoS CLI ) にて優先制御や帯域制御を実施することが可能です。その際、ユーザで任意のclassを作成することができますが、上記のようにoutput queueは全部で8つであり、うち1つがclass-defaultとなるので7つまで任意のclassを作成可能ということになります。


■優先制御

4500EではMQCを使用して優先制御を設定します。下記ではDSCPにEFがセットされたトラフィックを優先制御するよう設定しています。トラフィックの条件づけにはACLを使用することも可能です。

(config)# class-map match-all EF
(config-class)# match dscp ef

(config)# policy-map QoS
(config-pmap)# class EF
(config-pmap-c)# priority

(config)# interface GigabitEthernet0/1
(config-if)# service-policy type output QoS


ちなみに上記の優先制御を有効にした場合、Queue1の管理パケットは自動でPQに配置されるようになります。


■帯域制御 / 帯域保証

帯域制御と帯域保証の設定も可能です。下記ではcos値が0と2のトラフィックについてそれぞれ帯域保証を行なっています。但し、上記の優先制御設定 ( priority ) を設定している場合はbandwith remaing percentを使用する必要があります。bandwidth percentとの違いは他のクラスで一切使用せず専用の帯域となる、という点が異なります。

(config)# class-map match-all CoS0
(config-class)# match cos 0
(config)# class-map match-all CoS2
(config-class)# match cos 2

(config)# policy-map QoS
# CoS0のトラフィックの帯域保証を10Mに指定
(config-pmap)# class CoS0
(config-pmap-c)# bandwidth 10000
# CoS2のトラフィックの最大帯域を20%に指定
(config-pmap)# class CoS2
(config-pmap-c)# bandwidth percent 20

(config)# interface GigabitEthernet0/1
(config-if)# service-policy type output QoS

帯域制御はポリシング/シェイピングの両方をサポートしています。以下はcos3のトラフィックに対して100M の制限をかけるシェイピングの設定例です。ポリシングはin / out の両方をサポートしていますがシェイピングはoutのみでなおかつ物理ポートにのみ適用可なので注意してください。

(config)# class-map match-all CoS3
(config-class)# match cos 3

(config)# policy-map QoS
(config-pmap)# class CoS3
(config-pmap-c)# shape average 100000000

(config)# interface GigabitEthernet0/1
(config-if)# service-policy output QoS

■QoS のshowコマンド

Catalyst4500Eで確認できるQoSコマン ドはshow policy-map interfaceと最初に書いたshow interface giX/Y counters detailです。

# show int gi3/1 counters detail

Port                InBytes       InUcastPkts      InMcastPkts       InBcastPkts
Gi3/1        21508297038783       22479016327         31526759           5690743

Port               OutBytes      OutUcastPkts     OutMcastPkts      OutBcastPkts
Gi3/1        10643102730079       11687544322          6335205               106

Port              InPkts 64        OutPkts 64    InPkts 65-127    OutPkts 65-127
Gi3/1                678517          74926638       7492869084        4411339504

Port         InPkts 128-255   OutPkts 128-255   InPkts 256-511   OutPkts 256-511
Gi3/1             511671825         261716450        513266470         140241752

Port        InPkts 512-1023  OutPkts 512-1023
Gi3/1             531815550         134069990

Port       InPkts 1024-1518 OutPkts 1024-1518 InPkts 1519-1548 OutPkts 1519-1548
Gi3/1            2292773204         153483379      11173159179        6518101920

Port       InPkts 1549-9216 OutPkts 1549-9216
Gi3/1                     0                 0

Port       Tx-Bytes-Queue-1  Tx-Bytes-Queue-2 Tx-Bytes-Queue-3  Tx-Bytes-Queue-4
Gi3/1             638250252                 0                0                 0

Port       Tx-Bytes-Queue-5  Tx-Bytes-Queue-6 Tx-Bytes-Queue-7  Tx-Bytes-Queue-8
Gi3/1                     0                 0                0    10642464717123

Port       Tx-Drops-Queue-1  Tx-Drops-Queue-2 Tx-Drops-Queue-3  Tx-Drops-Queue-4
Gi3/1                     0                 0                0                 0

Port       Tx-Drops-Queue-5  Tx-Drops-Queue-6 Tx-Drops-Queue-7  Tx-Drops-Queue-8
Gi3/1                     0                 0                0                 0

Port       Dbl-Drops-Queue-1 Dbl-Drops-Queue-2 Dbl-Drops-Queue-3 Dbl-Drops-Queue-4
Gi3/1                      0                 0                 0                 0

Port       Dbl-Drops-Queue-5 Dbl-Drops-Queue-6 Dbl-Drops-Queue-7 Dbl-Drops-Queue-8
Gi3/1                      0                 0                 0                 0

Port         Rx-No-Pkt-Buff     RxPauseFrames    TxPauseFrames   PauseFramesDrop
Gi3/1                     0                 0                0                 0

Port       UnsupOpcodePause
Gi3/1                     0

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする