Catalyst 3560にはルータとは異なる独自のQoSが存在します。Catalyst 3560には2つの入力キューが存在し、SRR (Shared Round Robin)という特殊なアルゴリズムによってパケットの割り振りを行います。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Switch(config)# mls qos Switch(config)# mls qos srr-queue input priority-queue <id> bandwidth <percent> Switch(config)# mls qos srr-queue input bandwidth <weight1> <weight2> Switch(config)# mls qos srr-queue input dscp-map queue <id> [ threshold <id> ] <dscp 1> <dscp 2> ... <dscp N> Switch(config)# mls qos srr-queue input cos-map queue <id> [ threshold <id> ] <cos 1> <cos 2> ... <cos N>
構成図
以下の構成で動作確認を行います。
[physical diagram] +------+f0/0 +------+f0/13 +------+f0/1 +------+ | R1 +--------+ SW 1 +--------+ SW 2 +--------+ R2 | +------+ f0/1+------+ f0/13+------+ f0/0+------+ [logical diagram] 192.168.12.0/24 f0/0 f0/0 +------+.1 .1+------+ | +------------+ | | R1 | | R2 | | +------------+ | +------+.2 .2+------+ f0/0.21 f0/0.21 192.168.21.0/24
[R1] ipx routing ! interface FastEthernet0/0 ip address 192.168.12.1 255.255.255.0 ! interface FastEthernet0/0.21 encapsulation dot1Q 21 ip address 192.168.21.1 255.255.255.0 ipx network 21 encapsulation SNAP ! line vty 0 4 password cisco login [R2] ipx routing ! interface FastEthernet0/0 ip address 192.168.12.2 255.255.255.0 ! interface FastEthernet0/0.21 encapsulation dot1Q 21 ip address 192.168.21.2 255.255.255.0 ipx network 21 encapsulation SNAP ! line vty 0 4 password cisco login [SW1] vlan 12,21 ! interface FastEthernet0/1 switchport trunk encapsulation dot1q switchport trunk native vlan 12 switchport mode trunk ! interface FastEthernet0/13 switchport trunk encapsulation dot1q switchport mode trunk ! interface range FastEthernet0/14 - 21 shutdown [SW2] vlan 12,21 ! interface FastEthernet0/1 switchport trunk encapsulation dot1q switchport trunk native vlan 12 switchport mode trunk ! interface FastEthernet0/13 switchport trunk encapsulation dot1q switchport mode trunk ! interface range FastEthernet0/14 - 21 shutdown
設定全文は下記ファイルです。詳細設定は下記を参照ください。
仕様説明
mls qos
Catalyst 3560はCoS値(またはDSCP)に基づくinput queueを実装しています。この機能を有効にするには、mls qosを有効にする必要があります。
Switch(config)# mls qos
priority
Catalyst 3560には、2つのinput queueが存在します。以下のコマンドで、priority queueの設定と各キューの重み付けを定義する事ができます。
Switch(config)# mls qos srr-queue input priority-queue <id> bandwidth <percent> Switch(config)# mls qos srr-queue input bandwidth <weight1> <weight2>
例えば以下のような設定ならば、全処理時間のうち20%がqueue 1の処理を最優先で行います。残りの80%がbandwidthコマンドで指定して重みに基づいて処理されます。つまり、80%の1/4がqueue1の処理に充てられ、80%の3/4がqueue2の処理に割り当てられます。
Switch(config)# mls qos srr-queue input priority-queue 1 bandwidth 20 Switch(config)# mls qos srr-queue input bandwidth 1 3
以下のコマンドで、どの優先度のパケットがどのqueueに格納されるかを定義します。(thresholdの説明は後述します)
Switch(config)# mls qos srr-queue input dscp-map queue <id> [ threshold <id> ] <dscp 1> <dscp 2> ... <dscp N> Switch(config)# mls qos srr-queue input cos-map queue <id> [ threshold <id> ] <cos 1> <cos 2> ... <cos N>
WTP(weighted tail drop)
Catalyst 3560はWTPと呼ばれる優先度に基づいたqueueingを行います。
まず、queue 1, queue 2のそれぞれに割り当てるキュー長の比率を定義します。
Switch(config)# mls qos srr-queue input buffer <percent1> <percent2>
各キューに対して3段階の閾値を定義します。threshold1, threshold2が定義可能な値で、threshold3は100%固定です。
Switch(config)# mls qos srr-queue input threshold <queue-id> <threshold1> <threshold2>
以下のコマンドで、どの優先度のパケットが、どのqueueに格納され、どのthresholdが適用されるかを定義します。
Switch(config)# mls qos srr-queue input dscp-map queue <id> threshold <id> <dscp 1> <dscp 2> ... <dscp N> Switch(config)# mls qos srr-queue input cos-map queue <id> threshold <id> <cos 1> <cos 2> ... <cos N>
priority
設定投入
以下の設定をSW1に投入し、queue1, queue2の受信比率を変更します。
[SW1] mls qos mls qos srr-queue input priority-queue 2 bandwidth 20 mls qos srr-queue input bandwidth 1 3 mls qos srr-queue input cos-map queue 1 0 1 2 3 4 6 7 mls qos srr-queue input cos-map queue 2 5 ! interface FastEthernet0/1 mls qos trust cos
設定確認
show runにより設定を確認します。なお、デフォルト設定と変わらないコマンドはshow runで表示されません。
[SW1] SW1#show running-config | include ^mls mls qos srr-queue input bandwidth 1 3 mls qos srr-queue input priority-queue 2 bandwidth 20 mls qos SW1#
queue1, queue2の受信比率は以下のコマンドにより確認できます。
[SW1] SW1#show mls qos input-queue Queue : 1 2 ---------------------------------------------- buffers : 90 10 bandwidth : 1 3 priority : 0 20 threshold1: 100 100 threshold2: 100 100 SW1#
cosとqueue割り当ての関係は以下のコマンドで確認できます。
[SW1] SW1#show mls qos maps cos-input-q Cos-inputq-threshold map: cos: 0 1 2 3 4 5 6 7 ------------------------------------ queue-threshold: 1-1 1-1 1-1 1-1 1-1 2-1 1-1 1-1 SW1#
WTP
設定投入
以下の設定をSW1に投入します。cos 0, 1はqueueの60%でdropされるようにし、cos 2, 3, 4はqueueの80%でdropされるようにします。
[SW1] mls qos mls qos srr-queue input priority-queue 2 bandwidth 20 mls qos srr-queue input bandwidth 1 3 mls qos srr-queue input buffers 85 15 mls qos srr-queue input cos-map queue 1 threshold 1 0 1 mls qos srr-queue input cos-map queue 1 threshold 2 2 3 4 mls qos srr-queue input cos-map queue 1 threshold 3 6 7 mls qos srr-queue input cos-map queue 2 5 mls qos srr-queue input threshold 1 60 80
設定確認
確認コマンドは以下の通りです。
[SW1] SW1#show running-config | include ^mls mls qos srr-queue input bandwidth 1 3 mls qos srr-queue input threshold 1 60 80 mls qos srr-queue input buffers 85 15 mls qos srr-queue input priority-queue 2 bandwidth 20 mls qos srr-queue input cos-map queue 1 threshold 2 2 3 4 mls qos srr-queue input cos-map queue 1 threshold 3 6 7 mls qos SW1# SW1# SW1#show mls qos input-queue Queue : 1 2 ---------------------------------------------- buffers : 85 15 bandwidth : 1 3 priority : 0 20 threshold1: 60 100 threshold2: 80 100 SW1# SW1# SW1#show mls qos maps cos-input-q Cos-inputq-threshold map: cos: 0 1 2 3 4 5 6 7 ------------------------------------ queue-threshold: 1-1 1-1 1-2 1-2 1-2 2-1 1-3 1-3 SW1#