【入門編】 CoS(Class of Service)と802.1Pプライオリティタグの仕組み – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

皆さん、こんにちは!ネットワークの深淵を愛するプロトコルスペシャリスト、〇〇(あなたのペンネームを想像してください)です。

今回は、ネットワークの基礎でありながら、奥が深い「優先度制御」の世界に足を踏み入れていきましょう。特に、レイヤ2(データリンク層)で活躍するCoS(Class of Service)と、その実体である802.1Pプライオリティタグの仕組みに焦点を当てて解説していきます。

「パケット構造?ビット数?英語のヘッダー名?うわ、難しそう…」と感じたあなた、ご安心ください!まるで郵便配達の流れや、身の回りにある「優先順位」の仕組みに例えながら、一歩ずつ、丁寧に紐解いていきますからね。さあ、一緒にネットワークの「特別扱い」の秘密を解き明かしていきましょう!

—

郵便配達もネットワークも「優先順位」って、なんで必要?

いきなり難しい話に入る前に、少しだけ身近な例を考えてみませんか?

例えば、あなたが大事な手紙を送るとします。通常の郵便物もあれば、急ぎの書類は「速達」、絶対に失くしてはいけないものは「書留」として送りますよね。郵便局では、これらの郵便物を同じように扱うでしょうか?もちろん違います。速達は優先的に、書留は特別な管理のもとで、より確実かつ迅速に届けられるはずです。

病院の救急外来でも同じです。軽症の人と、生命の危機に瀕している人が同時に運ばれてきたら、どちらを先に治療するでしょうか?当然、生命の危険がある人を最優先に治療しますよね。これが「トリアージ」と呼ばれる優先順位付けです。

ネットワークの世界も、実はこれと全く同じなんです。ネットワーク上を流れるデータ(これを「パケット」と呼びます)は、実はさまざまな種類があります。

  • IP電話やビデオ会議の音声・映像データ:リアルタイム性が命!少しでも遅延すると、会話が途切れたり、映像がカクカクしたりしてしまいます。
  • Webサイトの閲覧データ:多少の遅延は許容できますが、あまりに遅いとイライラしますよね。
  • ファイルのダウンロードやバックアップデータ:大量のデータを送りますが、リアルタイム性はそこまで求められません。

もし、これらのデータがすべて同じ優先順位で扱われたらどうなるでしょう?大量のファイルダウンロードが始まった途端、IP電話の声が途切れ途切れになったり、Web会議の映像がフリーズしたり…なんてことになりかねません。

そう、だからこそネットワークにも「優先順位」が必要なんです。重要なデータやリアルタイム性が求められるデータは優先的に処理し、そうでないデータは後回しにする。この仕組みが、私たちが快適にネットワークを利用するために欠かせない「QoS(Quality of Service:サービスの品質)」と呼ばれる技術の根幹をなしています。

そして、今回解説するCoSは、このQoSを実現するための、特にレイヤ2レベルでの優先度制御の仕組みなんですね。

イーサネットフレームの「特急便タグ」:802.1Qと802.1P

ネットワークの基本中の基本であるイーサネットは、パケットを「フレーム」という形で送受信します。このフレームは、例えるなら「データを入れるための封筒」のようなもの。送り先のMACアドレスや送り元のMACアドレス、そして中身のデータが格納されています。

昔は、この封筒はシンプルだったんですが、ネットワークが複雑になるにつれて、もっと賢くデータを送る必要が出てきました。そこで登場したのが、VLAN(Virtual LAN)という技術です。

VLANタグ(802.1Q)という「部署名ラベル」

VLANは、物理的には同じネットワーク機器につながっていても、論理的に複数のネットワークに分割する技術です。例えば、社内で「営業部」と「開発部」のネットワークを分けたいときなどに使われます。

このVLANを実現するために、イーサネットフレームに「VLANタグ」という特別な情報が追加されるようになりました。このVLANタグは、IEEE 802.1Qという規格で定められています。

VLANタグは、先ほどの例で言うなら「封筒に貼る『部署名ラベル』」のようなものですね。「このパケットは営業部のものだよ」「これは開発部のものだよ」という情報が書かれているわけです。

VLANタグの中に隠された「特急便マーク」:PCPとCoS

実は、この802.1QのVLANタグの中には、単にVLAN ID(部署名)だけでなく、もう一つ、非常に重要な情報が隠されています。それが「PCP(Priority Code Point)」フィールドです。

PCPフィールドは、たった3ビットの小さな情報ですが、この3ビットで「0」から「7」までの8段階の優先順位を示すことができます。このPCPフィールドで示される優先度が、まさに今回のお題である「CoS(Class of Service)」の実体なんです。そして、この優先度制御の仕組みを具体的に定めているのがIEEE 802.1Pという規格になります。

つまり、802.1QタグフレームはVLAN情報を持ちつつ、その中に802.1Pで定義された優先度情報(CoS)も含む、という関係性なんですね。

| PCP値 (CoS) | 優先度レベル | 一般的な用途(例) |
| :———- | :———– | :——————————- |
| 7 | 最高優先度 | ネットワーク制御(ルーティング更新など) |
| 6 | | ネットワーク制御(重要な制御パケット) |
| 5 | | 音声データ(VoIP) |
| 4 | | ビデオデータ(ストリーミング、会議) |
| 3 | | 重要な業務データ |
| 2 | | 通常業務データ |
| 1 | | 背景データ(ファイル転送など) |
| 0 | 最低優先度 | ベストエフォート(デフォルト) |

この表はあくまで一般的な推奨値ですが、PCP値が大きくなるほど優先度が高くなります。まるで郵便局の速達・書留サービスのように、PCP値が高いパケットは「特急便!」として優先的に扱われるわけです。

パケットは「優先順位」をどうやって知るの?

では、実際にネットワーク機器(特にスイッチ)は、このCoS(PCP値)をどうやって利用するのでしょうか?

スイッチは、送られてきたイーサネットフレームに802.1Qタグが付いている場合、その中のPCPフィールドを読み取ります。そして、そのPCP値に応じて、パケットを内部の「キュー」と呼ばれる一時的な保存場所に振り分けます。

キューは、パケットが順番待ちをする「列」のようなものです。スイッチは、優先度の高いキューに入っているパケットから先に処理して、次の機器へ転送します。

例えば、スイッチの内部に「音声用キュー(PCP=5)」「映像用キュー(PCP=4)」「通常データ用キュー(PCP=0)」があったとします。

  • PCP=5のIP電話のパケットが来たら、「音声用キュー」へ。
  • PCP=0のWeb閲覧のパケットが来たら、「通常データ用キュー」へ。

もし同時にたくさんのパケットが到着して、スイッチの処理能力が追い付かなくなると、キューはどんどん埋まっていきます。しかし、スイッチは「音声用キュー」のパケットを最優先で処理するため、IP電話の品質が保たれるわけです。一方、「通常データ用キュー」のパケットは、一時的に遅延したり、最悪の場合破棄(ドロップ)されたりする可能性があります。

このように、CoSは、ネットワークが混雑した際に、重要なトラフィックの品質を保証するための非常に強力なメカニズムなんですね。

CoSを「設定」してみよう!実践的なQoS設定の入口

ここからは、実際にネットワーク機器でCoSをどう設定するのか、その基本的な考え方とCisco製スイッチを例にしたCLIコマンドを見ていきましょう。
初めは少し難しく感じるかもしれませんが、概念を理解すれば大丈夫。一歩ずつ進んでいきましょう!

QoS設定の基本的な流れ

CiscoスイッチでのQoS設定は、一般的に以下の流れで行われます。

1. トラフィックの分類(Class-map):どのパケットを「音声」として扱うか、「映像」として扱うか、といった基準でパケットを識別します。
2. ポリシーの定義(Policy-map):分類したパケットに対して、「CoS値を5にする」「帯域を保証する」といった具体的なアクションを定義します。
3. インターフェースへの適用(Service-policy):定義したポリシーを、スイッチの特定のポート(インターフェース)に適用します。

設定例:特定のトラフィックにCoS値を割り当てる

ここでは、例として特定のTCPポート(例えば、SIPプロトコルがよく使うTCP 5060)のトラフィックを「音声」とみなし、CoS値を5に設定する例を見てみましょう。

! グローバルQoSを有効にする(Cisco Catalystスイッチの場合)
! このコマンドは一度実行すればOKです
mls qos

! 1. トラフィックの分類(Class-map)
! class-mapの名前は 'VOIP_SIG_CLASS' とします
! match-anyは、複数の条件のうちいずれかに合致すればOKという意味です
class-map match-any VOIP_SIG_CLASS
    ! TCPポート番号5060番のトラフィックを分類します
    match port tcp 5060
    ! その他の条件を追加することも可能です(例: match ip dscp 46 など)
exit

! 2. ポリシーの定義(Policy-map)
! policy-mapの名前は 'VOIP_POLICY' とします
policy-map VOIP_POLICY
    ! 上で定義したclass-map 'VOIP_SIG_CLASS' を参照します
    class VOIP_SIG_CLASS
        ! このクラスに合致したトラフィックのCoS値を5に設定します
        ! CoS 5は通常、音声トラフィックに推奨される値です
        set cos 5
    ! デフォルトのクラス(どのclass-mapにも合致しなかったトラフィック)
    class class-default
        ! デフォルトのトラフィックにはCoS 0を設定します(ベストエフォート)
        set cos 0
exit

! 3. インターフェースへの適用(Service-policy)
! 例として、GigabitEthernet 0/1インターフェースにポリシーを適用します
! このインターフェースから入ってくる(inbound)トラフィックにポリシーを適用します
interface GigabitEthernet 0/1
    ! VLANタグを信頼し、VLANタグ内のCoS値を使用するように設定します
    ! もし既に受信パケットにCoS値が付与されている場合、その値を信頼します
    mls qos trust cos
    ! 定義したポリシー 'VOIP_POLICY' をインターフェースの入力方向(inbound)に適用します
    service-policy input VOIP_POLICY
exit

mls qos trust cos とは?

上記の例で出てきた mls qos trust cos というコマンド、これが非常に重要です。

これは「このポートに入ってくるパケットのVLANタグにCoS値が設定されていたら、そのCoS値を信頼して、そのまま優先度として使ってくださいね」という意味になります。

もしこの設定がないと、せっかく上流の機器でCoS値を設定しても、このスイッチではCoS値が無視されてしまう可能性があります。

CoSだけじゃダメなの? L3のQoSとの関係

ここまでCoS(802.1P)がレイヤ2レベルで優先度を付ける仕組みだと説明しました。しかし、ネットワークの優先度制御は、これだけで完結するわけではありません。

パケットがルーターを越えて、別のネットワークセグメントへ移動する場合、802.1QのVLANタグは一般的に剥がされてしまいます。そうなると、CoSの情報も失われてしまうんですね。

そこで登場するのが、レイヤ3(ネットワーク層)での優先度制御、DSCP(Differentiated Services Code Point)です。DSCPはIPヘッダの中に含まれる情報で、CoSと同様にパケットの優先度を示すことができます。CoSが最大8段階(0-7)だったのに対し、DSCPは64段階(0-63)で、よりきめ細やかな優先度制御が可能です。

CoSとDSCPの使い分け

  • CoS(L2): スイッチング区間(同じVLAN内、またはVLANタグ付きでスイッチ間を通過する際)の優先度制御に利用されます。「この区間だけ特急扱い!」というイメージです。
  • DSCP(L3): ルーティングを伴うネットワーク全体のエンドツーエンドの優先度制御に利用されます。「目的地まで特急扱い!」というイメージです。

通常、ネットワーク全体でQoSを実装する場合、エッジ(ネットワークの境界)でアプリケーションごとにDSCP値を設定し、そのDSCP値を信頼してネットワーク全体で優先度制御を行うのが一般的です。

そして、L2スイッチは、受信したパケットのDSCP値を読み取り、それをCoS値にマッピングして、ポートからVLANタグ付きで出力する、といった連携が行われることもあります。これにより、L3で設定された優先度情報が、L2のスイッチング区間でも有効に活用されるわけです。

例えば、ルーターでDSCP=46(音声用)とマークされたパケットがL2スイッチに届いたら、L2スイッチはそれをCoS=5にマッピングして、VLANタグを付与して転送する、といった具合ですね。

このCoSとDSCPの連携は、複雑なQoS設計において非常に重要な要素になりますが、まずは「CoSはレイヤ2、DSCPはレイヤ3の優先度」という違いを理解するところから始めましょう!

まとめ:CoSはネットワークの「心遣い」

今回は、CoS(Class of Service)と802.1Pプライオリティタグの仕組みについて、身近な例を交えながら深掘りしてきました。

  • ネットワークが混雑した際に、重要なデータ(音声や映像など)の品質を保つために「優先順位」が必要であること。
  • イーサネットフレームの802.1QVLANタグの中に、802.1Pで定義されたPCP(Priority Code Point)フィールドがあり、これがCoSとして優先度を示すこと。
  • PCP値が高いほど優先度が高く、スイッチはこれを読み取ってパケットの処理順序を制御すること。
  • CoSはレイヤ2レベルの優先度制御であり、レイヤ3のDSCPと連携することで、より高度なQoSが実現されること。

これらの知識は、ネットワークのトラブルシューティングや、より安定したインフラを構築する上で非常に役立つはずです。特に、VoIPやビデオ会議システムを導入する際には、CoSの設定が非常に重要になりますから、ぜひこの機会に基本的な概念をしっかりとマスターしておいてくださいね。

ネットワークは、単にデータを送るだけでなく、そこに「心遣い」や「配慮」を加えて、より快適なデジタル体験を提供するために、日々進化しています。CoSはその「心遣い」の一つなんです。

これからも一緒に、ネットワークの奥深い世界を探求していきましょう!それでは、また次回の記事でお会いしましょう!

コメント

タイトルとURLをコピーしました