皆さん、こんにちは!ネットワークの深淵を愛してやまない、わたくし、主筆ライターの〇〇です。
突然ですが、皆さんはWeb会議中に「あれ、音声が途切れるな…」「画面がカクカクしてフリーズした!」なんて経験、ありませんか?あるいは、大容量ファイルをダウンロード中に、なぜか自分の声だけが相手に届かなくなった、なんてことも。
現代の企業ネットワークでは、もはやデータ通信だけではありません。音声(VoIP)、映像(Web会議、ストリーミング)、仮想デスクトップなど、リアルタイム性が強く求められる様々な種類のトラフィックが行き交っています。これらが混雑したネットワークの中で、他のデータに埋もれてしまったり、遅延したりすると、業務に大きな支障が出てしまいますよね。
そこで登場するのが、今回の主役「QoS (Quality of Service)」です。ネットワークの「交通整理」のような役割を担い、快適な通信環境を実現するための重要な仕組みなんですよ。
今回は、このQoSの基本的な概念と、特に「イーサネット」の世界でどのようにQoSが実現されているのかを、皆さんと一緒に紐解いていきたいと思います。小難しい話は抜きにして、身近な例え話も交えながら、一歩ずつ理解を深めていきましょう!
—
遅延はもう怖くない!イーサネットQoSで実現する、快適リアルタイム通信の舞台裏
QoSって、そもそも何?
QoSとは「Quality of Service」の略で、直訳すると「サービスの品質」となります。ネットワークの世界では、特定の種類の通信に、優先的にネットワークリソースを割り当てることで、その通信の品質を保証する仕組みのことを指します。
想像してみてください。あなたは、高速道路の料金所の前にいます。ここには、一般車両、そしてサイレンを鳴らして急いでいる救急車や消防車が並んでいますよね。もし、救急車が一般車両と同じように列の最後尾に並んでいたらどうなるでしょう?それは大変なことになります。
現実の世界では、救急車や消防車は「緊急車両」として優先的に料金所を通ることができます。これこそが、現実世界におけるQoSの考え方そのものなんです。
ネットワークの世界でも全く同じ。Web会議の音声や映像、IP電話の通話などは、まさに「緊急車両」のような存在。これらのトラフィックは、ちょっとした遅延やパケットの損失が、すぐに「声が途切れる」「映像が乱れる」といった形で、利用者の体感品質に悪影響を与えてしまいます。
QoSは、そういったデリケートなトラフィックを「VIP待遇」にして、他の一般的なデータ(例えば、大量のファイルをダウンロードする通信など)よりも優先的に処理することで、安定した通信品質を保つことを目指します。
イーサネットでQoS、どうやって?L2 QoSの仕組み
さて、私たちの身近なネットワークである「イーサネット」では、どのようにしてQoSを実現しているのでしょうか?イーサネットは主にレイヤー2(データリンク層)で動作する技術ですよね。ここでは、VLANタグの中に隠された「秘密の目印」を使うんです。
「VLANタグって何だっけ?」と思った方もいるかもしれませんね。VLANは、物理的なネットワークを論理的に分割する技術で、そのためにイーサネットフレームに「タグ」という情報を付加します。このタグは、IEEE 802.1Qという国際標準で定義されているのですが、実はこのタグの中にQoSのための情報が含まれているんです。
具体的には、VLANタグの中には「CoS (Class of Service)」という3ビットのフィールドがあります。3ビットということは、2の3乗で0から7までの8段階の値を表現できます。このCoS値が、まさにパケットの「優先度」を示す目印になるわけです!
| CoS値 (Priority Code Point) | 優先度 (Prio) | トラフィックの種類(一般的なマッピング例) |
| :————————– | :————– | :————————————————– |
| 7 | 最も高い | ネットワーク制御(ルーティングプロトコルなど) |
| 6 | | ネットワーク制御(ネットワーク管理など) |
| 5 | | 音声(VoIP、Web会議の音声など) |
| 4 | | 映像(Web会議の映像、ビデオストリーミングなど) |
| 3 | | 重要な業務データ(基幹システム、ERPなど) |
| 2 | | 標準の業務データ(一般的なファイル転送、Web閲覧) |
| 1 | | バックグラウンドデータ(バックアップなど) |
| 0 | 最も低い | Best Effort(通常データ、デフォルト) |
(※これは一般的なマッピング例であり、実際のネットワーク設計では自由に定義できます。)
これを郵便物の例で考えてみましょう。
VLANタグは、封筒に貼られた「特別なシール」のようなものです。そして、CoS値はそのシールに書かれた「速達」「書留」「普通郵便」といった区分や、封筒の色分けのようなものだとイメージしてください。ネットワーク機器(スイッチなど)は、このシールを見て、「この郵便物は急ぎだな」「これは普通でいいや」と判断し、それぞれに応じた処理をしてくれるわけです。
QoSの「交通整理」の具体例:スイッチは何をしている?
ネットワークの交通整理役である「スイッチ」や「ルーター」は、このCoS値や、後ほど少し触れるDSCP値といった目印を使って、次のような一連の処理を行います。
1. マーキング (Marking)
- 「これ、VIP!」と目印をつける
- ネットワークに入ってきたパケットに対して、「このパケットは音声だからCoSは
5にしよう」「これは普通のデータだから0でいいや」というように、優先度を示すマーク(CoSやDSCPなど)を付けていきます。 - これは、郵便局で荷物に「速達」や「クール便」といったラベルを貼る作業に似ていますね。
2. キューイング (Queuing)
- 優先度別の「待合室」に振り分ける
- マーク付けされたパケットは、次にネットワーク機器内部の「キュー(Queue)」と呼ばれる一時的な待合室に振り分けられます。優先度の高いパケット用のキュー、中程度のパケット用のキュー、そして優先度の低いパケット用のキュー、といった具合に複数用意されています。
- 郵便局で、速達用の荷物置き場、普通郵便用の荷物置き場、と区分けするようなイメージです。
3. スケジューリング (Scheduling)
- どの待合室から「先に送り出すか」を決める
- 複数のキューにパケットが溜まっている場合、どのキューからパケットを先に送り出すかを決定するのがスケジューリングです。
- 最も一般的なのは「Strict Priority (SP)」という方式で、文字通り「最も優先度の高いキューからパケットがなくなるまで送り出し続ける」というものです。救急車が最優先で料金所を通過するようなものですね。
- 他にも「Weighted Round Robin (WRR)」のように、それぞれのキューに重み(比率)を与えて、順番に少しずつ送り出す方式などもあります。これは、いくつかのレーンがある料金所で、特定のレーンから多めに車を通すようなイメージです。
- 郵便局で、まずは速達便からトラックに積み込み、次に書留、最後に普通郵便、という順番で発送する作業とよく似ています。
4. 輻輳回避 (Congestion Avoidance)
- 混雑する前に「調整」する
- ネットワークが混雑しそうになったとき、全てのパケットを詰め込んでしまうと、かえって全体的なパフォーマンスが低下してしまうことがあります。輻輳回避は、混雑が本格化する前に、一部の重要度の低いパケットを意図的に破棄したり、送信を遅らせたりすることで、ネットワーク全体の健全性を保つ仕組みです。
- これは、高速道路が渋滞しそうなときに、入り口で交通量を制限したり、一部の車に迂回を促したりするようなものですね。
これらの仕組みが連動することで、重要なトラフィックは優先的に処理され、快適な通信が保証されるわけです。
実践してみよう!CiscoスイッチでのQoS設定例
さて、ここからは実際にネットワーク機器でQoSを設定するイメージを掴んでみましょう。今回は、企業ネットワークでよく使われるCiscoのCatalystスイッチを例に、基本的なL2 QoSの設定をご紹介します。
初学者向けですので、まずは「CoS値を設定して、優先度に基づいてキューイングを行う」というシンプルな流れを見ていきます。
設定シナリオ
- 音声トラフィック(CoS
5)を最優先。 - 映像トラフィック(CoS
4)を次に優先。 - その他のトラフィック(CoS
0)をデフォルトで処理。
設定コマンド例
! グローバルQoSを有効化します
! これを入れないとQoSの設定が反映されません
mls qos
! CoS 5(音声)用のクラスマップを定義します
! class-map match-all は、指定した条件を全て満たすパケットを識別します
class-map match-all VOICE_TRAFFIC
match cos 5
! CoS 4(映像)用のクラスマップを定義します
class-map match-all VIDEO_TRAFFIC
match cos 4
! ポリシーマップを定義し、各クラスマップにアクションを紐付けます
! policy-mapは、どのトラフィックに何を(どんなQoSアクションを)するかを定義する設計図のようなものです
policy-map QOS_POLICY_IN
! VOICE_TRAFFICクラス(CoS 5)にマッチしたら、優先キューに入れるように設定
! priority level 1 は、最も高い優先度レベル(Strict Priority)を示します
class VOICE_TRAFFIC
priority level 1
! VIDEO_TRAFFICクラス(CoS 4)にマッチしたら、次に高い優先度レベルのキューに入れるように設定
! priority level 2 は、priority level 1 の次に高い優先度になります
class VIDEO_TRAFFIC
priority level 2
! それ以外のトラフィック(デフォルト)
! class class-default は、どのクラスマップにもマッチしなかった全てのトラフィックを指します
class class-default
bandwidth percent 10 ! 残りの帯域の10%を保証する(例)
! もしくは、デフォルトのキューイングで処理されます
! 作成したポリシーマップをインターフェースに適用します
! 例えば、GigaEthernet 1/0/1 ポートに入ってくるパケットにこのポリシーを適用する場合
interface GigabitEthernet1/0/1
description "Uplink to Core Switch with QoS"
switchport mode access
! サービスポリシーをインターフェースの入力方向(in)に適用します
! これにより、このポートに入ってくるパケットがQOS_POLICY_INのルールに従って処理されます
service-policy input QOS_POLICY_IN
! ここで、ルーターとの連携も少しだけ触れておきましょう。
! レイヤー3(IP層)で使われるQoSの識別子に「DSCP (Differentiated Services Code Point)」というものがあります。
! CoSはL2の識別子、DSCPはL3の識別子です。
! L2/L3をまたいでQoSを一貫させるには、CoSとDSCPを相互にマッピングする必要があります。
! 例えば、特定のインターフェースでDSCP値をCoS値に変換する設定:
! interface GigabitEthernet1/0/2
! description "Port for IP Phone"
! switchport mode access
! mls qos trust dscp ! このポートで受け取ったパケットのDSCP値を信頼し、CoS値にマッピングする
!
! もしくは、特定のポートから出るパケットにCoS値を設定(マーキング)する場合:
! class-map match-all VOICE_OUT
! match ip dscp ef ! DSCP値がEF(Expedited Forwarding、音声用)のパケットにマッチ
! policy-map MARK_VOICE_OUT
! class VOICE_OUT
! set cos 5 ! CoS値を5に設定(マーキング)
! interface GigabitEthernet1/0/3
! service-policy output MARK_VOICE_OUT
いかがでしょう?少し専門的なコマンドが出てきましたが、class-mapで「どの交通を識別するか」、policy-mapで「識別した交通にどんな優先度を割り当てるか」、そしてservice-policyで「どこで交通整理を行うか」という役割分担になっている、と理解していただければOKです。
特に、L2のCoSとL3のDSCPは、ネットワーク全体でQoSを一貫させるために非常に重要な連携ポイントになります。今回はイーサネットQoSがメインなので深掘りしませんが、「L2とL3でそれぞれQoSの識別子があって、それらをうまく連携させる必要があるんだな」と頭の片隅に置いておいてくださいね。
QoS設計のポイントと注意点
QoSは非常に強力なツールですが、設計にはいくつかのポイントがあります。
- 「全てのトラフィックを優先」は無意味!
- 全員がVIP待遇になったら、結局誰も優先されませんよね。本当に優先すべきトラフィックを見極め、メリハリをつけることが重要です。音声や映像など、リアルタイム性が求められるものに絞り込みましょう。
- エンドツーエンドでの一貫性
- QoSは、ネットワークの入口から出口まで、全ての経路上の機器で一貫して設定されている必要があります。途中の機器がQoS設定に対応していなかったり、設定が漏れていたりすると、そこで品質が劣化してしまいます。
- モニタリングと調整
- QoSを設定したら終わりではありません。実際にネットワークがどのように動作しているか、期待通りの品質が維持されているかを常にモニタリングし、必要に応じて設定を調整していく「泥臭い」運用が欠かせません。
まとめ
今回は、イーサネットにおけるQoSの基本概念と、その重要性についてご紹介しました。
- QoSは、ネットワークの中で「特定のトラフィックを優先的に処理する」ことで、通信品質を保証する仕組みです。
- 特にリアルタイム性が求められる音声や映像などのトラフィックにとって、QoSは不可欠です。
- イーサネットでは、
VLANタグの中にあるCoS値(0〜7)を使って優先度を識別します。 - スイッチなどのネットワーク機器は、
マーキング、キューイング、スケジューリングといった工程を経て、パケットの交通整理を行っています。
QoSは、ネットワークを快適に、そして効率的に運用するために避けては通れない技術です。今回ご紹介した内容は、そのほんの入り口に過ぎませんが、皆さんのネットワークへの理解が少しでも深まれば幸いです。
「Web会議で音声が途切れたらQoSを疑ってみようかな?」「あのスイッチの設定、QoSどうなってるんだろう?」なんて、少しでもQoSが身近に感じられるようになったら、それは大きな進歩です!
焦らず、一歩ずつ理解を深めていきましょう!それでは、また次の記事でお会いしましょう!
コメント