プライベートVLANについて

プライベートVLANとは

プライベートVLAN(Virtual Local Area Network)とは、ネットワークのセグメンテーションを提供するためのテクノロジーです。通常、VLANは異なるデバイスやユーザーを論理的にグループ化するために使用されますが、プライベートVLANはさらにそのグループ内でのトラフィックの制御を提供します。

たとえば、プライベートVLANを使用すると、同じVLAN内のデバイス間での直接の通信を制限し、通信をルーターやファイアウォールなどの中間装置を介して制御することができます。これにより、不正アクセスやネットワーク内部からの攻撃からの保護を強化できます。

プライベートVLANは、クラウドサービスプロバイダーや大規模なネットワーク環境で特に役立ちますが、企業内のセキュアなネットワークセグメンテーションにも適しています。

プライベートVLANの構成

プライベートVLANはプライマリVLANとセカンダリVLANというVLANのペアによって表されます。さらに、隔離VLANとコミュニティVLANに分類わけすることが出来ます。

種類内容
プライマリVLANプライベートVLANに1つだけあるVLANです。
プライベートVLANのすべてのポートはプライマリVLANのメンバーです。
セカンダリVLAN
(隔離VLAN)
プライベートVLANに1つだけあるVLANです。
隔離されたVLAN内のポートは、レイヤ2レベルで相互に通信することはできません。
セカンダリVLAN
(コミュニティVLAN)
プライベートVLANに複数設定できるVLANです。
コミュニティVLAN内のポートは互いに通信できるが、
レイヤ2レベルで他のコミュニティのポートと通信することはできません。

プライベートVLANポートは以下の3つのポートに分類されます。

種類内容
無差別ポート(Promiscuous)プライマリVLANに属し、プライマリVLANに関連するセカンダリVLANに属するすべてのインタフェースと通信することができます。
隔離ポート(Isolated)セカンダリVLAN(隔離VLAN)に属するポートです。
無差別ポートを除き同じプライベートVLAN内の他のポートとは
完全にレイヤ2分離されていてすべてのトラフィックをブロックします。
無差別ポートとのみ通信できます。
コミュニティポート(Community)セカンダリVLAN(コミュニティVLAN)に属するポートです。
同じコミュニティポートや無差別ポートと通信することが出来ます。

プライベートVLANの設定

基本構文

VLANの作成

VTPモードをトランスペアレントに設定します。
Switch(config)#vtp mode transparent

それぞれのVLANを設定します。範囲は2-1001および1006-4094です。
Switch(config)#vlan vlan-id
Switch(config-vlan)#private-vlan [primary | isolated | community ]

コマンド内容
primaryプライマリVLANを作成します。
isolatedセカンダリVLAN(隔離VLAN)を作成します。
communityセカンダリVLAN(コミュニティVLAN)を作成します。

セカンダリVLANをプライマリVLANに関連付けます。
Switch(config)#vlan vlan-id
Switch(config-vlan)#private-vlan association [ add | remove ] secondary_vlan_list

VLAN 無差別ポートの設定

switchport mode private-vlan promiscuousコマンドを使用して無差別ポートとして設定します。switchport private-vlan mappingコマンドでプライマリVLANとセカンダリVLANをマッピングします。
Switch(config)#interface interface-id
Switch(config-if)#switchport mode private-vlan promiscuous
Switch(config-if)#switchport private-vlan mapping primary_vlan_id { add | remove } secondary_vlan_list

隔離ポートとコミュニティポートの設定

Switch(config)#interface interface-id
Switch(config-if)#switchport mode private-vlan host
Switch(config-if)#switchport private-vlan host-association primary_vlan_id secondary_vlan_id

コマンド内容
primary_vlan_idプライマリVLANを作成します。
secondary_vlan_idセカンダリVLAN(隔離VLAN)を作成します。

セカンダリ VLAN のプライマリ VLAN レイヤ 3 VLAN インターフェイスへのマッピング

プライベートVLANがVLAN間ルーティングで使用される場合はプライマリVLANにSVIを設定して、セカンダリVLANをSVIにマッピングします。
Switch(config)#interface vlan primary_vlan_id
Switch(config-if)#private-vlan mapping [ add | remove ] secondary_vlan_list

設定例

プライマリVLAN、コミュニティVLAN、隔離VLANを作成します。

無差別ポート、コミュニティポート、隔離ポートを作成します。


コミュニティVLANに属しているPC1は同じコミュニティVLANのPC2、無差別ポートの先にあるRouter1と通信できますが、隔離VLANに属しているPC3とは疎通が取れません。

隔離VLANに属しているPC3は同じ隔離VLANのPC4、コミュニティVLANに属しているPC1とは疎通を取ることが出来ませんが、無差別ポートの先にあるRouter1とは疎通を取ることが出来ます。

参考文献

Chapter: Configuring Private VLANs