こんにちは!ネットワークの深淵を覗く旅へようこそ。インフラアーキテクトの私です。
日々のネットワーク設計や構築、そして現場での泥臭いトラブルシューティングに明け暮れていると、「おっ、これぞプロトコルの美しさだな」と唸らされる技術に出会うことがあります。今回取り上げるQ-in-Q(IEEE 802.1ad / VLAN Stacking)も、まさにそんな「シビれる技術」の一つです。
「VLANの数だけじゃ足りない!」「顧客ごとのVLANをそのままプロバイダー網に通したい!」そんな現場の悲鳴から生まれたのが、このQ-in-Qです。
今回は、ネットワークの世界に足を踏み入れたばかりの初学者の方に向けて、小難しいビット数や英語のヘッダー名はいったん脇に置いて、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう。
—
1. なぜQ-in-Qが必要なのか?(VLANの限界とプロバイダーの悩み)
みなさんはすでに、社内ネットワークなどで「VLAN(Virtual LAN)」という技術を使ったことがあるかもしれません。1本の物理的なケーブルやスイッチを、まるで複数の仮想的なネットワークに分割して、総務部と開発部を論理的にスパッと隔離する便利な仕組みですよね。
ここで、標準的なVLANタグ(IEEE 802.1Q)の仕様を思い出してみてください。タグの中に確保されたVLAN IDの部屋番号は「12ビット」でした。
$2^{12} = 4,096$。つまり、使えるVLANは最大で4,094個(0と4095を除外)です。
「4,096個もあれば十分じゃない?」と思いますよね。ところが、これを「通信事業者(プロバイダー)」の視点で考えてみると、一気に景色が変わります。
通信事業者は、日本中、あるいは世界中のたくさんの企業(A社、B社、C社…)にネットワークサービスを貸し出しています。
- A社は、自社内で
VLAN 10やVLAN 20を自由に使いたい。 - B社も、まったく同じように
VLAN 10やVLAN 20を使いたい。
もしプロバイダーが、A社もB社も一緒くたにして自社のスイッチに流し込んだらどうなるでしょう? そう、VLAN 10 同士が混ざり合って大混乱(パケットの衝突や誤配送)を起こしてしまいますよね。
「お客様ごとに専用の物理回線を引けばいいじゃないか」——いやいや、そんなことをしていたらプロバイダーのコストが破産してしまいます。「お客様が自分で決めたVLANタグを壊さずに、そのままプロバイダーの大きな道路(バックボーン)に乗せて向こう側まで運びたい!」。この切実な願いを叶えるために生まれたのが、VLANタグを「重ね着」するQ-in-Qなのです。
—
2. 郵便配達で例えるQ-in-Qの仕組み
Q-in-Qの仕組みを、私たちの身近にある「郵便配達」に例えてみましょう。
想像してください。あなたが東京にある本社で、大阪の支社宛てに機密書類を送りたいとします。
社内ルールに従って、あなたは書類を「開発部専用の青い封筒(内側のVLANタグ)」に入れました。青い封筒には「宛先:大阪支社 開発部」と書いてあります。
さて、これをそのまま郵便ポストに放り込んでも、一般の郵便物と混ざって迷子になってしまうかもしれません。そこで登場するのが「宅配便の段ボール箱(外側のVLANタグ)」です。
1. 社内(お客様)の作業:
書類を「青い封筒(顧客VLAN)」に入れます。
2. プロバイダーの入り口(PEルーター/スイッチ)の作業:
プロバイダーの係員が、その青い封筒をさらに「大きな茶色い段ボール箱(プロバイダーVLAN)」にすっぽり入れます。この段ボール箱には、プロバイダー網内で配送するための特別な伝票が貼られます。
3. プロバイダー網内の配送:
プロバイダーは、中の青い封筒の中身なんて気にしません。外側の段ボール箱に貼られた伝票(外側VLANタグ)だけを見て、大阪の拠点まで高速かつ安全に運びます。
4. プロバイダーの出口での作業:
大阪の拠点に届くと、プロバイダーの係員が茶色い段ボール箱をバリバリと剥がし、中から元の「青い封筒」を取り出して、お客様の大阪支社へそのまま手渡します。
このように、「お客様のタグ(内側)の上から、プロバイダーのタグ(外側)をもう一枚ペタッと貼り付ける(重ねる)」ことから、IEEE 802.1adは「VLAN Stacking」、そしてタグが2枚重なる様子から「Q-in-Q(QinQ)」と呼ばれているのです。
—
3. パケットの見た目はどうなるの?(二重カプセル化の正体)
技術的なお話も少しだけしておきましょう。
通常のイーサネットフレームには、データの前に「IEEE 802.1Q」という4バイトのタグが1枚挟まっています。これがシングルVLANの状態です。
Q-in-Qでは、ここにもう1枚タグが追加されます。
パケットの構造(レイヤー)をイメージしてみましょう。
+-------------------+-------------------+-------------------+-------------------+
| 外側MACヘッダー | 外側VLANタグ | 内側VLANタグ | ペイロード(データ)|
| (プロバイダー用) | (プロバイダーID) | (顧客VLAN ID) | |
+-------------------+-------------------+-------------------+-------------------+
ここで重要なポイントがあります。
通常のVLANタグは、イーサネットタイプ(プロトコル番号)として 0x8100 という値を持っています。しかし、Q-in-Qの外側タグでは、スイッチが「これは外側のプロバイダー用タグだぞ」とすぐに認識できるように、あらかじめ拡張された別の値(一般的には 0x88a8 や、古い機器では 0x9100 など)を使用することがIEEE 802.1adで規定されています。
この「タグが2枚重なる」という構造により、最大4,094個の限界を突破し、プロバイダー網内では数千・数万の顧客ネットワークを綺麗に分離して収容できるようになるのです。
—
4. 実務で役立つ!Cisco機器でのQ-in-Q(IEEE 802.1ad)設定サンプル
それでは、インフラエンジニアの腕の見せ所、実際の機器設定を見ていきましょう。
今回は、Cisco Catalystスイッチ(IOS環境)を想定した、基本的なQ-in-Q(IEEE 802.1adのプロバイダー側エッジポート)の設定サンプルをご紹介します。
実務でそのまま参考にできるよう、各行に丁寧なコメントを入れています。
! =====================================================================
! [前提条件]
! 顧客からのトラフィックを受け取るポート(インターフェイス)を
! 「IEEE 802.1ad(ドットワン・エーディ)」のトンネルポートとして設定します。
! =====================================================================
! 1. グローバルコンフィグレーションモードに移行
configure terminal
! 2. 顧客側が接続する物理インターフェイスを選択(例: GigabitEthernet0/1)
interface GigabitEthernet0/1
description Connection to Customer A Edge Switch
! 3. スイッチポートの動作モードを「dot1q-tunnel」に設定します
! これにより、このポートに入ってきたすべてのフレームに、
! 強制的にプロバイダー側の外側VLANタグが強制付加(プッシュ)されます。
switchport mode dot1q-tunnel
! 4. プロバイダー網内でこの顧客を識別するための外側VLAN ID(例: VLAN 100)を指定
! ※あらかじめグローバル側でVLAN 100を作成しておく必要があります。
switchport access vlan 100
! 5. ポートを有効化
no shutdown
exit
! =====================================================================
! [補足] トランクポート側の設定(プロバイダー網内へ転送するアップリンク)
! =====================================================================
interface GigabitEthernet0/24
description Uplink to Provider Core Backbone
switchport mode trunk
! 必要に応じてVLANを許可
switchport trunk allowed vlan add 100
no shutdown
設定のポイント
switchport mode dot1q-tunnelというコマンドが、Q-in-Qの魔法をかける心臓部です。- このポートに顧客が独自のVLAN(例えば
VLAN 10やVLAN 20)を乗せたままパケットを送ってくると、スイッチは顧客のタグを剥がすことなく、その上から外側のVLAN 100のタグをガチャンと追加してコア網へ送り出します。
—
5. まとめ:Q-in-QをマスターしてL2設計の幅を広げよう!
今回は、イーサネット規格の深淵を覗く「Q-in-Q(IEEE 802.1ad)」の仕組みについて、郵便配達の例えや設定サンプルを交えて解説しました。
- VLANの4,094個の限界を突破するために、タグを2重にする技術。
- 郵便の「青い封筒(顧客VLAN)」を「茶色い段ボール箱(プロバイダーVLAN)」に詰めて運ぶイメージ。
- 実務では
dot1q-tunnelなどのコマンドを使って、プロバイダーのエッジで簡単に実装できる。
ネットワークの世界は、基本のパケット構造の組み合わせと、現場の「こうしたい!」というアイデアの積み重ねでできています。最初は難しく見える用語も、身近な仕組みに置き換えてみると、途端にクリアに見えてきますよね。
ぜひ今回の解説を参考に、実機やシミュレータでQ-in-Qの挙動をパケットキャプチャなどで覗いてみてください。パケットたちが二重の衣装をまとって元気に駆け回る姿を見ると、きっとネットワークのロマンをより深く感じられるはずです。
それでは、次回のプロトコル解説でお会いしましょう!インフラアーキテクトの私でした。
コメント