VLAN 設計の基礎|トランクと VLAN 間ルーティングの設計指針

  • URLをコピーしました!
目次

はじめに

VLAN は L2 ネットワークを論理的に分割する基礎技術であり、エンタープライズネットワークの設計でほぼ必ず登場します。一方で、実際の設定方法はベンダーや機種ごとに異なるため、特定機器のコマンド手順にばかり目が向きがちです。しかし VLAN 設計の判断軸(VLAN 番号の設計、ポートモードの使い分け、VLAN 間ルーティングの方式選定、セキュリティ)は、ベンダーをまたいで共通の原理に基づいています。土台となる設計思想を押さえておくと、扱う機器が Cisco でも FortiGate でも応用が効きます。

この記事でわかること
  • IEEE 802.1Q タグの構造と、VLAN がフレームを識別する仕組み
  • アクセスポートとトランクポートの違いと使い分け
  • ネイティブ VLAN の扱いと VLAN ホッピングへの対策
  • VLAN 間ルーティングを SVI と router-on-a-stick のどちらで実装するかの判断軸
  • VLAN 番号設計・管理 VLAN の分離など、運用で効く設計のポイント

VLAN 設計の要点は、フレームをどこでタグ付けするか(アクセスかトランクか)、タグなしフレームをどの VLAN に収容するか(ネイティブ VLAN)、VLAN 間の通信をどの層で処理するか(L2 か L3 か)の 3 点に集約されます。 この 3 点をベンダー共通の観点で整理すれば、機器固有の設定はその応用として理解できます。各ベンダーの具体的な設定手順は、本記事末尾から各製品の解説記事へ案内します。

VLAN の基礎: ブロードキャストドメインの分割と IEEE 802.1Q タグ

VLAN は 1 台の物理スイッチを論理的に複数のブロードキャストドメインに分割する仕組みです。各フレームがどの VLAN に属するかは、IEEE 802.1Q で定義されたタグによって識別されます。

VLAN を使わない場合、1 つのスイッチに接続された端末はすべて同一のブロードキャストドメインに属し、ARP やブロードキャストが全ポートへ波及します。VLAN でセグメントを分けると、ブロードキャストの到達範囲を限定でき、部門やサービス単位でのトラフィック分離やセキュリティ境界の設定が可能になります。

802.1Q タグは、イーサネットフレームの送信元 MAC アドレスの直後に挿入される 4 バイト(32 ビット)のフィールドです。内訳は次のとおりです。

TPID(Tag Protocol Identifier)

16 ビット。値は 0x8100 で、このフレームが 802.1Q タグ付きであることを示します。

TCI(Tag Control Information)

16 ビット。以下の 3 つのサブフィールドで構成されます。

PCP(Priority Code Point)

3 ビット。IEEE 802.1p の CoS 値に対応し、QoS のフレーム優先度に使われます。

DEI(Drop Eligible Indicator)

1 ビット。旧称 CFI。輻輳時に破棄してよいフレームかどうかを示します。

VID(VLAN Identifier)

12 ビット。フレームが属する VLAN を指定します。

VID は 0x0000xFFF が予約されているため、実際に利用できるのは 1 から 4094 までの最大 4,094 VLAN です。また、4 バイトのタグが付与されることで、フレームサイズは従来の 1518 バイトから 1522 バイトへ拡張されます。この差はジャンボフレームや IPsec・トンネルを併用する環境での MTU 設計に影響するため、後述のベストプラクティスで改めて触れます。

PCP フィールドは 802.1p の CoS と直結しており、VLAN タグは QoS マーキングの土台にもなります。トランク上での CoS 設計やキューイングの考え方は、関連記事『QoS とは|優先制御の仕組みと製品共通で押さえる設計のポイント』で詳しく扱っています。

参考: Cisco VLAN Configuration Guide(Configuring VLAN Trunks)
“Ethernet trunks carry the traffic of multiple VLANs over a single link.”
(イーサネットトランクは、複数の VLAN のトラフィックを 1 本のリンクで伝送する。)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst1000/software/releases/15_2_7_e/configuration_guides/vlan/b_1527e_vlan_c1000_cg/configuring_vlan_trunks.html

ポート VLAN とタグ VLAN(802.1Q)

VLAN の割り当て方には、大きく分けてポート VLAN とタグ VLAN の 2 種類があります。

ポート VLAN(ポートベース VLAN)は、スイッチポート単位で所属 VLAN を固定する方式です。フレームにタグは付与されず、端末側は VLAN を意識しません。一方タグ VLAN は、802.1Q タグでフレームに VLAN 情報を付与し、1 本のリンクで複数の VLAN を区別して運ぶ方式です。前者は主にアクセスポート、後者はトランクポートに対応し、両者の違いは次のセクションで詳しく整理します。

Voice VLAN とダイナミック VLAN の位置づけ

設計の選択肢として、Voice VLAN とダイナミック VLAN についても押さえておきます。

Voice VLAN は、IP 電話の音声トラフィックをデータ用 VLAN とは別の VLAN に分離する仕組みです。1 つのアクセスポートにデータ VLAN と音声 VLAN を同居させ、音声側に高い CoS を割り当てる構成が一般的です。ダイナミック VLAN は、接続端末の MAC アドレスや 802.1X 認証の結果に応じて所属 VLAN を動的に割り当てる方式です。設計の基本は静的割り当てですが、認証基盤と連携した端末識別が必要な場合に検討の余地があります。

アクセスポートとトランクポートの違い

スイッチのポートは、運ぶ VLAN の数によってアクセスポートとトランクポートに大別されます。アクセスポートは単一の VLAN をタグなしで運び、トランクポートは複数の VLAN を 802.1Q タグで区別して運びます。

アクセスポートは、1 つの VLAN に固定されたポートです。接続される端末はタグを意識せず、受信したタグなしフレームは所属 VLAN に収容され、送信時もタグは付与されません。PC やプリンター、単一セグメントに属するサーバーなど、エンドデバイスの接続に使われます。

トランクポートは、複数 VLAN のフレームを 802.1Q タグ付きで伝送するポートです。スイッチ間のリンクや、L3 スイッチ、ルーター、ファイアウォールとの接続に使われ、1 本の物理リンクで多数の VLAN をまとめて運べます。

設計上のポイントは、端末向けポートはアクセス、機器間リンクはトランク、と役割を明確に固定することです。Cisco の一部機種では DTP(Dynamic Trunking Protocol)による自動ネゴシエーションでポート種別が動的に決まる場合がありますが、設計の予測可能性とセキュリティの観点から、ポート種別は自動ネゴシエーションに任せず静的に固定することをおすすめします。 この点は後述の VLAN ホッピング対策にも直結します。

参考: Cisco Meraki Documentation(Fundamentals of 802.1Q VLAN Tagging)
“trunk ports will link switches, and access ports will link to end devices.”
(トランクポートはスイッチ同士を、アクセスポートは端末を接続するのが一般的である。)
https://documentation.meraki.com/Platform_Management/Dashboard_Administration/Design_and_Configure/Configuration_Guides/Routing_and_Firewall/Fundamentals_of_802.1Q_VLAN_Tagging

トランクで許可 VLAN を絞り込む考え方

トランクポートは、既定ではそのスイッチが持つ多くの VLAN を伝送し得ます。実務では、そのリンクで実際に必要な VLAN だけを許可リストに限定する設計(VLAN プルーニング)が有効です。

許可 VLAN を絞り込む狙いは、不要なブロードキャストの伝播を抑えること、障害やループの影響範囲を限定すること、そして攻撃面を縮小することの 3 点です。トランクごとに「このリンクで本当に必要な VLAN は何か」を洗い出し、過不足なく許可する設計が、運用後のトラブルシュートも容易にします。各ベンダーでの具体的な設定コマンドは、本記事末尾から各製品の解説記事で扱います。

ネイティブ VLAN と VLAN ホッピング対策

ネイティブ VLAN は、トランク上でタグなしのまま送受信される VLAN です。多くの機種で既定値は VLAN 1 ですが、この既定設定をそのまま使うことが VLAN ホッピングの温床になり得ます。

ネイティブ VLAN は、802.1Q に対応しない機器との互換性のために導入された概念です。トランクで受信したタグなしフレームはネイティブ VLAN に収容され、送信時もネイティブ VLAN のフレームはタグなしで送出されます。そのため、トランクの両端でネイティブ VLAN の ID を一致させておく必要があります。不一致は通信不良や、意図しない VLAN 間のトラフィック混在の原因になります。

参考: Cisco VLAN Configuration Guide(Configure VLAN Trunking)
“The native VLAN is VLAN 1 by default.”
(ネイティブ VLAN は既定で VLAN 1 である。)
https://www.cisco.com/c/en/us/td/docs/switches/lan/c9000/lyr2-fwd/vlan/vlan-configuration-guide/configure-vlan-trunks.html

VLAN ホッピングは、L2 のセグメント分離を回避して、本来アクセスできない VLAN へ到達する攻撃の総称です。代表的な手法は 2 つあります。

1 つ目はスイッチスプーフィングです。攻撃者が DTP メッセージを送ってスイッチにトランクを形成させ、トランク上の VLAN へアクセスする手法です。DTP は Cisco 独自のプロトコルであり、この手法は DTP が有効なポートで成立します。

2 つ目はダブルタギング(二重タグ)です。攻撃者が 802.1Q タグを 2 重に付与したフレームを送り、外側のタグをトランクのネイティブ VLAN に一致させます。1 台目のスイッチが外側タグを剥がしてネイティブ VLAN へ転送し、2 台目のスイッチが内側タグを読んで標的 VLAN へ転送することで、VLAN の境界を越えます。攻撃者がトランクのネイティブ VLAN に属する場合にのみ成立し、戻りの通信は不可能な片方向の攻撃です。DTP を使わない二重タグの手法は、802.1Q に準拠する機器であればベンダーを問わず成立し得る点に注意が必要です。

対策の基本は次のとおりです。

  • 端末向けポートを明示的にアクセスモードに固定し、自動トランクネゴシエーション(DTP)を無効化する。 スイッチスプーフィングの緩和につながります。
  • ネイティブ VLAN を VLAN 1 のままにせず、未使用の専用 VLAN に変更し、ユーザートラフィックを載せない。 二重タグの前提条件を崩します。
  • トランクのネイティブ VLAN を明示的にタグ付けし、タグなしの抜け道をなくす。 二重タグへの多層防御として有効です。
  • トランクの許可 VLAN を必要最小限に絞り込む。
  • 未使用ポートはシャットダウンしておく。

これらは設計原則であり、switchport mode accessswitchport nonegotiate、ネイティブ VLAN のタグ付けといった具体的なコマンドはベンダーごとに異なります。各製品での設定例は、末尾から各解説記事へ案内します。

VLAN 間ルーティングの設計: SVI と router-on-a-stick の使い分け

VLAN は L2 でセグメントを分離するため、異なる VLAN 間の通信には L3 のルーティングが必要です。代表的な実装は L3 スイッチの SVI と、ルーターの router-on-a-stick の 2 つで、ネットワークの規模と求める性能によって使い分けます。

歴史的には、VLAN ごとにルーターの物理インターフェースを 1 つずつ割り当てるレガシー方式もありましたが、ポート数の制約からスケールせず、現在はほとんど使われません。実務で検討対象になるのは、次の 2 方式です。

L3 スイッチの SVI を使う場合

SVI(Switch Virtual Interface)は、L3 スイッチ上に VLAN ごとに作成する仮想インターフェースです。その VLAN に属する全ポートに対する L3 処理を担い、各 VLAN のデフォルトゲートウェイとして機能します。

SVI による VLAN 間ルーティングはハードウェアスイッチングで処理されるため、ルーターによるソフトウェア処理よりも高速で、キャンパス LAN のディストリビューション層で標準的に採用されます。利用にあたっては L3 スイッチ側でルーティング機能の有効化(Catalyst の場合は ip routing。既定では無効)が前提になりますが、具体的なコマンドは製品ごとに異なるため、末尾の解説記事で扱います。

ルーターの router-on-a-stick を使う場合

router-on-a-stick は、ルーターの 1 つの物理インターフェースを 802.1Q トランクとして構成し、VLAN ごとにサブインターフェースを作成する方式です。各サブインターフェースに IP アドレスと VLAN を割り当て、1 本の物理リンクで複数 VLAN 間のルーティングを実現します。

ソフトウェアベースの処理であり、VLAN 間のパケットはトランクを 2 回(入りと出り)通過するため、トランクの帯域とルーターの転送能力がボトルネックになりやすい点に注意が必要です。L2 スイッチしか手元にない小〜中規模の環境やラボに向いた方式と位置づけられます。

参考: Cisco Press(Inter-VLAN Routing Operation)
“The router-on-a-stick method of inter-VLAN routing does not scale beyond 50 VLANs.”
(router-on-a-stick 方式の VLAN 間ルーティングは、50 VLAN を超える規模にはスケールしない。)
https://www.ciscopress.com/articles/article.asp?p=3089357&seqNum=4

選定の目安としては、L3 スイッチがあれば SVI、L2 スイッチしかない小規模環境では router-on-a-stick という整理が基本です。加えて、FortiGate などのファイアウォールを VLAN 間のゲートウェイに据え、セグメント間の通信にポリシー制御を効かせる設計も実務では多く採られます。各機器での具体的な設定は、末尾から各解説記事へ案内します。

VLAN 設計のベストプラクティス

設計の初期段階で VLAN の番号体系、管理 VLAN の分離方針、MTU を決めておくと、運用開始後の手戻りやトラブルを減らせます。

VLAN 番号設計と管理 VLAN の分離

VLAN ID は、用途や拠点ごとに範囲を体系化しておくと運用が安定します。たとえば 10 番台をユーザー、20 番台をサーバー、30 番台を音声、といった一貫した割り当てルールを定めておくと、アドレス設計やトラブルシュートが容易になります。

管理面では、スイッチ管理(SSH や SNMP)のトラフィックを、ユーザー VLAN や既定の VLAN 1 から分離することがおすすめです。VLAN 1 は多くの機種で既定 VLAN かつネイティブ VLAN であり、管理トラフィックやユーザートラフィックを載せないことが、前述の VLAN ホッピング対策とも整合します。 ネイティブ VLAN・管理 VLAN・ユーザー VLAN は、それぞれ別の ID に分けて設計することをおすすめします。

MTU・QinQ・スパニングツリーとの関係で押さえる点

802.1Q タグの付与でフレームサイズが 4 バイト増えることは前述のとおりですが、QinQ(IEEE 802.1ad)を使う場合はさらに注意が必要です。QinQ は、顧客側の C-TAG(TPID 0x8100)の外側に、サービス事業者の S-TAG(TPID 0x88a8)を重ねる二重タグの方式です。事業者の VLAN の中で顧客の VLAN を運ぶことで、12 ビットの VID で表現できる 4094 という上限を超えてスケールさせる用途に使われます。

タグを重ねるたびにフレームは 4 バイトずつ大きくなるため、QinQ を通す経路上のすべての機器で MTU を引き上げておく必要があります。MTU の不足は、大きいフレームの破棄や断片化による通信不良の原因になります。

参考: Cisco(Inter-Switch Link and IEEE 802.1Q Frame Format)
“The recommended minimum MTU is 1504 bytes.”
(推奨される最小 MTU は 1504 バイトである。)
https://www.cisco.com/c/en/us/support/docs/lan-switching/8021q/17056-741-4.html

スパニングツリーとの関係では、VLAN ごとに STP インスタンスを持つ方式(PVST+ など)は、VLAN 数が増えるとスイッチの CPU 負荷が高まります。多数の VLAN を扱う環境では、複数 VLAN を 1 つのインスタンスにまとめる MST(Multiple Spanning Tree)の採用を検討する余地があります。また前述のとおり、トランクのネイティブ VLAN では STP を有効に保つか、ネットワーク全体でループ防止を確実にした上で運用する設計が安全です。

ベンダー別の設定とトラブルシューティングの入り口

ここまで整理した設計の考え方はベンダーを問わず共通ですが、実際の設定コマンドや用語は製品ごとに異なります。各製品の具体的な手順は個別の解説記事で扱い、ここでは概観と、ベンダーを問わず役立つトラブルシュートの観点を示します。

  • Cisco Catalyst(IOS-XE)は、VLAN を VLAN データベースに作成し、各ポートを switchport mode access または switchport mode trunk で構成します。VLAN 間ルーティングは SVI(interface Vlan<id>)と ip routing の有効化で実現します。
  • FortiGate(FortiOS)は、VLAN を物理インターフェース上の VLAN インターフェース(サブインターフェース)として作成し、VLAN ID を割り当てます。複数ポートを束ねる software switch・hardware switch との関係や、VDOM 構成との兼ね合いも設計上のポイントになります。
  • YAMAHA RTX は、タグ VLAN とポートの対応づけを設定します。LAN 分割スイッチ機能との違いや、機種ごとの VLAN 対応状況の差に注意が必要です。
  • NEC IX シリーズは、ルーターのインターフェース上にタグ VLAN を設定します。IX 独自のコマンド体系のため、他ベンダーの感覚をそのまま流用しないことが安全です。

トラブルシューティングでは、ベンダーを問わず次の観点が起点になります。

  • トランクの両端で、許可 VLAN とネイティブ VLAN の設定が一致しているか。
  • アクセスポートに意図した VLAN が割り当てられているか。
  • VLAN 間通信ができない場合、ゲートウェイ(SVI またはサブインターフェース)の IP とルーティングの有効化を確認する。
  • MAC アドレステーブルと ARP で、該当 VLAN の学習状況を確認する。
  • QinQ やトンネルを併用する場合、経路上の MTU 不整合を確認する。

各製品の確認コマンド(show 系や diagnose 系)は、それぞれの解説記事で扱います。

参考: Cisco(Configure Inter VLAN Routing with the Use of an External Router)
“the native VLAN must be configured the same on each side of the trunk link.”
(ネイティブ VLAN はトランクリンクの両側で同一に設定する必要がある。)
https://www.cisco.com/c/en/us/support/docs/lan-switching/inter-vlan-routing/14976-50.html

まとめ

VLAN 設計の要点は、フレームをどこでタグ付けするか、タグなしフレームをどの VLAN に収容するか、VLAN 間の通信をどの層で処理するかの 3 点に集約されます。これらをベンダー共通の観点で押さえておけば、扱う機器が変わっても設計の判断軸は変わりません。各製品の具体的な設定は、本記事を起点に各解説記事へ広げてください。

  • VLAN は 802.1Q タグでフレームの所属を識別する仕組み
  • アクセスポートは単一 VLAN、トランクは複数 VLAN をタグ付きで伝送
  • ネイティブ VLAN を既定のままにしないことが VLAN ホッピング対策の基本
  • VLAN 間ルーティングは規模に応じて SVI と router-on-a-stick を使い分ける。
  • 管理 VLAN とユーザー VLAN は別の ID に分けて設計する。
  • QinQ やトンネル併用時は経路上の全機器で MTU を引き上げる。
  • 設定コマンドはベンダーごとに異なるため公式リファレンスで確認する。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次