【入門編】 VLAN(Virtual LAN / IEEE 802.1Q)のタグヘッダー構造とTPID – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

こんにちは!ネットワークの世界へようこそ。インフラエンジニアの主筆ライターとして、日夜パケットたちのドラマを追いかけている私です。

ネットワークの勉強を始めると、必ずと言っていいほどぶつかる壁がありますよね。「VLAN(ブイラン)」、そしてそれに伴って登場する「802.1Qタグ」です。教科書を開くと、「TPIDが0x8100で、TCIがPCPとDEIとVLAN IDで構成されていて……」なんて、いきなりビット単位の難解な呪文が並んでいて、頭がクラクラしてしまった方も多いのではないでしょうか。

大丈夫です、安心してください!今回は、この見慣れない4バイトのパケットの付箋(タグ)が、一体ネットワーク上でどんなドラマを生み出しているのか、身近な例えを交えながら一緒に一歩ずつ紐解いていきましょう。

—

1. なぜVLAN(802.1Q)が必要なの?〜会社組織の「部署」に例えてみよう〜

そもそも、なぜイーサネットフレームにわざわざ新しいタグを挟み込む必要があるのでしょうか。

会社を思い浮かべてみてください。大きなフロアに、営業部、開発部、総務部がごちゃ混ぜで座っていたとします。この状態のままだと、営業部の社員が「おーい!」と大声で叫ぶと、開発部の人にも総務部の人にも全員の声が届いてしまいますよね。ネットワークの世界でこれをやると、不要なブロードキャストパケットがフロア中に響き渡り、あっという間に回線がパンクしてしまいます。

物理的にケーブルを部署ごとに引き直せば解決しますが、それだとお金も手間もかかります。「一つの大きなフロア(物理スイッチ)のままで、見えない壁を作って部署ごとに部屋を分けたい!」……これを実現するのが VLAN(Virtual LAN) です。

そして、この見えない壁の秘密兵器こそが、今回主役となる IEEE 802.1Qタグ なのです。

—

2. 郵便物に「部署名スタンプ」を押す仕組み

VLANが設定されたスイッチの間を、パケットが飛び交うときを想像してください。

例えば、営業部のPCから飛び立った手紙(イーサネットフレーム)が、スイッチとスイッチを繋ぐ「トランクポート」という共通の廊下を通るとします。この廊下を歩くとき、手紙の宛先だけでは「どの部署の手紙か」がパッと見で分かりません。

そこで、スイッチは手紙の宛先(送信元・宛先MACアドレス)のすぐ隣に、「これは営業部の手紙です!」と書かれた4バイトの特別な付箋(802.1Qタグ)をペタッと貼り付けます。これがタグ付きフレームの正体です。

元の手紙の宛先情報を壊さずに、こっそり「4バイト(32ビット)の付箋」を割り込ませる。これが、世界共通の規格である IEEE 802.1Q の巧妙な仕組みなんですね。

—

3. 4バイトの付箋(802.1Qタグヘッダー)の中身を覗いてみよう!

それでは、いよいよ本題の4バイト(32ビット)の構造を、分解して見ていきましょう。
難しく考えず、付箋に書かれている「3つの項目」だと捉えてください。

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)         |   PCP (3) |C|  VLAN ID (12 bits)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

① TPID(Tag Protocol Identifier / 16ビット):「これは802.1Qの付箋です」の目印

  • 仕様: 常に 0x8100 という値が入ります。
  • 例え: 郵便封筒の左上に貼られた「速達シール」のようなものです。ネットワーク機器(スイッチやルーター)は、この 0x8100 という数字を見つけると、「おっ、後ろにVLANの付箋がくっついているな」と瞬時に理解し、タグの解析モードに入ります。

② PCP(Priority Code Point / 3ビット):お急ぎ便のマーク

  • 仕様: 0 から 7 までの8段階の優先度を指定します(IEEE 802.1pとも呼ばれます)。
  • 例え: 宅配便の「冷蔵・冷凍マーク」や「超速達」のようなものです。
  • 解説: 例えば、IP電話の音声データやWeb会議の映像データには優先度の高い数字( 5 や 6 など)をつけ、普通のメールやファイル転送には低い数字( 0 など)を指定します。ネットワークが混雑したとき、お急ぎ便のパケットを優先して通すための仕組みです。

③ DEI(Drop Eligible Indicator / 1ビット)※旧CFI:混雑時の身代わりフラグ

  • 仕様: 1ビット(0か1)のフラグです。
  • 例え: 「荷物が多すぎてトラックに入りきらない場合、この荷物は後回し(または破棄)にしてもいいですよ」という許可証のようなものです。
  • 解説: 通常は 0 ですが、ネットワークがパニック状態のときに、このビットが 1 になっているパケットは優先的に捨てられ、全体の通信クラッシュを防ぎます。

④ VLAN ID(12ビット):何番地の部屋かを示す数字

  • 仕様: 1 から 4094 までの番号を指定します(0 と 4095 はシステム予約)。
  • 例え: アパートの「部屋番号(例:101号室、205号室)」です。
  • 解説: 12ビットあるので、 $2^{12} = 4096$ 通りの部屋を作ることができます。この番号を見て、スイッチは「あ、これはVLAN 10番の部屋の住民だから、10番のポートだけに届けよう」と判断するわけです。

—

4. 実務での設定例を覗いてみよう!

ネットワークの理論がわかったところで、実際のCisco機器(IOS)を例に、スイッチのポートにこのVLANタグがどう関わっているのか、設定サンプルを見てみましょう。実務でもそのまま使える基本の形です。

[PC (VLAN 10)] -- (アクセスポート) [Switch A] === (トランクポート: 802.1Qタグ付与) === [Switch B] -- (アクセスポート) -- [PC (VLAN 10)]

スイッチAの基本設定サンプル

スイッチ同士を繋ぐ「トランクポート(タグを付ける側)」と、PCを繋ぐ「アクセスポート(タグを剥がす側)」の設定を見てみます。

! --- グローバルコンフィグモードに移行 ---
configure terminal

! --- VLAN 10 と VLAN 20 をあらかじめ作成 ---
vlan 10
 name SALES_DEPT
vlan 20
 name DEV_DEPT

! --- PCが繋がるポート(アクセスポート):タグなしで受け取り、内部でVLAN 10のラベルを貼る ---
interface GigabitEthernet0/1
 description Connected to Sales PC
 switchport mode access
 switchport access vlan 10
 no shutdown

! --- スイッチ同士を繋ぐポート(トランクポート):802.1Qのタグをつけてそのまま流す ---
interface GigabitEthernet0/24
 description Trunk link to Switch B
 switchport trunk encapsulation dot1q  ! 802.1Qカプセル化方式の指定
 switchport mode trunk                 ! トランクモードに設定
 switchport trunk allowed vlan 10,20   ! VLAN 10と20の通過を許可
 no shutdown

現場のワンポイントアドバイス:
アクセスポートに接続されたPCは、自分がVLANに所属しているなんて露ほども思っていません。PCが送るフレームは「普通のイーサネットフレーム(タグなし)」です。それをスイッチの入り口で拾い、「君はVLAN 10だね」と4バイトの付箋を貼り付けてトランクポートへ送り出すのがスイッチの仕事です。そして、対向のスイッチに着いた瞬間、その付箋は綺麗に剥ぎ取られて、宛先のPCには何事もなかったかのように「タグなし」のフレームが届きます。この「貼って剥がす」魔法こそが、L2スイッチングの醍醐味です。

—

5. まとめ

いかがでしたでしょうか?一見すると難解なビットの羅列や英語の略語(TPID、PCP、DEI、VLAN ID)も、「会社の中で部署ごとに手紙を仕分けして、安全に別の部屋へ届けるための郵便システム」として捉えてみると、ぐっと身近に感じられたのではないでしょうか。

パケットの世界は、人間社会のルールや効率化の知恵がギュッと詰まった非常にロマンチックな空間です。今回の4バイトの付箋の構造を頭の片隅に置いておくだけで、将来トラブルシューティングでパケットキャプチャ(Wireshark等)を開いたとき、「おっ、ここに 0x8100 がいて、VLAN IDが10だな!」と、パケットたちの会話が生き生きと見えてくるはずです。

それでは、また次回のネットワークの深淵でお会いしましょう!インフラエンジニアの皆さん、日々の構築・運用お疲れ様です!

コメント

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