こんにちは!ネットワークの世界へようこそ。インフラエンジニアの私にとって、スイッチングハブやVLAN(Virtual LAN)は毎日の相棒のような存在です。
皆さんは、オフィスのネットワークを設計するとき、「同じフロアの部署同士なんだから、全員同じVLANでいいよね!」と気軽にグループ分けしていませんか? 実はこれ、セキュリティの観点から見ると、ちょっとスリリングな状態なんです。
今回は、そんな「同じVLANの中にいるのに、お互いの通信をこっそり制限しちゃう」という、ちょっと尖った技術プライベートVLAN(Private VLAN: PVLAN)のアーキテクチャについて、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
1. なぜ「プライベートVLAN」が必要なの?(身近な例え話)
まずは、普通のVLANとプライベートVLANの違いを、私たちの身近な世界に置き換えて考えてみましょう。
想像してみてください。あなたはとあるマンションのオーナーです。
- 普通のVLAN(マンションの棟):
A棟の住人は全員同じセキュリティカードを持っており、A棟の共用スペース(ラウンジや廊下)では、他の住人と自由に顔を合わせたり会話したりできますよね。これが従来のVLANです。「部署ごとにVLANを分ける」というのは、まさにこの棟を分ける作業です。
- プライベートVLAN(シェアハウスやホテル):
さて、ここに「1つのフロアにたくさんの部屋(サーバーやテナント)があるけれど、お互いにプライバシーを守るために、隣の部屋の中を覗き見させたくない!」というシチュエーションがあるとします。でも、管理人室(ルーターやインターネット回線)とは全員が通信できなければ困りますよね。
普通のVLANの仕組みだけだと、「同じVLANに所属した端末同士は、レイヤー2(MACアドレスベース)で直接おしゃべりし放題」になってしまいます。もし同じVLANに置いたサーバーの1台が乗っ取られたら、同じVLANにいる他のサーバーたちも一網打尽にされてしまいますよね。
「同じVLANの中にいながら、お互いの通信だけをガッチリ制限したい!」
そんなわがままを叶えてくれるのが、今回主役のプライベートVLANなんです。
—
2. プライベートVLANの3つの役割を知ろう!
プライベートVLANでは、スイッチのポートに3つの「役割(ロール)」を与えて交通整理を行います。難しく考えず、それぞれの特徴を見ていきましょう。
① プロミスキュアスポート(Promiscuous Port / 混成ポート)
- 例え:マンションの「管理人さん」や「コンシェルジュ」です。
- 役割:このポートは、プライベートVLAN内のすべてのポートと通信ができます。通常、外部のルーターやファイアウォール、あるいは管理用のサーバーがここに接続されます。みんなの親分であり、外の世界へ出ていくための唯一の玄関口です。
② アイソレーテッドポート(Isolated Port / 独立ポート)
- 例え:完全にプライバシーが守られた「カプセルホテルや個室」です。
- 役割:このポートに繋がった端末は、プロミスキュアスポート(管理人さん)としかお話しできません。同じフロアにいる他のアイソレーテッドポートの住民とは、挨拶すら禁止されています(通信不可)。セキュリティを最も厳しくしたいWebサーバーや、レンタルサーバーの各テナント等に最適です。
③ コミュニティポート(Community Port / 共同体ポート)
- 例え:同じフロアの住人同士で集まる「シェアハウスの共有リビング」です。
- 役割:同じコミュニティグループに属するポート同士なら、お互いに自由におしゃべり(通信)ができます。しかし、他のコミュニティグループの部屋や、アイソレーテッドポートの部屋とは通信できません。もちろん、プロミスキュアスポート(管理人さん)とは全員通信可能です。例えば、「同じプロジェクトチームの端末同士だけは通信させたい」というときに使います。
—
3. プライベートVLANの「プライマリー」と「セカンダリー」
プライベートVLANの内部構造は、少し入れ子構造になっています。ここだけ少し専門用語が出てきますが、優しく解説するのでついてきてくださいね!
- プライマリーVLAN(Primary VLAN):
全体の「大元のVLAN ID」です。外部のルーターなどからは、このプライマリーVLANが見えています。
- セカンダリーVLAN(Secondary VLAN):
プライマリーVLANの中にぶら下がる「子VLAN」のようなものです。ここには先ほど紹介した役割に合わせて、以下の2種類があります。
- アイソレーテッドVLAN(Isolatedポートが所属する)
- コミュニティVLAN(Communityポートが所属する)
通信のルールをまとめると、こうなります。
- アイソレーテッド同士 = 通信NG
- 異なるコミュニティ同士 = 通信NG
- 同じコミュニティ同士 = 通信OK
- すべてのセカンダリーポート ⇄ プロミスキュアスポート = 通信OK
これによって、レイヤー2(スイッチの中)のレベルで巧妙に通信の交通整理ができるというわけです。
—
4. 実務で設定してみよう!Ciscoスイッチの設定サンプル
それでは、実際にインフラの現場でよく使われるCisco Catalystスイッチを例に、簡単なプライベートVLANの設定を覗いてみましょう。
今回は、以下のような構成を想定します。
- プライマリーVLAN:
100 - アイソレーテッド用のセカンダリーVLAN:
101 - プロミスキュアスポート:
FastEthernet 0/1(ルーター接続) - アイソレーテッドポート:
FastEthernet 0/2(一般サーバー接続)
[ルーター] --- (Promiscuous: Fa0/1) [スイッチ] (Isolated: Fa0/2) --- [サーバーA]
|
(Isolated: Fa0/3) --- [サーバーB]
実際のCLI設定コマンドは以下のようになります。実務でそのまま参考にしていただけるよう、丁寧にコメントを入れています。
# 1. データベースモードに入り、プライベートVLANを作成・関連付けする
vlan 100
name PRIMARY-VLAN-100
private-vlan primary ! ここをプライマリー(親)として定義
vlan 101
name ISOLATED-VLAN-101
private-vlan isolated ! ここをアイソレーテッド(孤立型の子)として定義
# 2. プライマリーVLANにセカンダリーVLANを紐付ける
vlan 100
private-vlan association 101
# 3. プロミスキュアスポート(ルーター接続用)の設定
interface FastEthernet0/1
switchport mode private-vlan promiscuous
switchport private-vlan mapping 100 101 ! プライマリー100に対し、セカンダリー101の通信を許可
no shutdown
# 4. アイソレーテッドポート(サーバーA接続用)の設定
interface FastEthernet0/2
switchport mode private-vlan host
switchport private-vlan host-association 100 101 ! プライマリー100とセカンダリー101をバインド
no shutdown
このように設定することで、FastEthernet0/2に繋がったサーバーAは、同じスイッチの別のポートにいるサーバーBと直接通信することができなくなります。もしサーバーAが乗っ取られても、隣のサーバーBへの被害を物理的(レイヤー2的)にシャットアウトできるというわけです。
—
5. まとめ
今回は、同一VLAN内の通信をスマートに制限する技術「プライベートVLAN」について解説しました。
- プロミスキュアス:みんなの玄関口(管理人さん)
- アイソレーテッド:お互いを完全隔離する個室
- コミュニティ:仲間内だけで会話できる共有リビング
これらを組み合わせることで、VLANの数を無駄に増やすことなく、柔軟かつセキュアなネットワーク設計が可能になります。クラウド基盤やホスティングサービス、企業のサーバーファームなど、セキュリティがシビアに求められる現場では欠かせないアーキテクチャです。
「同じVLANだから通信できて当たり前」という固定観念をちょっとだけ崩してくれるプライベートVLAN、ぜひ実際のインフラ設計や学習の引き出しに加えてみてくださいね。
それでは、また次回のネットワークの深淵でお会いしましょう!
コメント