CiscoのL3スイッチ(Catalystなど)で物理ポートをL3ポート化するためにno switchportを投入し、直接IPアドレスを設定したことはありませんか。
「物理ポートに直接IPを振ったのだから、VLANは使っていない」と思いたくなりますが、実はスイッチの裏側(チップ内部)では専用のVLANが自動的に作成され、1つ消費されています。
本記事では、この「内部VLAN(Internal VLAN)」の仕組みと、VLAN IDの衝突を防ぐためのvlan internal allocation policyの使いどころを解説します。
1. なぜ no switchport なのに内部VLANを消費するのか
結論から言うと、Catalystスイッチの転送処理チップ(ASIC)が、すべてのパケットを一旦VLANというグループに所属させてから処理するというL2スイッチの構造を前提に作られているためです。
外から見れば純粋なL3ルーティングポートですが、パケットがスイッチ内部を通過する瞬間だけは、処理を円滑にするために「そのポート専用の、外からは見えないVLANの入れ物」にパケットを収めています。
チップ内部でのパケットの流れ
- パケット受信:外部からタグなしのIPパケットが
no switchportポートに届く - 内部タグ付与:スイッチに入った瞬間、内部で自動生成された「内部VLAN(例:VLAN 4094)」のタグが付与される
- L3ルーティング:内部VLANに乗ってルーティングエンジンへ運ばれ、転送先VLANが判断される
- パケット送信:出力ポートから出る際、内部VLANタグは剥ぎ取られ、元のタグなしパケットとして送信される
2. show vlan では見えない:確認コマンドと出力例
この内部VLANは、通常のshow vlanやshow vlan briefを叩いても一切表示されません。裏で自動的に動いているものなので、管理者向けの表からは隠されています。
現在どのVLANが内部的に消費されているかを確認するには、専用コマンドを使用します。
Switch# show vlan internal usage出力例:
VLAN Usage Alternative Link
----- --------------------------------- ----------------
1006 GigabitEthernet1/0/11
1007 GigabitEthernet1/0/12
4094 GigabitEthernet1/0/1
4093 GigabitEthernet1/0/2この例では、no switchportを設定している物理ポートGigabitEthernet1/0/1と1/0/2のために、システムが裏でVLAN 4094と4093をキープして使っていることが分かります。
3. 手動VLANと内部VLANが衝突しない仕組み
ここで浮かぶ疑問が、「スイッチが内部VLANとして消費しているID番号(例:4094)を、知らずに手動でvlan 4094と作ろうとしたらどうなるのか」という点です。
答えは、エラーになって弾かれます。
% Default/Reserved/Internal VLAN 4094 cannot be created.これでは設計の自由度が下がってしまいますが、Ciscoスイッチにはデフォルトで衝突を避ける仕組みが備わっています。それが自動割り当ての方向(ポリシー)です。
- 手動VLAN(人間):通常は若い番号(昇順:VLAN 2、10、30…)から順に作っていく
- 内部VLAN(スイッチ):デフォルト設定(降順:
descending)により、一番大きい4094番から下に向かって自動消費していく
下から積み上げる「人間」と、上から削っていく「スイッチ」が中央で出会うまでは衝突しない、という設計になっています。
4. vlan internal allocation policy の使いどころ
では、割り当てポリシーを変更するこのコマンドはいつ使うのでしょうか。
Switch(config)# vlan internal allocation policy ascending- descending(降順・デフォルト):4094から下に向かって割り当てる
- ascending(昇順):1006から上に向かって(1006, 1007…)割り当てる
ユースケースとして分かりやすいのは、社内のナンバリングルールや拠点設計の都合で手動VLANに4000番台(VLAN 4000〜4090など)を使いたいケースです。
デフォルトのままでは内部VLAN(4094から降順)と衝突してしまい、手動でのVLAN作成ができません。そこでポリシーをascendingに変更すると、スイッチは内部VLANを若い番号(1006〜)から消費するようになるため、大きい番号帯を丸ごと手動VLAN用に空けておくことができます。
5. よくある不安:既存VLANが後から奪われることはないか
「ルーテッドポート(no switchport)を後から増やしていったら、本番通信で使っているVLANが勝手に内部VLANとして上書きされるのでは」と心配になるかもしれませんが、これはありません。
スイッチは新しい内部VLANを確保する際、すでに手動で作成されているVLANをすべてスキップし、現在完全に空いている(未使用の)VLAN IDだけを選んで割り当てる仕様になっています。既存の通信に影響が出ることはありません。
まとめ
no switchportの物理L3ポートは、裏で内部VLANを1つ消費して動いている- 確認は
show vlanではなくshow vlan internal usageで行う - 手動VLANと内部VLANの衝突を避けるため、割り当てポリシーを
descending(降順)かascending(昇順)で調整できる
普段は見えないところで動いている機能ですが、把握しておくと設計時のVLAN番号設計やトラブルシューティングで役立ちます。実機を触る機会があれば、一度show vlan internal usageを叩いてみてください。