こんにちは!ネットワークの世界へようこそ。インフラやネットワークの勉強を始めると、次から次へと出てくる呪文のような用語や、複雑なパケットの構造に圧倒されてしまいますよね。「VLANって何?」「タグ? 4バイト?」と、最初のうちは頭がクラクラしてしまうのも無理はありません。でも、安心してください。一歩ずつ、身近な例えから紐解いていけば、必ずスッキリと理解できるようになりますよ!
今日は、ネットワークエンジニアなら誰もが避けて通れない、しかし初学者にとってはちょっぴり難解な「IEEE 802.1Qタグ」の正体に迫ります。パケットという目に見えないデータが、スイッチのなかでどう仕分けされているのか、そのリアルな裏側を覗いてみましょう!
—
1. なぜVLANタグが必要なの? 〜オフィスの郵便配達にたとえてみよう〜
そもそも、なぜイーサネットフレームに「タグ」なんてものを貼り付ける必要があるのでしょうか?
想像してみてください。あなたはとある大きなオフィスの総務部で働いています。そのフロアには、営業部、開発部、総務部のメンバーがごちゃ混ぜになって座っています。全員が同じ1台のフロアスイッチにケーブルで繋がれている状態です。
ここで、開発部のエンジニアたちが機密性の高いサーバーのテストデータをやり取りし始めました。もし、このトラフィックが営業部や総務部のパソコンの画面にまで流れてしまったら…? セキュリティ上、大問題ですよね。かといって、部署ごとにわざわざ全く別の物理的なスイッチやケーブルを買い揃えるのは、お金も手間もかかって現実的ではありません。
そこで登場するのがVLAN(Virtual LAN)です。「1台の物理的なスイッチの中に、仮想的な部屋をいくつも作ってしまおう!」という天才的なアイデアですね。
しかし、ここで一つ問題が起きます。スイッチの中で「これは開発部の荷物」「これは営業部の荷物」と色分けするのは良いのですが、スイッチから別のスイッチへ、一本のLANケーブルを通ってデータが旅立つとき、受け取った向こう側のスイッチはどうやって「どの部屋の荷物か」を見分ければいいのでしょうか?
そこで、荷物の封筒(イーサネットフレーム)の表側に、「うちは開発部所属です!」と書かれた特製の付箋(タグ)をペタッと貼り付けることにしました。これが、今回主役として取り上げる IEEE 802.1Qタグ なのです!
—
2. 4バイトの小さな付箋!IEEE 802.1Qタグの構造
では、この「付箋」の正体をもう少し詳しく見ていきましょう。
通常のイーサネットフレームの構造を思い出してみてください。宛先のMACアドレス(6バイト)があり、送信元のMACアドレス(6バイト)があり、そのあとに「これから運ぶ荷物の種類(タイプ)」を表すフィールドが続きます。
IEEE 802.1Qタグは、なんと元のMACアドレスの後ろに、こっそり4バイト(たった32ビット!)割り込んで挿入される仕組みになっています。
[宛先MACアドレス: 6bytes] [送信元MACアドレス: 6bytes] [★802.1Qタグ: 4bytes] [タイプ/長さ: 2bytes] [データ...]
この差し込まれた4バイトの「4つの文字(ビット)」のなかには、大きく分けて2つの重要な情報が詰まっています。それが TPID と TCI です。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TPID (16 bits) | TCI (16 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
一つずつ、優しく解きほぐしていきましょう!
—
3. TPID(Tag Protocol Identifier)〜「これは802.1Qのタグです」の合言葉〜
最初の16ビット(2バイト)を占めるのが TPID です。ここは非常にシンプルで、固定の「合言葉」が入ります。
標準的な値は、16進数で 0x8100 です。
スイッチやネットワーク機器がパケットを受け取ったとき、この 0x8100 という数字をパッと目撃すると、「おっ、このフレームには普通のデータの前にVLANの付箋が貼ってあるな!よし、中身を剥がして仕分けの準備をしよう」と瞬時に理解できるわけです。いわば、封筒の隅っこに押された「速達」や「書留」のような公式のハンコだと思ってください。
—
4. TCI(Tag Control Information)〜仕分けと優先度の詳細情報〜
残りの16ビット(2バイト)が、実務で最も重要になる TCI(Tag Control Information) です。この16ビットのなかに、さらに次の3つの要素がギュッと詰め込まれています。
1. PCP (Priority Code Point) : 3ビット
2. DEI (Drop Eligible Indicator) : 1ビット
3. VID (VLAN Identifier) : 12ビット
合計して、3 + 1 + 12 = 16ビットですね。それぞれの役割を詳しく見てみましょう!
① PCP(優先度:3ビット)
「音声や動画のデータを、普通のメールやWeb閲覧よりも優先して届けてほしい!」と思ったことはありませんか? ZoomやTeamsでの会議中に、他の人が重いファイルをダウンロードし始めたら声が途切れた…なんてトラブルは避けたいですよね。
PCPは、まさにそのための「お急ぎ度(QoSの優先度)」を表す3ビットです。
3ビットで表現できるので、0から7までの8段階の優先度を指定できます。
0(一番低くて普段使い)5(音声通話など、遅延させたくないもの)7(ネットワークの制御信号など、最優先するもの)
このように、パケット単位で「お先にどうぞ!」の優先順位をここでピシッと決めているのです。
② DEI(破棄適格フラグ:1ビット)
「DEI」は、かつてはCFI(Canonical Format Indicator)と呼ばれていた場所ですが、現代のイーサネットでは「万が一ネットワークがめちゃくちゃ混み合ったとき、このパケットは優先度を下げて(あるいは捨てて)もいいですよ」という悲しい運命を背負うかどうかを示す1ビット(有効なら 1、通常は 0)として使われます。基本的には 0(捨てないでね)で運用されることが多いマイナーな存在ですが、知っていると通なポイントです。
③ VID(VLAN ID:12ビット)
さあ、いよいよ真打ち登場です! TCIの残りの12ビットを占めるのが、実務で一番目にする VID(VLAN ID) です。
12ビットで表現できる数字は、2の12乗で 4,096通り(0 から 4095 まで)あります。
ネットワークの世界では、この番号を使って各部署や用途に部屋を割り当てます。
VLAN 10: 総務部フロアVLAN 20: 開発部フロアVLAN 100: ゲスト用Wi-Fi
スイッチはこの12ビットの数字(例: 10 や 20)をパッと読み取ることで、「このパケットはVLAN 10のポートにだけ流そう」と正確なルーティングやスイッチングを行えるわけです。
—
5. 実務での設定例とパケットの動き
ここまで理論を学んだところで、実際のネットワーク機器(ここではCiscoを想定したCatalystスイッチなど)で、このVLANタグがどのように設定され、どう流れていくのかをイメージしてみましょう。
スイッチとスイッチを繋ぐポート(いわゆるトランクポート)では、複数のVLANのパケットが一緒くたになって流れます。このとき、まさに先ほど解説したIEEE 802.1Qタグがパケットに巻き付けられます。
以下は、CiscoのIOSにおける代表的なトランクポートの設定例です。
! スイッチAとスイッチBを接続するトランクポートの設定
interface GigabitEthernet0/1
description 接続先スイッチへのトランク回線
switchport trunk encapsulation dot1q ! 802.1Qカプセル化方式を指定
switchport mode trunk ! ポートをトランクモードに設定
switchport trunk allowed vlan 10,20,30 ! このポートを通ることを許可するVLAN IDを指定
この設定が完了すると、スイッチAの GigabitEthernet0/1 から外部へ飛び出すパケットには、自動的に先ほどの4バイトのタグ(TPID 0x8100 + VID 10 や 20 など)がガチャンと挟み込まれます。
そして、対向のスイッチBのトランクポートにそのパケットが到着すると、スイッチBは次のような処理を行います。
1. パケットのヘッダーを読み込み、0x8100(TPID)を見つける。
2. その後ろに続くTCIから、VID(例: VLAN 20)を正確に読み取る。
3. タグをきれいに剥ぎ取る(Popping)。
4. スイッチBの中で「VLAN 20」に所属しているアクセスポート(パソコンが繋がっている普通のポート)へとパケットを送り出す。
パソコン自体はVLANタグの存在なんて露知らず、「あれ、いつものキレイなイーサネットフレームが届いたぞ」と受け取ることができるのです。この仕組みのおかげで、古いパソコンや特殊な設定をしていない端末でも、安全にVLANの恩恵を受けることができます。
—
おわりに
いかがでしたでしょうか?
一見すると難解なビットの羅列や英語の略語(TPID、TCI、PCP、VID)も、「オフィスの中の郵便配達で、宛先や優先順位を記した小さな付箋をパケットの胸元に貼っているんだな」とイメージすれば、少し身近に感じられたのではないでしょうか。
ネットワークのトラブルシューティング(Wiresharkなどでパケットキャプチャを取る場面など)に直面したとき、「あ、今ここに 0x8100 のタグがちゃんと乗っかってるな」「お、VLAN IDが意図した番号になっていないぞ」と気づけるようになると、インフラエンジニアとしての面白さや深度が何倍にも広がります。
ぜひ、日々の業務や学習の中でパケットの構造を思い出しながら、一歩一歩スキルアップしていってくださいね!それでは、また次回の技術解説でお会いしましょう。
コメント