VLANとは?なぜ必要?現役エンジニアがわかりやすく解説

「VLANって何のために使うの?スイッチにポートがあるならそのまま繋げばよくない?」

めちゃくちゃいい疑問です。VLANの必要性って、小さなネットワークしか知らないと実感しにくいんですよね。

でも会社のネットワークを想像してみてください。営業部、開発部、経理部、来客用Wi-Fi——全部が同じスイッチに繋がっている状態。経理部の給与データのブロードキャストが営業部のPCにも飛んでいく。来客の私物PCから社内サーバーにアクセスできちゃう。

……やばいですよね。

VLANは「物理的には同じスイッチに繋がっているけど、論理的にネットワークを分ける」技術です。 ケーブルを差し替えなくても、設定だけでネットワークを分離できる。これがVLANのありがたみです。

私は業務でオフィスのネットワーク設計をするとき、まずVLAN設計から始めます。「どの部署をどのVLANに入れるか」が決まらないと、その先のIPアドレス設計もセキュリティ設計も進まない。それくらい基礎的で重要な技術です。

VLANがないとどうなる?

VLANなしの状態
1台が送信したブロードキャスト(一斉送信)が、すべてのPCに届いてしまいます
L2スイッチ 送信元 ! ブロードキャストが全員に届いてしまう
※ ブロードキャストとは: ネットワーク内のすべての機器に対して一斉に送られるデータのことです。VLANがない環境では、無関係な部署のPCにまでデータが届き、ネットワークを圧迫する原因になります。

ブロードキャストストームの恐怖

スイッチに100台のPCが繋がっていて、VLANを分けていないとします。1台がブロードキャスト(「誰かいますかー?」的な通信)を送ると、残り99台全部に届きます。

100台が同時にブロードキャストを送ったら? ネットワークがブロードキャストで埋め尽くされて、まともに通信できなくなります。

VLANを分ければ、ブロードキャストは同じVLAN内にしか届かない。営業部のVLANで起きたブロードキャストは、開発部のVLANには影響しない。これがブロードキャストドメインの分割です。

セキュリティの問題

VLANを分けていないと、全端末が同じネットワークにいるので、原理的には誰でも誰のPCにアクセスできます。来客が持ち込んだPCから経理のファイルサーバーに……なんてことも起こり得る。

VLANを分ければ、異なるVLAN間の通信はルーター(またはL3スイッチ)を経由するので、ACLやファイアウォールで制御できます。

VLANの基本を図で理解する

VLANの基本を図で理解する
同じスイッチでも論理的に分割されるため、関係ないPCには通信が届きません
VLAN 10 (営業部) VLAN 20 (開発部) L2スイッチ 送信元 ✅ 同じVLANのPCにしかブロードキャストが届かない
※ 仮想的なグループ分け: 物理的には1台のスイッチに繋がっていても、内部で「VLAN 10の部屋」と「VLAN 20の部屋」に壁が作られているイメージです。これによりセキュリティが向上し、ネットワークの無駄も省けます。

スイッチが1台あって、ポートが24個ある。ポート1〜12を「VLAN 10(営業部)」、ポート13〜24を「VLAN 20(開発部)」に設定する。

これだけで、ポート1に繋がったPCとポート13に繋がったPCは、同じスイッチに物理的に繋がっているのに通信できなくなります。 まるで2台の別々のスイッチに繋がっているかのように動く。

アクセスポートとトランクポート

次はポートの種類です。ここを知らないとコマンド設定で詰まるので、確認しておきましょう。

アクセスポートとトランクポート
スイッチ間を1本のケーブルで結び、複数のVLANデータを「タグ付け」して運びます
トランクポート (IEEE 802.1Q) アクセス アクセス スイッチ A スイッチ B 10 データ 20 データ 送信元のVLAN番号をタグ付け VLAN 10 VLAN 20 VLAN 10 VLAN 20
※ タグVLAN(IEEE 802.1Q): スイッチ間で複数のVLANデータを1本のケーブルでやり取りする技術です。データに「このデータはVLAN〇〇宛だよ」という名札(タグ)を付けて送ることで、受信側のスイッチが正しく仕分けることができます。

アクセスポート

PCやプリンターなどの「エンドデバイス」を繋ぐポート。1つのVLANにだけ所属します。

interface fa0/1
 switchport mode access
 switchport access vlan 10

これで「ポートfa0/1はVLAN 10に所属」になります。このポートを通るフレームにはVLANタグが付きません。PCは自分がどのVLANにいるかなんて知らなくていい。

トランクポート

スイッチ同士を繋ぐポート。複数のVLANのトラフィックをまとめて転送します。

フロア1のスイッチとフロア2のスイッチを繋ぐとき、営業部(VLAN 10)と開発部(VLAN 20)のトラフィックを両方通す必要がありますよね。そこで使うのがトランクポート。

トランクポートを通るフレームには802.1Qタグが付きます。「このフレームはVLAN 10のやつ」「こっちはVLAN 20」という荷札みたいなもの。対向スイッチはタグを見て、適切なVLANに振り分けます。

interface gi0/1
 switchport mode trunk
 switchport trunk allowed vlan 10,20

ネイティブVLANの罠

802.1Qには「ネイティブVLAN」という仕組みがあります。ネイティブVLANに属するフレームだけ、タグを付けずに転送される。デフォルトはVLAN 1。

これ、セキュリティ的に危ないんです。攻撃者がVLAN 1のタグなしフレームを悪用して、本来アクセスできないVLANに侵入する「VLANホッピング攻撃」が知られています。

対策として、ネイティブVLANをデフォルトのVLAN 1から変更するのがベストプラクティス。私も実務では必ず変更しています。

VLAN間で通信するには?

VLANを分けると、異なるVLAN間の通信はスイッチだけでは不可能になります。ルーター(またはL3スイッチ)が必要。

VLAN間で通信するには? (ルーター・オン・ア・スティック)
異なるVLANは「違うネットワーク」になるため、通信にはルーター(L3機器)が必要です
トランク ルーター gi0/0.10 (VLAN 10のGW) gi0/0.20 (VLAN 20のGW) L2スイッチ VLAN 10 PC VLAN 20 PC
※ ルーター・オン・ア・スティック構成: ルーターの1つの物理ポートを、論理的に複数(サブインターフェース)に分割する手法です。これにより、ケーブル1本だけで複数のVLAN間のルーティング(道案内)が可能になります。

ルーター・オン・ア・スティック

ルーターの物理ポート1つで、複数のVLAN間のルーティングを実現する構成です。

ルーター側で「サブインターフェース」を作成して、各VLANに対応するIPアドレスを設定します。

interface gi0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0

interface gi0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0

スイッチ側はルーターへの接続をトランクポートにする。これでVLAN 10とVLAN 20の通信がルーター経由で可能になります。

名前がちょっとダサいですが、小〜中規模ネットワークではよく使われる構成です。

L3スイッチ(SVI)

大規模になると、ルーター・オン・ア・スティックでは帯域がボトルネックになります。そこでL3スイッチのSVI(Switch Virtual Interface)を使います。

interface vlan 10
 ip address 192.168.10.1 255.255.255.0

interface vlan 20
 ip address 192.168.20.1 255.255.255.0

ip routing

ルーターを別途用意する必要がなく、スイッチ内部でVLAN間ルーティングが完結するので、速度も圧倒的に速い。実務ではこちらが主流です。

Packet Tracerで試してみよう

  1. スイッチ1台にPC3台を接続
  2. VLAN 10(PC0, PC1)とVLAN 20(PC2)を設定
  3. PC0からPC1にping → 通る(同じVLAN)
  4. PC0からPC2にping → 通らない(異なるVLAN)
  5. ルーター・オン・ア・スティックを追加設定
  6. PC0からPC2にping → 通る(ルーター経由)

4番目の「通らない」を自分の目で確認するのが大事。VLANがブロードキャストドメインを分割していることを体感できます。

VLANの問題で力試し

まとめ

VLANは「物理的に同じスイッチに繋がっていても、論理的にネットワークを分ける」技術です。ブロードキャストを抑えてセキュリティを高める、ネットワーク設計の基本中の基本です。

アクセスポートとトランクポートの使い分け、VLAN間通信にはL3機器が必要という点は試験でもよく問われます。コマンドを一度Packet Tracerで打ってみると、頭ではなく体で覚えられます。

PR