QoS (Quality of Service) とは
QoS (Quality of Service) とは、ネットワーク上でデータ通信の品質を保証する技術や仕組みを指す。具体的には、音声通話やビデオ会議のようにリアルタイム性が求められる通信に対して、遅延、帯域幅、パケット損失率などの指標を管理・制御し、一定の品質を保つための技術である。
QoSは主にネットワーク機器で設定されるが、サーバやエンドデバイスも自身が送信するトラフィックに対してQoS設定を行うことはある。特に、リアルタイム性が重要なアプリケーション(VoIPやストリーミングなど)を実行するサーバやデバイスは、自らQoSを設定してトラフィックを送信することが多い。ネットワーク機器とサーバが連携してQoSを実施することで、ネットワーク全体で一貫したトラフィック管理が可能になる。
DSCP値とCoS値
QoSは主にDSCP(Differentiated Services Code Point)値とCoS(Class of Service)値の2種類を用いてマーキングを行い、制御する。ただし、それぞれは異なるレイヤーで機能するため、どちらを使うかはネットワークの設計や使用しているプロトコルに依存する。
DSCP(Differentiated Services Code Point)値
- OSIモデルのLayer 3(ネットワーク層)で使用される。IPベースのネットワーク全体で利用。
- IPヘッダ内の「ToS(Type of Service)」フィールドに6ビット分の値があり、これがDSCP値として使われる。
- 主にルータで使用され、IPパケットに対するQoS制御を行う。たとえば、トラフィックの分類、優先度設定、キュー管理などが行われる。
- より細かい制御が可能で、IPネットワーク全体を通じて利用される。
- DSCP値は0〜63の範囲で設定できる。様々な標準的な値があり、優先度やトラフィックタイプによって分類される。
一般的なDSCP値とクラス
特にQoS設定を行っていないパケットの場合、DSCP値は「0(ベストエフォート)」となる。
DSCP値46のEF(Expedited Forwarding)は、音声通話(VoIP)やビデオ会議など、遅延が許されないトラフィックに特に適した設定である。
DSCP値 | クラス名 | 説明 |
---|---|---|
0 | Default (Best Effort) | デフォルト、特別な優先順位なし |
8 | CS1 (Class Selector 1) | 低優先度データ |
10 | AF11 | Assured Forwarding Class 1, Low Drop |
12 | AF12 | Assured Forwarding Class 1, Medium Drop |
14 | AF13 | Assured Forwarding Class 1, High Drop |
18 | AF21 | Assured Forwarding Class 2, Low Drop |
20 | AF22 | Assured Forwarding Class 2, Medium Drop |
22 | AF23 | Assured Forwarding Class 2, High Drop |
26 | AF31 | Assured Forwarding Class 3, Low Drop |
28 | AF32 | Assured Forwarding Class 3, Medium Drop |
30 | AF33 | Assured Forwarding Class 3, High Drop |
34 | AF41 | Assured Forwarding Class 4, Low Drop |
36 | AF42 | Assured Forwarding Class 4, Medium Drop |
38 | AF43 | Assured Forwarding Class 4, High Drop |
46 | EF (Expedited Forwarding) | VoIPやリアルタイムトラフィックのための優先処理 |
48 | CS6 | Network Control |
56 | CS7 | Network Control, High Priority |
CoS(Class of Service)値
- OSIモデルのLayer 2(データリンク層)で使用される。イーサネットフレーム単位、LAN環境で利用。
- イーサネットフレームのVLANタグの中に3ビットの「PRI(Priority)」フィールドがあり、これがCoS値として使われる(IEEE 802.1p)。
- 主にスイッチング環境で使用され、レイヤー2のトラフィックに対してQoSを提供する。
- Layer 2のネットワーク(LAN内)での優先順位付けに使われ、WANやインターネット上では利用できない。
- CoS値は0〜7の範囲で設定できる。VLANタグに含まれる3ビットフィールドを使って優先度を設定する。
一般的なCoS値とクラス
特にQoS設定を行っていないパケットの場合、CoS値は「0(ベストエフォート)」となる。
CoS値 | クラス名 | 説明 |
---|---|---|
0 | Best Effort | デフォルト、特に優先順位なし |
1 | Background | 低優先度のトラフィック |
2 | Spare | 予約されたトラフィック |
3 | Excellent Effort | 重要度が高いビジネストラフィック |
4 | Controlled Load | 遅延が許されないトラフィック |
5 | Video | ビデオストリーミング、マルチメディアトラフィック |
6 | Voice | 音声通話、VoIPトラフィック |
7 | Network Control | ネットワーク制御トラフィック、最も高い優先度 |
DSCP値、CoS値の確認方法
実際のパケットにQoSが反映されているかを確認するにはパケットキャプチャが有効。
DSCP値: IPヘッダの「Differentiated Services Field (DS Field)」から確認。特に「DSCP」という項目を探す。
CoS値: イーサネットフレームの「IEEE 802.1Q VLAN」タグの中の「Priority」という項目を確認。
Ciscoスイッチへの適用の流れ
- class-mapで分類する
トラフィックを特定の基準(IPアドレス、DSCP値など)で分類し、異なる種類のトラフィックを識別する。 - policy-mapでアクションを設定する
分類された各クラスに対して、具体的なQoSアクション(例えば、優先度設定、帯域制御など)を適用する。 - インターフェースに適用する
最後に、service-policyコマンドでpolicy-mapをインターフェースに適用する。
class-map と policy-map の役割
class-map: トラフィックの分類を行い、特定のクラスに振り分ける。
policy-map: class-mapで分類されたトラフィックに対して、具体的なアクション(QoSポリシー)を適用する。
項目 | class-map | policy-map |
---|---|---|
目的 | トラフィックを分類する | 分類されたトラフィックに具体的なアクションを適用する |
使用タイミング | まず最初に分類基準を設定するために使用 | 分類されたクラスに対してポリシーを設定するために使用 |
例 | match ip dscp ef(DSCP値で分類) | priority(優先処理)、bandwidth(帯域幅確保) |
EOF