今さら聞けない「VLANの基本」 (5) プライベートVLAN
○プライベートVLANの概要
VLANによってネットワークを分割すると、VLAN間の通信はレイヤー3スイッチやルーターを経由して行われる。そのため、レイヤー3スイッチやルーターでアクセス制御が可能だ。ただ、アクセス制御のためにVLANでネットワークを分割すると、VLANの数が相当増えてしまうかもしれない。また、VLANが増えれば増えるほど、ネットワークアドレスもたくさん必要になってしまう。
VLANで分けてのアクセス制御ではなく、同じVLAN内でのアクセス制御をしたいというニーズもあるだろう。同じVLAN内でのアクセス制御を実現するひとつの手段が『プライベートVLAN』だ。プライベートVLANの利用例としては、サーバファーム内のサーバのアクセス制御などがある。
複数のサーバを効率よく運用管理するためには、サーバをサーバファームに集約して設置したほうがよい。そして、サーバは同一VLANに接続して同じネットワークのIPアドレスを設定していることが多いだろう。同一VLANなので、ルーターやレイヤー3スイッチを介さずにサーバ間の通信ができてしまう。しかし、必ずしもサーバ間の通信が必要なわけではない。ファイルサーバとメールサーバのように他のサーバとの連携が必要なく、独立して動作するサーバもある。
独立して動作するサーバ間では特に通信させる必要はない。本来通信させる必要がないサーバ間は、通信できないように制御しておいた方がセキュリティ上望ましい。
次の図は、サーバファームでのアクセス制御の例を示している。すべてのサーバは同じVLAN100に所属し、192.168.100.0/24のネットワークアドレスのIPアドレスを設定している。SRV1とSRV2は連携して動作する必要があるので、SRV1-SRV2の通信ができるようにする。しかし、SRV3とSRV4は他のサーバと独立して動作するサーバで、他のサーバとの通信は不要で、上位のスイッチが接続されているポートとの通信ができればよい。プライベートVLANを利用すれば、このようなアクセス制御を実現できる。
○プライベートVLANの仕組み
プライベートVLANでは、もともとのネットワークアドレスと対応付けているVLANをプライマリVLANとして、プライマリVLANをさらにセカンダリVLANに分割する。
セカンダリVLANとして次の2つある。
・コミュニティVLAN(Community VLAN)
・隔離VLAN(Isolated VLAN)
コミュニティVLANは通信できるポートをグループ化する。そして、隔離VLANはその名前の通りポートを隔離してポート間の通信ができなくなるようにする。なお、コミュニティVLANも隔離VLANもプライマリVLANとの通信は可能だ。
そして、プライベートVLANではプライマリVLANとセカンダリVLANのポートとして、次の3つがある。
・プロミスキャスポート(Promiscuous Port)
・コミュニティポート(Community Port)
・隔離ポート(Isolated Port)
プロミスキャスポートはプライマリVLANのポートだ。コミュニティポート、隔離ポートとの間で通信できる。上位のスイッチが接続されるポートをプロミスキャスポートとして設定することになる。
そして、コミュニティVLANのポートがコミュニティポートとなる。コミュニティポート間、プロミスキャスポートとの通信ができるポートだ。たとえば、連携して動作する必要があるサーバが接続されるようなポートをコミュニティポートとして設定する。
隔離VLANのポートが隔離ポートだ。隔離ポートが通信できるのはプロミスキャスポートとの間のみだ。他の隔離ポートやコミュニティポートとの通信はできない。他のサーバと連携する必要がないようなサーバを接続するポートを隔離ポートとする。次の図にプライベートVLANによるアクセス制御の様子をまとめている。
ポート1~ポート5はすべて同一VLANのポートだが、プライベートVLANによって通信できるポートが以下の表のように限定できる。
表 1 プライベートVLANによって通信できるポート
○ネットギアスイッチでのプライベートVLANの設定
ネットギアスイッチでプライベートVLANの設定を行っていこう。設定の手順としては、次のようになる。1.VLANの作成
2.VLANをポートに割り当てる
3.セカンダリVLAN(プライベートグループ)の作成
4.プライベートグループにポートを割り当てる
一連の連載で考えているネットワーク構成において、サーバ間の通信ができないようにプライベートVLANの設定を行っていこう。通信ができないようにするので、L3SWのポート1、ポート2を隔離ポートとして設定する。
手順の1.と2.は通常のポートベースVLANの設定だ。
※ポートベースVLANの設定については、2回目の記事を参照していただきたい
次は、手順3.のセカンダリVLANの作成だ。セカンダリVLANはネットギアスイッチではプライベートグループと呼んでいる。
プライベートグループを作成するには、[Security]→[Traffic Control]→[Private Group]→[Private Group Configuration]から行う。今回の設定では、グループ名は「isolated」、グループIDは「101」を使っている。そして、隔離ポートとするのでモードを「isolated」に指定する。
手順4.として、手順3.で作成したプライベートグループにポートの割り当てを行う。Security]→[Traffic Control]→[Private Group]→[Private Group Membership]でプライベートグループ[isolated]を選択して、ポート1とポート2にチェックをつければ設定は完了だ。
○CLIでの設定
ここまでのGUIでの設定をCLIで行う場合は、以下のようにコマンドを入力する。
L3SW プライベートVLANの設定
(M5300-28G3) #configure
(M5300-28G3) (Config)# private-group name isolated 101 mode isolated
(M5300-28G3) (Config)#interface 1/0/1
(M5300-28G3) (Interface 1/0/1)#switchport private-group 101
(M5300-28G3) (Interface 1/0/1)#exit
(M5300-28G3) (Config)#interface 1/0/2
(M5300-28G3) (Interface 1/0/2)#switchport private-group 101
(M5300-28G3) (Interface 1/0/2)#exit
○プライベートVLANの動作確認
サーバ1からPingを実行してプライベートVLANの動作を確認しよう。SRV1からデフォルトゲートウェイである192.168.100.1に対してPingを実行すると、正常に応答が返ってくる。
しかし、SRV2の192.168.100.102に対してPingを実行すると応答が返ってこないことが確認できる。プライベートVLANの設定によって、同じVLANのSRV1-SRV2間の通信ができないようになっている。
SRV1からのPing実行結果
C:\Users\Gene<ping 192.168.100.1
192.168.100.1 に ping を送信しています 32 バイトのデータ:
192.168.100.1 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.100.1 からの応答: バイト数 =32 時間