CBQ(帯域制御・優先制御)

QoS(Quality of Service)としてCBQ(Class-Based Queueing)による帯域制御及び優先制御機能を提供します。

表 1. IPv4/IPv6対応状況
機能 IPv4 IPv6
CBQ 対応 対応

CBQ機能概要

CBQを使用すると、ネットワークのパフォーマンス向上のためネットワーク資源を計画的に割り当て、帯域制御/優先制御を行なうことができます。

CBQ(Class-Based Queueing)による帯域制御

CBQとは、トラフィックをデータのパターンによってクラスと呼ばれる単位に分類し、クラスごとにパケットをキューイングしながらスループットを監視して、各クラスが占める帯域を調整するための仕組みです。

1つのリンクを共有する複数のトラフィックに、帯域という観点からネットワーク資源を計画的に分配します。

WAN側とLAN側の回線速度が異なる場合など、帯域のボトルネックとなる箇所で、特定の通信に対して優先的に帯域を確保するといった処理が可能です。 この特性上、CBQはインタフェースからの送信トラフィックについてのみ制御を行います

トラフィックのクラス分けと帯域の割り当て

CBQでは、トラフィックの特性を考慮してクラスを構成(クラス分けフィルタにより振り分ける)し、クラスごとに帯域を割り当てます。また、クラスは階層構造を持たせることができます。

図: CBQクラスの階層構造

帯域は全体を100%として0.1%刻みで割り当てることができます。また、100%として扱う実帯域は、100Mbpsまたは10Mbpsを選択できます(インタフェースのリンク速度に依存しません)。

クラス名"default"は予約されており、割り当て帯域100%の最上位のクラスとして内部的に定義されています。

  • NAT/NAPTと併用してSEILにおいてNAT/NAPTを適用する場合、適用前のアドレス、ポートによってクラスを分けます。
  • IPsecと併用してSEILにおいて暗号化する場合、暗号化前のパケットの情報に基づいてクラスを分けます。
  • トンネルと併用してSEILにおいてカプセル化する場合、カプセル化前のパケットの情報に基づいてクラスを分けます。
  • L2TPと併用してSEILにおいてカプセル化する場合、カプセル化前のパケットの情報に基づいてクラスを分けます。

クラス間での帯域の貸し借り

同一の親クラス配下のクラス間では、兄弟クラスの帯域に余裕がある場合に帯域を借りることができます。

図: 帯域を借りる(borrow on)

これにより、ピーク時の占有帯域割り当てを確保しつつ、余剰帯域を効率的に活用することができます。

帯域を借りない設定(borrow off)とする場合には帯域は固定となり、他のクラスの帯域が空いていても、割り当て以上の帯域は使用しません。

優先制御

CBQのクラスには送信の優先度を設定することができます。割り当てられた帯域内で、優先度の高いクラスに振り分けられたパケットから送信します。

クラスに設定する優先度はインタフェースの送信キューを制御するものであり、イーサネットフレームのサービス・タイプ(ToS)フィールドと直接の関係性はありませんが、 ToSフィールドによりクラス分けすることで、EhternetフレームのToSフィールドによる優先制御が可能です。

クラス分けフィルタ

帯域を区分けしたクラスにトラフィックを割り当てるクラス分けフィルタは、次のような条件を定義できます。

カテゴリ
イーサネットフレーム, IPv4/IPv6パケット
VLAN ID
ブリッジするフレームのVLAN ID(範囲指定可能)
VLAN Priority
ブリッジするフレームのVLAN Priority(範囲指定可能)
カテゴリがイーサネットフレームの場合
フレーム長
FCSを含まないフレーム長(範囲指定可能)
MACタイプ
LLC/SNAPはLLCヘッダのMACタイプ
カテゴリがIPv4/IPv6パケットの場合
パケット長
IPヘッダを含むパケット長(範囲指定可能)
プロトコル
TCP, TCP-ACK, UDP, ICMP, IGMP, Protocol Number
送信元アドレス, 送信元ポート番号
サブネットマスクによるネットワーク指定, ポート番号は範囲指定可能
送信先アドレス, 送信先ポート番号
サブネットマスクによるネットワーク指定, ポート番号は範囲指定可能
ToSフィールド
8ビットの値とマスクによる指定。 ToSフィールドの値とマスクとの論理積が指定した値と一致すれば一致する。
フィルタルールには適用順位がつけられ、優先度の高い順から評価されます。
  • コンフィグ記述上の先頭行が最も優先度が高い
注: どのクラス分けフィルタにもマッチしないパケットはdefaultクラスに分類されます。defaultクラスは帯域の制限が無く、 最上位であるため、意図しないトラフィックによりdefaultクラスが占有されると配下のクラスが想定どおりに帯域を占有することができません。 このような状態を避けるため、すべてのトラフィックがいずれかのクラス分けフィルタに一致するよう設定する必要があります。

仮想インタフェースへの適用

PPPoEやL2TPv3等の仮想インタフェースのトラフィックは、パケットが送信される物理インタフェース(LANインタフェース)上のトラフィックとして制御可能です。

パケットは、PPPoE等でのカプセル化前の情報(プロトコルやポート番号)に基づきクラス分けフィルタが適用されます。