ネットギア製品スマートスイッチでのQoS
ネットギア製品のスマートスイッチでは、StrictとWRRをサポートしています。Strictキューにフレームがある限り、他のフレームは送信されませんが、なくなると他のキューから重み付けに従って送信されます。
以下のような出力キューを持っており、デフォルトではCoSに従って各キューに割り振られます。
例えば、VoIPでは通常CoS5になりますが、デフォルトで出力キュー2に割り当てられ、優先制御されます。
又、VLAN等で分類し、マーキングして優先制御させる事も出来ます。
ポートベースのQoS設定
以下のようにコアスイッチが2台あり、スマートスイッチAとBにパソコンとIP電話が接続された構成を例に説明します。
ネットギア製品のスマートスイッチは、デフォルトでQoSが有効でCoSに従って優先制御されます。このため、VoIPの優先だけを考えた場合、CoS5の時に溜められるキュー2をSctictに設定する事で絶対優先が可能です。
Sctictの設定は、「QoS」→「CoS」→「Advanced」→「Interface Queue Configuration」で行えます。
赤枠部分で全ポートを選択していますが、各ポート単位で選択も可能です。緑枠部分がキューの選択です。0〜3まで選択出来ます。
オレンジ枠部分は、選択したキューをStrictにするか、WRR(weigthed)で優先制御するかの選択です。デフォルトは全てWRRです。各キュー毎にStrictかWRRかを設定出来ます。
WRRを選択した時は、Minimum Bandwidthで重みを設定します。重みは%が単位で、全キュー合計で100%以内にする必要があります。「APPLY」をクリックすると、設定が反映されます。
上記では、全ポートでキュー2をScrictに設定しています。この設定により、CoS5で受信したIP電話からのフレームは、以下のようにキューイングされて、絶対優先で送信されます。
パソコンからのフレームでCoSが設定されていない場合は、以下のようにキューイングされ、IP電話からのフレームがない場合のみ送信されます。
ポート単位でDSCPに基づいて優先制御したり、帯域制御したりも出来ます。設定は、「CoS Interface Configuration」で行います。
赤枠部分でポートを選択します。全ポートを1度に選択する事も出来ます。緑枠部分が信頼するマーキングです。デフォルトは802.1pで、CoSを信頼して優先制御します。上記はDSCPを選択していますが、Untrustedにして信頼しないようにも出来ます。
オレンジ枠部分のInterface Egress Shaping Rateは、シェーピングの帯域です。ここで設定した以上の速度になる時は、フレームがキューに溜められます。Interface Ingress Rate Limitは、受信する最大帯域です。設定した速度を超えるとフレームは破棄されます。デフォルトは、どちらも制限されていません。
デフォルトのキュー割り当て
CoSに対しては、以下のようにデフォルトで溜めるキューが設定されています。
CoS | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
キュー | 1 | 0 | 0 | 1 | 2 | 2 | 3 | 3 |
例えば、タグ無しフレームはCoS0として扱われ、キュー1に溜められます。
PHBに対しては、以下のようにデフォルトで溜めるキューが設定されています。
PHB | CS0 | CS1 | CS2 | CS3 | CS4 | CS5 | CS6 | CS7 |
---|---|---|---|---|---|---|---|---|
キュー | 1 | 0 | 0 | 1 | 2 | 2 | 3 | 3 |
PHB | AF11 | AF12 | AF13 | AF21 | AF22 | AF23 |
---|---|---|---|---|---|---|
キュー | 0 | 0 | 0 | 0 | 0 | 0 |
PHB | AF31 | AF32 | AF33 | AF41 | AF42 | AF43 |
キュー | 1 | 1 | 1 | 2 | 2 | 2 |
PHB | EF |
---|---|
キュー | 2 |
例えば、AF31(DSCP26)はキュー1に溜められます。
又、PHB間の各DSCPにはそれぞれ以下のキューが割り当てられています。
DSCP | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
キュー | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DSCP | 23 | 25 | 27 | 29 | 31 | 33 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 |
キュー | 0 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | DSCP | 47 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 57 | 58 | 59 | 60 | 61 | 62 |
キュー | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | DSCP | 63 |
キュー | 3 |
所々数字が抜けています。例えばDSCP8(001000)が抜けているのは、CS1(001000)と同じためです。
「DSCP to Queue Mapping」でデフォルトの割り当てを変更する事も可能ですが、ネットワーク全体で統一する必要があるため、変更は推奨しません。
DiffServによるQoS設定
クラスにより分類し、優先制御や帯域制御するポリシーを作成して設定する事も可能です。
ポートベースで説明した時と同じ図を使って、今度はDiffServに従って設定します。IP電話のアドレスは192.168.1.0/24を前提とします。
クラスの作成は、「QoS」→「DiffServ」→「Advanced」→「Class Configuration」で行えます。
赤枠部分でクラス名を入力し、緑枠部分はALLを選択します。「ADD」をクリックすると、クラスが追加されます。
クラスは画面下に追加され、リンクされています。そのリンクをクリックすると、以下画面が表示されてクラスの条件が設定出来ます。
今回の例では、IP電話のアドレス範囲が192.168.1.0/24のため、赤枠部分を設定しています。他には、VLAN、ポート番号、MACアドレス、CoS、DSCP等で分類出来ます。「APPLY」をクリックすると、設定が反映されます。
ポリシーは、「Policy Configuration」で作成出来ます。
赤枠部分でポリシー名を入力し、緑枠部分で先ほど作成したクラスを選択します。つまり、クラスで定義した192.168.1.0/24の範囲にマッチすると、このポリシーが適用されます。「ADD」をクリックすると、ポリシーが追加されます。
ポリシーは画面下に追加され、リンクされています。そのリンクをクリックすると、以下画面が表示されてクラスにマッチした時の動作が設定出来ます。
今回の例では絶対優先するため、赤枠部分でキュー2を選択し、青枠部分で「Mark IP DSCP」にチェックを入れてPHBをEFに設定しています。他には、破棄、CoSやIP Precedenceでマーキング、帯域を設定したり出来ます。「APPLY」をクリックすると、設定が反映されます。
作成したポリシーは、ポートに割り当てる必要があります。割り当ては、「Service Configuration」で行います。
赤枠部分で、全ポートを選択していますが、ポート単位で選択も出来ます。緑枠部分で先ほど作成したポリシーを選択します。「APPLY」をクリックすると、設定が反映されます。
上記設定により、全ポートで192.168.1.0/24から受信したフレームは、DSCP46にマーキングされ、キュー2に溜められます。
キュー2をStrictにする場合は、ポートベースのQoS設定で説明した「Interface Queue Configuration」画面での設定が必要です。
尚、スイッチA、Bで上記設定をすれば、コアスイッチではポートベースのQoS設定によりDSCPを信頼して絶対優先させるだけで済みます。
QoS割り当ての確認
各ポートにどのポリシーが割り当てられているかは、「Service Statistics」で確認出来ます。
上記では、全ポートでtest-policyが割り当てられている事が分かります。又、右側には分類するためのクラスが表示されています。クラスは選択できるようになっており、1つのポリシーに複数のクラスが所属する事が出来ます。例えば、同じポリシーの中にVLAN10で分類するクラス、IPアドレス192.168.1.0/24の範囲で分類するクラスを設け、それぞれ異なる動作をさせる事が出来ます。
クラスとポリシーの削除
以下のように、ポリシー:policy-testは全ポートに割り当てられており、クラス:testとtest2が関連付けられているとします。
クラス:test2を削除するには、policy-testが使われていない状態にする必要があります。これは、「Service Configuration」画面で行います。
policy-testが使われているポートを選択し、「Policy In」を「None」に変更します。
次に、test2とpolicy-testの関連付けを解除します。これは、「Policy Configuration」画面で行います。
上記のようにtest2側にチェックを入れて、「DELETE」をクリックすると関連が削除されます。
これで、「Class Configuration」画面でクラス:test2が削除出来ます。
test2にチェックを入れて「DELETE」をクリックすると、test2が削除されます。
ポリシー:policy-testを削除したい場合、クラス:testとの関連も削除します。すると、「Policy Configuration」画面で以下のようにクラスとの関連がない(Member Classが空欄)ポリシーが表示されます。
ポリシーにチェックを入れて、「DELETE」をクリックするとポリシーが削除出来ます。