QoS (Quality of Service:サービス品質) は、予測可能なネットワークの動作と性能を提供することを目的とした多様な方式を提供します。この予測可能な性質は、VoIP (Voice over IP)、マルチメディア コンテンツ、発注システムやクレジット カード決済システムなどの重要な商用アプリケーションなどの特定の種類のアプリケーションにとって、きわめて重要です。この種類の予測可能性は、帯域幅量の調整では実現されません。 なぜなら、ネットワークにおいては帯域幅をどんなに増やしても任意の時点でその容量まで使い果たされる結果になるためです。QoS を正しく設定し実装することによってのみ、トラフィックを適切に管理し、望ましいレベルのネットワーク サービスを保証することが可能になります。
このセクションは次のサブセクションから構成されています。
• 分類
• 制限
• 制限
分類は、管理の必要なトラフィックを識別するための最初のステップとして必要です。SonicOS では、トラフィックを分類するためのインターフェースとして、アクセス ルールを使用します。これにより、アドレス オブジェクト、サービス オブジェクト、スケジュール オブジェクトの要素の組み合わせを使用した、きめの細かい制御が提供されます。分類基準は、"すべての HTTP トラフィック" のように大まかに設定することも、"毎週水曜日午前 2:12 のホスト A からサーバ B への SSH トラフィック" のように詳細に設定することもできます。
一旦識別または分類されると、管理可能になります。管理は、ネットワークが完全な自律システムである限り、完璧に効果的な SonicOS の帯域幅管理 (BWM) により内部的に実行されます。未知の構成の外部ネットワーク基盤、または、帯域幅を争う他のホスト (例えば、インターネット) などのような、外部または中間の要素と一旦遭遇すると、保証と予測を提供する能力は低下します。言い換えれば、ネットワークのエンドポイントとその間にあるものがすべて管理内にある限りは、BWM は設定した通りに動作します。一旦外部の要素が持ち込まれると、BWM の精度と有効性は低下し始めます。
しかし、すべてが失われるわけではありません。SonicOS でトラフィックを分類する場合、トラフィックにタグを付けることができます。この分類を CoS タグによって保持することができる特定の外部システムに通知することで、これらの外部システムも QoS の提供に関与することができます。
トラフィックは、利用可能な多くのポリシング、キューイング、シェイピングのどれかを使用して、制限 (管理) することができます。SonicOS は、機能を有効化帯域幅管理に詳しく説明されている、送信および受信帯域幅管理 (BWM) による内部的な制限機能を提供します。SonicOSの BWM は、十分な帯域幅を持つ完全な自律プライベート ネットワークにとって完璧に効果的なソリューションですが、より未知の外部ネットワーク要素や、帯域幅の競合に遭遇した場合に、効果的でなくなることがあります。
パブリック ネットワークでのサイト間 VPN
SonicOS 統合 BWM は、両方のエンド ポイントで受信トラフィックと送信トラフィックを分類および制御できるので、VPN 接続ネットワーク間のトラフィックを管理するのに非常に効果的です。エンド ポイント間のネットワークが QoS に対応していない場合、すべての VPN ESP は等しく認識および処理されます。通常、これらの中間ネットワークまたはそのパスに対する制御は行われないため、QoS を完全に保証することは困難ですが、より予測可能な動作を提供するのに役立ちます。
エンド ツー エンド QoS を提供するために、ビジネス クラスのサービス プロバイダは、彼らの IP ネットワーク上でトラフィックの制限サービスを提供するようになりました。通常、これらのサービスは、トラフィックの分類およびタグ付けに関して顧客の設備に依存します (一般に、DSCP などの標準の級割方式を使用します)。
サービス プロバイダによって採用されている実際の制限方式は各種ありますが、一般的に、トラフィックに優先順位を付けるための重み付け公平キューイング (WFQ) のような等級をベースとしたキューイング方式や、テール ドロップやランダム初期検知などの輻輳を回避する方式が使用されています。
機能を有効化
|
|
|
|
SonicOS は、発信 (送信) および着信 (受信) 帯域幅管理 (BWM) インターフェースを通して統合されたトラフィック調節機構を提供します。送信 BWM は、信頼されるゾーンおよび公開ゾーン (LAN や DMZ など) から信頼されないゾーンおよび暗号化ゾーン (WAN や VPN など) へのトラフィックに適用できます。受信 BWM は、信頼されないゾーンおよび暗号化ゾーンから信頼されるゾーンおよび公開ゾーンへのトラフィックに適用できます。
Note 帯域幅管理は QoS システムに完全に統合されますが、1 台の SonicWALL 装置で等級分けとシェイピングを実行する点で、事実上外部システムへの依存性を除去し、したがってマーキングの必要性を除去し、単一のアクセス ルール上で同時に帯域幅管理と QoS (レイヤ 2 および/または レイヤ 3 マーキング) を設定できます。これにより、外部システムでは、既にトラフィックのシェイピングを行った後でさえ、SonicWALL 上で実行された分類のメリットが得られます。
帯域幅管理を設定するには、まず関連する WAN インターフェース上で帯域幅管理を有効にし、そのインターフェースで使用可能な帯域幅を Kbps (キロビット毎秒) で宣言します。これを実行するには、
「ネットワーク > インターフェース」ページで WAN インターフェースに対する設定アイコンを選択し、「詳細」タブに移動します。
送信および受信帯域幅管理は、WAN インターフェース上で一緒に、または別々に有効にできます。送信帯域幅と受信帯域幅に異なる帯域幅の値を入力して、非対称リンクをサポートすることができます。ファスト イーサネット インターフェースに対しては最大 100,000 Kbps (100 Mbit) のリンク速度を宣言できますが、ギガビット イーサネット インターフェースは最大 1,000,000 Kbps (1 ギガビット) のリンク速度をサポートします。宣言する速度は、リンクで使用可能な実際の帯域幅を反映している必要があります。リンクのオーバーサブスクライブ (使用可能な帯域幅を上回る値を宣言すること) はお勧めしません。
Note インターフェースに対して帯域幅管理を有効にし、リンク速度を定義したら、帯域幅設定でアクセス ルールを設定していない場合でも、そのリンクを通過するトラフィックは受信と送信の両方で宣言された値まで調整されます。
WAN インターフェース上で一方または両方の帯域幅管理設定を有効にし、使用可能な帯域幅を宣言したら、「アクセス ルール」に「イーサネット帯域幅管理」タブが表示されます。「イーサネット帯域幅管理」タブには、WAN インターフェース上で有効になっている帯域幅管理に応じて、受信設定、送信設定、またはその両方が表示されます。
「一般」タブの設定によって、トラフィックを分類します。上記の例で、設定されている帯域幅管理ルールが他にないとすると、LAN (信頼される) ゾーンの LAN サブネットから VPN (暗号化) ゾーンのリモート サブネット 10.50.165.0 (サービス グループ VOIP を構成) へのトラフィックは、80% (1500Kbps の 80% = 1200Kbps) を超えることを許可されず、他のトラフィック用に 300Kbps が残ります。
宣言に関する制限事項
各帯域幅管理ルールは、パケットのキューイングにメモリを消費するため、SonicOS 上で許可されるキューされたパケットとルールの数はプラットフォームによって制限されます (値は変更されることがあります)。
帯域幅管理について、以下を考慮してください。
• すべての BMW ルールにおける、宣言済みのすべての保証された帯域幅の合計パーセントは、100% を超えることができません。使用可能な帯域幅の 100% を超えて保証することはできないからです。
• すべての最大帯域幅の値の合計は、保証された帯域幅の合計と等しいか、それより大きくなければなりません。
• すべての最大帯域幅の値の合計は、100% を超えることができます (例: 明示的な調節が必要ない場合、すべての BWM ルールで 100% の最大帯域幅を指定できる)。
SonicOS で採用されている帯域幅管理は、キュー管理と輻輳回避手法の融合に基づいていますが、実験的実践においては等級ベース キューイング (CBQ) に最もよく似ています。これは、Sally Floyd と Van Jacobson が、RFC2309『Recommendations on Queue Management and Congestion Avoidance in the Internet』の要素とさまざまなクレジットベース フロー制御理論を組み込みつつ、『Link-sharing and Resource Management Models for Packet Networks』で定義したものです。SonicOS の BWM スキームの重要な目標には、以下のものがあります。
• 簡潔さ – 処理オーバーヘッドを一貫して、はっきりと、平均パケット送信時間より短くする必要があります。
• 堅牢さ – スケジューラは予測可能なトラフィック条件でも予測不可能なトラフィック条件でも十分に機能しなければなりません。また、トラフィックのバーストや同期の問題など、望ましくない副作用をもたらしてはいけません。
• 公平さ – 十分に機能しないトラフィックや貪欲なトラフィックがある場合は特に、使用可能な帯域幅の共有と定義されている管理スキームが釣り合っていなければなりません。
WAN リンクで利用可能な帯域幅は、送信された各パケットのリンク クレジット (トークン) プールを調整することにより追跡されます。リンクがまだ飽和点に達していない場合、優先順位が設定されたキューが処理の対象であると見なされます。
CBQ と同様に、SonicOS BWM は、等級構造に基づいています。 トラフィックのキューは、アクセス ルール (例えば、SSH、Telnet、HTTP) に従って分類され、定義された優先順位に応じてスケジュールされます。関連するそれぞれのアクセス ルールには、 3 つの値 (保証された帯域幅、最大帯域幅、帯域幅優先順位) が割り当てられています。優先順位は、8 つの優先順位リング (最も高い優先順位は 0、最も低い優先順位は 7) のうちの 1 つを割り当てることにより設定します。結果のキューイング階層は、すべてのノードが子を持たないリーフ ノードである、常に 1 階層のノード ツリー構造として考えることができます。
キュー処理では、1 タイムスライスあたり約 256 分の 1 秒の時分割の仕組みが利用されます。タイムスライスの範囲内で、優先順位 0 のキューから評価が開始され、キュー クレジット プールに対するパケットの長さを測定することにより、通信の適格性がパケット単位で判定されます。十分なクレジットが利用可能な場合はパケットが転送され、それに伴いキューおよびリンク クレジット プールが減少します。パケットがキューに残っている限り、および保証されたリンクおよびキュー クレジットが利用可能な限り、そのキューからのパケットの処理が継続されます。保証されたキュー クレジットが使い果たされると、この優先順位リングの次のキューが処理されます。残りの優先順位リングに対しても、同じ処理が繰り返されます。リング 7 の処理が完了すると、再びリング 0 から処理が開始されます。
超過した帯域幅のスケジュールは、各優先順位内部ではパケット単位のラウンドロビンが使用される、厳密優先順位方式で行われます。言い換えると、特定のタイムスライスに対して超過した帯域幅がある場合、その優先順位リングの中のすべてのキューは、超過分がなくなるまで交代でパケットを送信します。その後、処理は次の優先順位にリング移行します。
このクレジットベースの方式は、CBQ の過負荷の概念の必要性を取り除き、従来の CBQ の大きな問題の 1 つである (ダウンストリームの機器とリンクを容易に溢れさせる) 爆発的な動作に対処するものです。このより慎重なアプローチにより、通常であれば無駄に発生する CPU サイクルが SonicOS に与えられます。このような CPU サイクルは、ダウンストリームの機器の飽和を理由とする再送信に加え、TCP スロースタート (Sally Floyd の『Limited Slow-Start for TCP with Large Congestion Windows』を参照) や (RFC 2884 で説明されている) グローバル同期などのその他の輻輳動作や性能低下動作を回避する必要性から発生します。
キュー管理アルゴリズムは、伝統的に、バッファがオーバーフローするときだけパケットを破棄することにより、ルータのパケット キューの長さを管理します。各キューの最大長は設定されています。ルータは、この最大サイズに達するまでパケットを受け入れ、この時点から、着信パケットを破棄します。新しいパケットは、バッファ スペースが利用可能になった時点で受け入れられます。この手法はテール ドロップとして知られています。この方式は、長い間インターネットで利用されていますが、いくつかの欠点があります。すべてのフローから到着するすべてのパケットは、バッファがオーバーフローすると破棄されます。 この動作は、TCP の輻輳制御メカニズムとの間で悪い相互作用を引き起こします。1 つのサイクルは、最大キュー サイズを超過した後の爆発的な破棄で始まります。 その後、エンド システムがバック オフすることにより、ルータでの十分に利用されない期間が続きます。次に各エンド システムは、爆発的な破棄が再び始まるポイントまで一斉にウィンドウを増やします。この現象は、グローバル同期と呼ばれます。グローバル同期は、リンクの不完全な利用と全体のスループットの低下を導きます。テール ドロップに関するもう 1 つの問題は、ある状況下で、単一の接続またはいくつかのフローでキュー スペースが独占される場合があるということです。その結果、同期やその他のタイミング効果を招くロック アウト現象が発生します。最後に、テール ドロップの重大な欠点の 1つは、キューが長時間にわたっていっぱいになることです。キュー管理の大きな目標の 1 つは、定常状態のキュー サイズを縮小することです。
送信帯域幅管理のアルゴリズム
SonicWALL を通過する各パケットは、リアルタイム パケットかファイアウォール パケットのどちらかとして最初に分類されます。ファイアウォール パケットは、ユーザによって生成される、常に BWM モジュールを通過するパケットです。リアルタイムパケットは、通常、ファイウォールによって生成される、BWMモジュールによって処理されないパケットで、暗黙的に最も高い優先順位が与えられます。リアルタイム パケット (ファイウォールによって生成されます) を次に示します。
• WAN 負荷分散プローブ
• ISAKMP
• ウェブ CFS
• PPTP および L2TP 制御パケット
• DHCP
• ARP パケット
• ウェブ Sense
• Syslog
• NTP
• セキュリティ サービス (アンチウィルス、シグネチャの更新、ライセンス マネージャ)
送信 BWM パケット処理手順
a.パケットの宛先が WAN ゾーンであることを確認します。
b.パケットがファイアウォール パケットとして分類されることを確認します。
c.パケットをアクセス ルールに照合して、BWM 設定を確認します。
d.パケットを適切なルール キューに入れます。
保証された帯域幅の処理
このアルゴリズムは、GBW がどのようにしてすべてのポリシーによって使い果たされるかを示しています。
a.利用可能なリンク BW と等しいリンク クレジットから開始します。
b.このルールに対して設定されている GBW で等級クレジットを初期化します。
c. パケット長が等級クレジット以下の場合は、パケットを転送し、等級クレジットとリンク クレジットからこの長さを差し引きます。
d.等級クレジットがより小さくなるか、ルール キューが空になるまで、キューから次のパケットを選択し、ステップ c を繰り返します。
e. 次のルール キューを選択し、ステップ b から d を繰り返します。
最大帯域幅の処理
このアルゴリズムは、利用されないリンク BW がどのようにしてポリシーによって使い果たされるかを示しています。最も高い優先順位リングから開始し、リンク クレジットが使い果たされるかすべてのキューが空になるまで、パケットをすべてのルール キューからラウンドロビン方式で転送します。そして、次に最も低い優先順位リングに移動し、同じ操作を繰り返します。
a.GBW の利用後の残りのリンク BW と等しいリンク クレジットから開始します。
b.最も高い優先順位リングを選択します。
c.等級クレジットを MBW から GBW を差し引いた帯域幅に初期化します。
d. ルール キューからのパケットの長さがリンク クレジットと等級クレジットよりも小さいかどうかを確認します。
e. この条件に一致する場合、パケットを転送し、等級クレジットとリンク クレジットからこの長さを差し引きます。
f. 次のルール キューを選択し、等級クレジットが使い果たされるか、この優先順位リングのキューが空になるまで、ステップ c から f を繰り返します。
g.次に最も低い優先順位リングを選択し、ステップ c から f を繰り返します。
送信 BWM の例
上の図は、リンク容量が 100 Kbps の OBWM 用に設定されている 4 つのポリシーを示しています。これは、リンク容量が、12800 バイト/秒であることを意味します。以下の表は、各ルールのBWM 値をバイト/秒に換算した値です。
|
a. GBW 処理を行う場合、ルール キュー リスト内の最初のキューである FTP から開始します。リンク クレジットは 12800 で、等級クレジットは 1280 です。400 バイトのパケット 1 が WANリンクで送出されます。 その結果、リンク クレジットが 12400 になり、等級クレジットが 880になります。パケット 2 は、1500 バイトを送信するのに等級クレジットが足りないので、送出されません。残っている等級クレジットは、次のタイム スライスに持ち越されます。
b.このリスト内の次のルール キューである H323 に移動します。1500 バイトのパケット 1 が送出されます。 その結果、リンク クレジットが 10900 になり、H323 用の等級クレジットは1060 になります。パケット 2 もキューから送出され、リンク クレジットが 10200 になり、等級クレジットが 360 になります。パケット 3 は、等級クレジットが足りないので、送出されません。残っている等級クレジットは、次のタイム スライスに持ち越されます。
c. Yahoo メッセンジャー キューに移動します。パケット 1 を処理するには 640 バイトの等級クレジットでは足りないので、このキューからのパケットは処理されません。ただし、この等級クレジットは、次のタイム スライスに持ち越されます。
d.VNC キューでは、パケット 1 とパケット 2 が送信され、リンク クレジットが 8000 になり、等級クレジットが 360 になります。等級クレジットは持ち越されます。
e.すべてのキューが GBW のために処理されたので、残りのリンク クレジット (=8000) を利用する処理に移ります。
f. 最も高い優先順位リング 0 から開始し、この優先順位内のすべてのキューをラウンドロビン方式で処理します。H323 では最大=2560 (MBW - GBW) まで利用することができるので、500 バイトのパケット 3 を送信します。これで、リンク クレジット=7500、最大=2060 となります。
g. この優先順位リング内の次のキューである VNC キューに移動します。500 バイトのパケット 3 を送出します。 残りは、リンク クレジット=7000 バイト、等級最大=140 (MBW - GBW - 500) となります。
h.この優先順位リング内の次のキューに移動します。H323 キューは既に空なので、次のキューである VNC に再度移動します。
i. VNC キューから 40 バイトのパケット 4 が送信されます。 残りは、リンク クレジット=6960、等級最大=100 となります。500 バイトのパケット 5 は、等級最大が足りないので送信されません。
j. 次の低優先順位キューに移動します。優先順位リング 1 から 3 は空なので、FTP のためのルール キューがある優先順位リング 4 を選択します。1000 バイトのパケット 2 が送信されます。 残りは、リンク クレジット=6000、等級最大=280 となります。この優先順位には他にキューがないので、FTP キューが再度処理されます。しかし、1500 バイトのパケット 3 は、等級最大が足りないので送信されません。
k. 次に低い優先順位リング 7 を持つ、Yahoo メッセンジャーに移動します。1200 バイトのパケット 1が送信されます。 残りは、リンク クレジット=4800、等級最大=80 となります。この優先順位には他にキューがないので、このキューが再度処理されます。しかし、1500 バイトのパケット 2 は、最大が足りない (=80) ので送信されません。
l. この時点で、すべての優先順位リングのすべてのキューが、現在のタイム スライスで処理されました。
受信帯域幅管理は、着信する TCP および UDP トラフィックのシェイピングを行うために使用します。TCP の本来のフロー制御動作は、着信の帯域幅を管理するために使用されます。着信 UDP トラフィックを管理するには、受信モジュールで CBQ を使用して、着信パケットをキューに入れます。TCP の速度は、本質的に ACK の受信速度により制御されます。 つまり、TCP は、ACK を受信するのと同じ速度で、ネットワークにパケットを送出します。IBWM を行う場合、TCP 送信元の送信速度は、送信元宛ての ACK の速度を制御することにより、低下します。送信元への ACK を遅らせることにより、フローのラウンドトリップ時間 (RTT) が長くなり、送信元の送信速度が低下します。
受信モジュールは、各トラフィック等級の受信速度を監視および記録します。また、送信 ACK を監視し、送信速度を引き下げる必要がある場合は、それらをキューに入れます。ACK は、受信 BW の可用性と平均速度に従って解放されます。
受信帯域幅管理のアルゴリズム
IBWM では、8 つの優先順位リングが維持管理されます。各優先順位リングには、IBWM が有効な 1 つのルールに対して 1 つのキューがあります。IBWM プールは、最も高い優先順位リングから最も低い優先順位リングへと、よりトラフィックのシェイピングを行うように処理されます。IBWM では、3 つの重要なアルゴリズムが採用されています。
受信速度の更新
このアルゴリズムは、WAN からの各パケットを処理し、パケットが属する等級の受信速度を更新します。また、リンクを過剰使用しているトラフィック等級があれば、その旨の印を付けます。
a. パケットが WAN ゾーンからで、ファイアウォール パケットであることを確認します。
b.このパケットの長さを、現在のタイム スライスでこれまでに受信したパケットの合計の長さに追加します。リンク クレジットから、(GBW、パケット長) のうち小さい方を差し引きます。
c. 合計が等級のクレジットよりも大きい場合は、リンクを過剰使用している旨の印を等級に付けます。
d. パケット長が等級のクレジットよりも大きい場合は、等級に加えてリンクにも、過剰使用している旨の印を付けます。
送信 ACK の監視
このアルゴリズムは、どのように送信 ACK を監視および処理するかを示しています。
a.パケットが WAN ゾーン宛てで、TCP ACK であることを確認します。
b. 等級またはインターフェースに過剰使用の印が付けられている場合は、パケットを適切な受信ルール キューに入れます。
ACK の処理
このアルゴリズムは、前のタイム スライスの BW の使用量に従って等級ごとの BW パラメータを更新するために使用されます。BW の使用量は、前のタイム スライスで等級に対して受信したバイト数の合計から求められます。このアルゴリズムは、等級に対して使用可能なクレジットに従って受信モジュール キューからのパケットを処理するためにも使用されます。
等級は、特定のタイム スライスで BW の使用量が GBW を超えると、負債を持つことになります。すると、この等級のすべての送信 ACK は、負債が 0 になるまでキューに入れられます。それぞれの連続したタイム スライスで、負債から GBW 分が差し引かれます。 リンク BW が残っている場合、MBW から GBW を引いた値も差し引かれます。
前のタイム スライスにおける BW の使用量を算出します。
a. 等級による BW の使用量を使用して、平均受信速度を算出します。
b.BW の使用量が等級クレジットを超える場合は、その差分を負債として記録します。リンク BWが残っている場合は、MBW から GBW を引いた値を、負債から差し引きます。
c.現在のタイム スライスの等級とリンク クレジットを算出します。
• 等級に負債がある場合、負債とリンクのクレジットから GBW を差し引きます (これは、現在のタイム スライスにおいてこの等級が既に GBW を使い果たしていることを示しています)。
• 等級に負債がなく、この等級に対して着信しているパケットがある場合は、リンク クレジットを加算します。 つまり、各タイム スライスで、GBW をクレジットに追加します。
• 負債がある場合は、過剰使用の印が等級に付けられます。
d.最も高い優先順位リングから最も低い優先順位リングへと、受信プールからのパケットを処理します。
e.等級クレジットを残りのクレジットとして記録します。
f. 残りのクレジットが平均速度以上である場合は、ACK パケットを処理し、残りのクレジットから平均速度を差し引きます。
g. 残りのクレジットが足りなくなるか、受信 ACK キューが空になるまで、ステップ g を繰り返します。
h.リング内の次のルール キューに対して、ステップ f から h を繰り返します。
i. 次の最も低い優先順位リングに対して、ステップ f から i を繰り返します。
受信帯域幅管理の例
GBW=5 Kbps、MBW=10 Kbps、リンク BW=100 Kbps の等級があるとします。バイト/秒に換算すると、GBW=640、超過の BW= (MBW - GBW) =640、リンク BW=12800 となります。
|
a. 等級クレジットは 640 から始まります。2 行目で、前のタイム スライスでこの等級に対して1300 バイトを受信します。これは等級クレジットよりも大きいので、負債=20 (1300 - GBW - 超過の BW) となります。現在のタイム スライスについては、(等級の GBW から負債の 20 バイトが既に使用されているので) 等級クレジット=620 (GBW - 負債)、負債=0、リンク BW=12780 となります。
b. 2a 行目は、この等級の送信 ACK を示します。等級クレジットは速度よりも小さいので、このパケットは適切な受信キューに入れられます。このパケットは、等級クレジットが速度と少なくとも同じにならないと、処理されません。
c. 次のタイム スライスで、等級クレジットは、速度と一致するまで蓄積されます。したがって、2回のタイム スライスの後、等級クレジットは 1900 (620 + 640 + 640) になります。キューに入れられていた ACK パケットは、この時点で受信プールから処理されます。
2a 行目では、WAN ゾーンの TCP 送信元に送信する必要がある ACK パケットを受信します。このACK を即座に送信すると、TCP 送信元からさらに多くのパケットが即座に送信される結果となります。ACK をキューに入れ、等級クレジットが平均速度に達した後にのみ ACK を送信することにより、TCP の送信速度を低下させることができます。 すなわち、この操作を行うことにより、受信速度を落とすことができます。
WAN 負荷分散を利用した帯域幅管理は、次のように機能します。
a. 2 つのインターフェースが WAN として設定され、負荷分散が有効になっていない場合、帯域幅管理はプライマリ WAN インターフェースにのみ適用されます。
b. 2 つのインターフェースが WAN として設定され、負荷分散が有効な場合
• 「アクティブ/パッシブ フェイルオーバー」オプションでは、帯域幅管理はアクティブな WAN インターフェース上でのみ実行されます。
• 「ラウンドロビン」および「比率」オプションでは、リンク容量はプライマリおよびセカンダリ WAN インターフェースに対して使用可能な帯域幅の合計で、帯域幅管理は両方のインターフェース上で実行されます。
• 「スピルオーバー」オプションでは、リンク容量はプライマリ WAN インターフェースの使用可能な帯域幅で、帯域幅管理はスピルオーバーが発生するまでプライマリ インターフェース上で実行されます。スピルオーバー発生後は、セカンダリ インターフェースの容量が使用され、帯域幅管理はセカンダリ WAN インターフェース上で実行されます。
帯域幅管理 (BWM) - トラフィックのシェイピングやポリシングを行うために使用されるさまざまなアルゴリズムあるいは手法を指します。シェイピングは、送信トラフィックを管理することを表します。 ポリシングとは、受信トラフィックを管理することを表します (受付制御とも呼ばれます)。帯域幅管理には、さまざまなキューイングおよび破棄手法を含め、それぞれ独自の設計上の長所を持つ多くの異なる方式があります。SonicWALL では、特定のタイプの受信トラフィックに対する破棄手法に加え、受信および送信 BWM 用にトークン ベース、等級ベースのキューイング方式を採用しています。
• Class of Service (CoS) - 第 2 層または第 3 層のタグのように、分類後にトラフィックに適用される、指示子または識別子です。CoS 情報は、ネットワーク上のトラフィックの等級を区別するため、および QoS システム管理者によって定義された特殊な処理 (例えば優先キューイング、短い待ち時間など) を提供するために、Quality of Service (QoS) システムによって使用されます。
• 分類 - あるタイプ (等級) のトラフィックを識別 (区別) する行為です。QoS のコンテキスト内では、遅延、待ち時間、またはパケット紛失に対するトラフィックの感度に基づいてカスタマイズされた処理 (通常は優先するかどうか) を提供するために行われます。SonicOS では、アクセス ルールを使用して分類を行います。 分類は、送信元ゾーン、送信先ゾーン、送信元アドレス オブジェクト、送信先アドレス オブジェクト、サービス オブジェクト、スケジュール オブジェクトのうちのいくつか、またはすべてに基づいて行うことができます。
• コード ポイント - ホストあるいは中間のネットワーク機器によって IP パケットの DSCP 部分にマーク付け (タグ付け) される値です。現在、タグ付けされたトラフィックの等級 (昇順の優先順位) を定義するために、64 (0~63) のコード ポイントを使用できます。
• 制限 - ネットワーク トラフィックに Quality of Service を提供する多くの方法を記述するために使用される、広い意味を持つ用語です (破棄、キューイング、ポリシング、シェイピングを含みますが、これらに限定されるものではありません)。
破棄 - ネットワーク上で輻輳が発生するかもしれない時期の予測を試み、制限を超過したトラフィックを捨てることで輻輳を防ぐことを目的とする、QoS システムで採用されている輻輳回避メカニズムです。破棄は、キューがいっぱいになる状況を回避しようとするので、キューの管理アルゴリズムと見なすこともできます。高度な破棄メカニズムでは、取り扱いに慎重を要するトラフィックの破棄を回避するために CoS 級割が忠実に守られます。一般的な方式は、以下の通りです。
– テール ドロップ - いっぱいになったキューを無差別に処理する方法で、パケットの CoS 級割にかかわらず、キューの中の最後のパケットが破棄されます。
– ランダム初期検知 (RED) - RED では、キューの状況を監視して、いついっぱいになるかを予測します。その後、グローバル同期の可能性を最小限にするために、ランダムにパケットを破棄します。RED の基本的な実装では、テール ドロップと同様に、CoS 級割は考慮されません。
– 重み付けランダム初期検知 (WRED) - 破棄決定プロセスにおいて DSCP 級割を考慮する、RED の実装です。
• DSCP (Differentiate Service Code Points) - RFC2747 によって記述される IP ヘッダーの ToS フィールドの再利用です。DSCP では、64 のコード ポイント値を使用して、DiffServ (Differentiated Services) を有効にします。その等級によってトラフィックを級割することによって、各パケットをネットワークに沿ったすべてのホップで適切に処理することができます。
• グローバル同期 - キューがいっぱいになることに対処するために設計された輻輳回避方法である破棄の潜在的な副作用です。グローバル同期は、輻輳したリンクを通過する複数の TCP フローが同時に破棄されたとき (例えばテール ドロップ) に発生します。これらのフローのそれぞれに対して、ネイティブな TCP スロースタート メカニズムがほぼ同時に開始されると、リンクはこれらのフローによって再び溢れてしまいます。その結果、輻輳と不十分な利用が周期的に発生します。
• 保証された帯域幅 - ある等級のトラフィックに常に与えられる、インターフェース上で利用可能な合計帯域幅に対して宣言された割合です。受信 BWM と送信 BWM の両方に適用されます。すべての BWM ルールにおける保証された帯域幅の合計は、利用可能な帯域幅の合計の 100%を超過することはできません。帯域幅管理機能が拡張され、速度制限機能が使用できます。第 2 層、3層、または 4 層ネットワーク トラフィックの最大速度を指定するトラフィック ポリシーを作成できます。これにより、プライマリ WANリンクが大量のトラフィックを処理できないバックアップ接続にフェイルオーバーする場合の帯域幅管理が可能になります。「保証された帯域幅」は 0%に設定することもできます。
• 受信 (イングレスまたは IBWM) - 特定のインターフェースに入るトラフィックの速度のシェイピングを行う機能です。TCP トラフィックに対しては、送信の承認 (ACK) を遅らせ、送信元での速度を遅くさせることで、受信フローの速度を調整可能にして、実際のシェイピングを行うことができます。UDP トラフィックの場合、UDP にはネイティブなフィードバック制御がないので、破棄手法が使用されます。
• IntServ - RFC1633 で定義された統合サービス (Integrated Services) です。DiffServ のバックアップCoS システムである IntServ は、各機器がトラフィックを送信する前にネットワーク要件を要求 (または予約) する点で、DiffServ と根本的に異なります。これには、ネットワーク上の各ホップが IntServ 対応である必要があり、また、各ホップですべてのフローの状態情報を保持する必要があります。SonicOS では、IntServ はサポートされません。IntServ の最も一般的な実装は RSVP です。
• 最大帯域幅 - ある等級のトラフィックに許可される最大帯域幅を定義する、インターフェース上で利用可能な合計帯域幅に対して宣言された割合です。受信 BWM と送信 BWM の両方に適用されます。帯域幅の速度制限を指定する調整メカニズムとして使用されます。帯域幅管理機能が拡張され、速度制限機能が使用できます。第 2 層、3層、または 4 層ネットワーク トラフィックの最大速度を指定するトラフィック ポリシーを作成できます。これにより、プライマリ WANリンクが大量のトラフィックを処理できないバックアップ接続にフェイルオーバーする場合の帯域幅管理が可能になります。 「最大帯域幅」は 0%に設定することもできます。 その場合、すべてのトラフィックが遮断されます。
• 送信 (イーグレスまたは OBWM) - インターフェースからトラフィックを送出する速度を制限することです。送信BWM では、8 つの優先順位キューを持つクレジット (またはトークン) ベースのキューイング システムを使用して、アクセス ルールによって分類される異なるタイプのトラフィックを処理します。
• 優先順位 - トラフィックの分類で使用される追加要素です。SonicOS では、8 つの優先順位リング (0=リアルタイム、7=最低) を使用して、BWM に使用されるキュー構造を構成しています。キューは、優先順位リングの順序で処理されます。
MPLS - Multi Protocol Label Switching (マルチ プロトコル ラベル スイッチング)。この用語は QoS の分野でよく使用されますが、(SonicWALL 装置を含む) ほとんどの顧客構内 IP ネットワーキング機器でネイティブにサポートされません。MPLS は、ネットワークに沿って概念的な接続志向のパス (LSP:ラベル スイッチ パス) を追加することにより IP ネットワーク機能を強化する、キャリア クラスのネットワーク サービスです。パケットが顧客構内ネットワークかの外に出るときに、パケットはラベル エッジ ルータ (LER) によってタグ付けされます。これにより、ラベルを使用して LSP を判定できるようになります。 MPLS タグ自体は第 2 層と第 3 層の間に存在し、両方のネットワークの層の MPLS 特性を伝えます。MPLS は、第 2 層と第 3 層の VPN サービスの両方を提供する一方、既存の IPSec VPN 実装との相互運用が可能であるため、VPN で一般的になりつつあります。また、MPLS は、QoS 能力についても非常によく知られており、従来の DSCP 級割とも相互運用が可能です。
• ホップ単位動作 (PHB) - パケットが通過する各 DiffServ 対応ルータにおいて、パケットの DSCP 分類に基づいてパケットに適用される処理。破棄、再級割 (再分類)、最大努力型、保証転送、緊急転送などの動作があります。
• ポリシング - ネットワーク リンクを出入りするトラフィックの速度を制御する、トラフィックの制限機能。ポリシングの方法は、無差別にパケットを捨てる方式からアルゴリズムによるシェイピングまで、またさまざまなキューイング規則まで及びます。
• キューイング - リンクの利用可能な帯域幅を効果的に使用できるように、トラフィックを分類した後に、並べ替えのため、および個別に管理するために、キューが一般的に使われます。キューは、高優先順位のキューが常に多くのトラフィックを受信でき、低優先順位のキューよりも優先してサービスを受ける (キューからパケットが取り出される、または処理される) ように、さまざまな方式とアルゴリズムを使用して管理されます。以下に、いくつかの一般的なキュー規則を示します。
– FIFO - First In First Out (先入れ先出し)。最初に入ったパケットが最初に処理される、非常に単純な無差別型のキュー。
– 等級ベース キューイング (CBQ) - 高優先順位のトラフィックが優先的に処理される、パケットの CoS を考慮に入れたキューイング規則。
– 重み付け公平キューイング (WFQ) - パケットの IP 優先順位とフローの合計数に基づいた単純な式を使用してキューをサービスする規則。WFQ は、サービスを受ける高優先順位のフローが異常に大量にあると不安定になる傾向があり、望みとは逆の効果が生じることがしばしばあります。
– トークン ベース CBQ - トークンを使用した CBQ の拡張。または、リンクの利用を円滑化または正常化して、過剰利用や不十分な利用を回避するのに役立つクレジット ベースのシステム。SonicOS の BWM で採用されています。
• RSVP - Resource Reservation Protocol (リソース予約プロトコル)。一部のアプリケーションで採用されている IntServ シグナリング プロトコルであり、ネットワーク動作 (例えば、遅延や帯域幅) をネットワーク パスに沿って予約できるように、ネットワーク動作の事前要求が行われます。この予約パスを設定するには、パスに沿った各ホップが RSVP に対応しており、それぞれが要求されたリソースを予約することに同意する必要があります。この QoS システムは、現存しているフローの状態を各ホップが維持することを要求するため、いくぶんリソース集約的です。IntServの RSVP は DiffServ の DSCP とはかなり異なりますが、相互運用することができます。SonicOS では、RSVP はサポートされません。
• シェイピング - 通常、送信元に対する何らかのフィードバック メカニズムを用意することによってトラフィック フローの速度を変更するための、QoS システムによる試み。これの最も一般的な例は、TCP 速度の操作です。 つまり、TCP 送信元に送り返す承認 (ACK) をキューに入れることによって遅延させ、算出されるラウンドトリップ時間 (RTT) を増加させます。 これにより、TCP 固有の動作を利用して、送信元がデータを送信する速度を低下させます。
• Type of Service (ToS) - CoS 情報を指定することのできる、IP ヘッダー内部のフィールド。歴史的にごくまれに、IP 優先順位ビットとともに、CoS を定義するために使用されていました。現在、ToS フィールドは、DiffServ のコード ポイント値により、かなり一般的に使用されています。