VLAN とトランキング(802.1Q)の内部
1台のスイッチを論理的に分割する仕組みが腑に落ちる。802.1Qタグの4バイトがどう挿入され、トランクとネイティブVLANでどう付与・除去されるかを内部から押さえられる。
- 1.VLANはブロードキャストドメインを論理分割する仕組みで、同じVLAN内だけがL2で直接届く。VLAN間通信にはL3(ルータ/L3スイッチ)が必須。
- 2.802.1Qはイーサネットフレームの送信元MAC直後に4バイトのタグ(TPID=0x8100+12ビットのVLAN ID)を挿入する。VLAN IDは0〜4095で実用は1〜4094。
- 3.トランクポートはタグ付きで複数VLANを束ねて運ぶ。ネイティブVLANだけはタグなしで流れ、両端の設定ずれはVLANホッピングの温床になる。
VLAN は「1台のスイッチを論理的に割る」発想
物理的に1台のL2スイッチは、既定では全ポートが1つの ブロードキャストドメイン に属します。あるポートに届いたブロードキャストや未知ユニキャストは、フラッディングで全ポートへ広がる。この挙動とMACテーブル学習の原理は /network/ethernet-switching-internals/ に詳しく、VLANはその「フラッディングが届く範囲」を ポートのグループ単位で論理的に区切る 技術です。
VLAN(Virtual LAN, IEEE 802.1Q)を設定すると、1台のスイッチがあたかも複数台のスイッチに分かれたように振る舞います。VLAN 10 のポート群と VLAN 20 のポート群は、物理的には同じ筐体でも L2では完全に分離 され、VLAN 10 のブロードキャストは VLAN 20 へ漏れません。配線を変えずに部署やセグメントを分けられること、これがVLANの本質です。
VLANはブロードキャストドメイン(L2)を分けるだけで、IPの世界では1つのVLAN=1つのサブネットに対応させるのが定石です。別VLANの相手へ届けるには、ルータかL3スイッチでルーティングが必要になります。「同じスイッチに挿さっているのに別VLANだと通信できない」のはこのためで、バグではなく設計どおりの遮断です。
802.1Q タグ:フレームに割り込む4バイト
VLANの所属情報は、フレーム自身に埋め込まれます。802.1Qは標準イーサネットフレームの 送信元MACアドレスの直後・EtherType(タイプ/長さ)の前 に、4バイトの VLANタグ を挿入します。挿入位置がこの一点で固定なのが重要で、受信側はオフセットで機械的にタグを取り出せます。
| サブフィールド | サイズ | 役割 |
|---|---|---|
| TPID(Tag Protocol Identifier) | 16ビット | 値は 0x8100 固定。ここが 0x8100 ならタグ付きフレームと判定する |
| PCP(Priority Code Point) | 3ビット | 優先度(0〜7)。CoSとしてQoSの分類に使う |
| DEI(Drop Eligible Indicator) | 1ビット | 輻輳時に優先廃棄してよいフレームかを示す(旧称CFI) |
| VID(VLAN Identifier) | 12ビット | 所属VLAN番号。0〜4095。実質1〜4094が利用可能 |
後半3つ(PCP・DEI・VID)の12+1+3=16ビットをまとめて TCI(Tag Control Information) と呼びます。VIDが12ビットなので、扱えるVLANは理論上 2^12 = 4096 個ですが、0 は「優先度タグ(VLAN未指定でPCPだけ運ぶ)」、4095 は予約のため、実用上のVLAN IDは1〜4094です。PCPの3ビットがQoSのクラス分けに直結する点は /network/qos/ と合わせて読むと、L2優先制御の入口がつながります。
[標準イーサネットフレーム]
宛先MAC(6) | 送信元MAC(6) | EtherType/長さ(2) | ペイロード | FCS(4)
[802.1Q タグ付きフレーム] ← 送信元MACの直後に4バイト割り込む
宛先MAC(6) | 送信元MAC(6) | TPID=0x8100(2) | TCI(2) | EtherType/長さ(2) | ペイロード | FCS(4)
└────── 802.1Q タグ(4バイト) ──────┘
タグ挿入でフレームは4バイト長くなり、最大フレーム長は通常の1518バイトから1522バイトになります(これを許容する拡張が802.3ac)。中間機器がこの4バイトを見込んでいないと、タグ付きフレームが「規定超過(ベビージャイアント)」として落ちることがあります。ペイロードのMTU 1500自体は変わらない点に注意で、フレーム長とMTUの関係は /network/mtu/ を参照してください。
アクセスポートとトランクポート:タグの付与・除去はどこで起きるか
802.1Qの実装で最も誤解されやすいのが「タグは誰がいつ付けて、いつ外すか」です。鍵はポートの種別です。
| ポート種別 | 扱うVLAN | フレームの状態 | 代表的な接続先 |
|---|---|---|---|
| アクセスポート | 単一VLANのみ | 外側はタグなし。スイッチ内部でのみVLANを識別 | PC・プリンタなど末端 |
| トランクポート | 複数VLANを束ねる | 原則タグ付きで流れる(ネイティブVLANを除く) | スイッチ間・スイッチとルータ間 |
アクセスポート に接続されたPCは、VLANを一切意識しません。PCはタグなしの普通のフレームを送り、スイッチが受信時に「このポートはVLAN 10」という設定に基づいて内部的にVLAN 10へ割り当てます。逆にPCへ送り出すときはタグを外します。つまり タグの付与・除去はスイッチの境界で完結 し、末端機器はタグの存在を知らずに済みます。
トランクポート は複数VLANのフレームを1本の物理リンクで運ぶ口です。VLAN 10 と VLAN 20 のフレームが同じケーブルを流れても、それぞれにVIDタグが付いているので受信側スイッチは取り違えません。スイッチ間を1本で繋ぐだけで多数のVLANを横断させられる、これがトランキングの核心です。
受信処理(タグの判定と内部化)
フレーム到着
├─ アクセスポート受信 → タグなし前提。ポート設定のVLANを内部で付与
└─ トランクポート受信
├─ TPID=0x8100 あり → VIDを読み取り、そのVLANのフレームとして扱う
└─ タグなし → ネイティブVLANのフレームとして扱う
送信処理(タグの除去判断)
宛先ポートへ送出
├─ アクセスポート送出 → タグを除去して送る(末端はタグを知らない)
└─ トランクポート送出
├─ そのVLANがネイティブVLAN → タグを付けずに送る
└─ それ以外のVLAN → VIDタグを付けて送る
ネイティブVLAN:トランク上で唯一タグを持たないVLAN
トランクポートには ネイティブVLAN という特別な1つのVLANを設定できます。トランク上を流れるフレームのうち、ネイティブVLANに属するものだけは タグを付けずに 流れます。受信側は「タグなしで届いたフレーム=ネイティブVLAN」と解釈します。これは旧来のタグ非対応機器との相互運用や、管理用トラフィックの扱いのために残された仕組みです。
ここに 設定ずれの危険 が潜みます。ネイティブVLANはトランクの両端で一致していなければなりません。片側がネイティブVLAN 1、もう片側がネイティブVLAN 99 だと、タグなしフレームの解釈が食い違い、意図しないVLANへフレームが漏れます。
攻撃者が「外側=ネイティブVLAN、内側=標的VLAN」の 二重タグ を付けたフレームを送ると、最初のスイッチが外側タグ(ネイティブVLAN)をタグなし扱いで剥がし、残った内側タグのフレームを次のスイッチが標的VLANのものとして転送してしまう、これがダブルタギング型のVLANホッピングです。対策は、ネイティブVLANを業務で使わない専用VLANに分離する、トランクで全VLANを明示タグ付け(native VLANもタグする)にする、未使用ポートをトランク自動交渉(DTP)させないことです。
VLAN とブロードキャストドメインの関係
VLANの効果を一言で言えば 「ブロードキャストドメインの数=VLANの数」 です。ブロードキャストやフラッディングは、フレームが属するVLANの範囲内にだけ広がり、他VLANのポートへは出ていきません。ブロードキャストの届く範囲という観点は /network/multicast-broadcast/ と地続きで、VLANはその「範囲」をポート単位で再定義する装置だと捉えられます。
これは性能・セキュリティ両面で効きます。大きな単一セグメントはブロードキャストが全端末を圧迫しますが、VLANで分ければ各ドメインが小さくなり、無関係なブロードキャストを受け取らずに済む。同時に、別VLANの端末へはL2で直接届かないため、セグメント間の遮断境界としても機能します。
VLANを分けると当然VLAN間は通信できなくなります。橋渡しには2通りあり、1つはルータの1物理インタフェースにトランクを繋ぎ、VLANごとのサブインタフェース(タグ単位の仮想IF)でルーティングする ルータオンアスティック。もう1つはL3スイッチ内部に各VLANの仮想IF(SVI)を作り、ハードウェアでVLAN間ルーティングする方式です。後者が高速で、現代の主流です。
「802.1Qタグの挿入位置は」→ 送信元MACの直後、EtherTypeの前に4バイト。「TPIDの値は」→ 0x8100。「VLAN IDのビット幅と範囲は」→ 12ビット、実用1〜4094。「アクセスとトランクの違いは」→ 単一VLANでタグなし境界か、複数VLANをタグ付きで束ねるか。「ネイティブVLANとは」→ トランク上で唯一タグなしで流れるVLANで、両端不一致はVLANホッピングの温床。「VLAN間通信に必要なものは」→ L3(ルータ/L3スイッチ)。この6点を構造で説明できれば上級。
まとめ
VLANは1台のスイッチを論理的に割り、ブロードキャストドメインをポート単位で再定義する技術です。その実体は、フレームの送信元MAC直後に割り込む4バイトの802.1Qタグ(TPID 0x8100 + 12ビットのVID)に集約されます。タグの付与・除去はスイッチ境界で起き、末端を繋ぐアクセスポートはタグなしの世界を、スイッチ間を繋ぐトランクポートはタグ付きで複数VLANを束ねる世界を担います。唯一の例外がタグなしで流れるネイティブVLANで、その設定ずれはVLANホッピングという実害に直結します。「ブロードキャストの届く範囲をフレーム1枚のタグで制御し、跨ぐときだけL3に上げる」という一筋で捉えれば、802.1Qの内部は明快に読み解けます。
ネットワーク Article
VLAN とトランキング(802.1Q)の内部を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
VLAN
比較で見る軸
難易度: advanced / カテゴリ: ネットワーク / タグ数: 5
導入後に効く点
802.1Qはイーサネットフレームの送信元MAC直後に4バイトのタグ(TPID=0x8100+12ビットのVLAN ID)を挿入する。VLAN IDは0〜4095で実用は1〜4094。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ネットワーク
- タグ数
- 5
判断チェックリスト
- 自社の用途が「VLAN / 802.1Q」に近いか確認する。
- 強みである「VLANはブロードキャストドメインを論理分割する仕組みで、同じVLAN内だけがL2で直接届く。VLAN間通信にはL3(ルータ/L3スイッチ)が必須。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。