プライベート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を作成します。
SW1(config)#vtp mode transparent
Device mode already VTP Transparent for VLANS.
SW1(config)#vlan 100
SW1(config-vlan)#private-vlan primary
SW1(config-vlan)#exit
SW1(config)#vlan 101
SW1(config-vlan)#private-vlan community
SW1(config-vlan)#exit
SW1(config)#vlan 102
SW1(config-vlan)#private-vlan isolated
SW1(config-vlan)#exit
SW1(config)#vlan 101
SW1(config-vlan)#private-vlan association add 101,102
無差別ポート、コミュニティポート、隔離ポートを作成します。
SW1(config)#interface GigabitEthernet0/0
SW1(config-if)#switchport mode private-vlan promiscuous
SW1(config-if)#switchport private-vlan mapping 100 101-102
SW1(config-if)#exit
SW1(config)#interface range GigabitEthernet0/1 – 2
SW1(config-if-range)#switchport mode private-vlan host
SW1(config-if-range)#switchport private-vlan host-association 100 101
SW1(config-if-range)#exit
SW1(config)#interface range GigabitEthernet0/3,GigabitEthernet1/0
SW1(config-if-range)#switchport mode private-vlan host
SW1(config-if-range)#switchport private-vlan host-association 100 102
SW1(config-if-range)#exit
コミュニティVLANに属しているPC1は同じコミュニティVLANのPC2、無差別ポートの先にあるRouter1と通信できますが、隔離VLANに属しているPC3とは疎通が取れません。

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