■プライベートVLANとは?
プライベートVLANは同じVLAN内のポーと同士が分離されているVLANです。シスコでは同じVLAN上に存在するネットワークデバイス間のトラフィックを分離することでセキュリティを確保しIPサブネットの数を減らし、VLAN使用率を下げるためにプライベートVLANを使用します。
一般的にプライベートVLANを使ってインターフェイスまたはインターフェイスのグループに接続されたネットワークデバイス同士が相互に通信することを阻止しながらルータなどのデフォルトゲートウェイと通信できるようにします。デバイスは異なるプライベートVLANに属していても同じIPサブネットを利用します。デバイスはデフォルトゲートウェイと通信しない限りプライベートVLAN外部のネットワークにアクセスできません。このように設定することで同じVLAN上のデバイスは外部と通信するためにデフォルトゲートウェイと通信はできますがローカルサブネット上のネットワークデバイス同士が通信することはできません。
■プライベートVLANの種類
プライベートVLANはプライマリVLANとセカンダリVLANに大別されます。全てのセカンダリVLANはプライマリVLANの子VLANです。プライマリVLANはどのVLANとも疎通可能な無差別(promiscous)ポートでありセカンダリVLANはさらにCommunity VLANと独立(isolated)VLANに分類されます。それぞれの用途を以下の表にまとめます。
PVLANの種類 | PVLANのポート | 説明 |
プライマリVLAN | 無差別(promiscous)ポート | 任意のVLANと疎通可能 |
セカンダリVLAN | コミュニティ(community)ポート | プライマリVLANおよび同一コミュニティポートと疎通可能 |
独立(isolated)ポート | プライマリVLANとのみ疎通可能 |
上記を図で表すと以下のようになります。
VIDがそれぞれ別なので別セグメントと思われるかもしれませんが、セグメントは全て同一です。プライベートVLANのややこしいところでもありますが、プライベートVLANのためにVIDはそれぞれ別となっています。
■プライベートVLANの共通設定例
プライベートVLANを設定する際はまずVTPをtransparentにしておく必要があります。
(config)# vtp mode transparent |
vlanを作成する際に上の表であげたいずれかに指定します。
(config)# vlan 100 (config-vlan)# private-vlan primary (config)# vlan 10 (config-vlan)# private-vlan community (config)# vlan 20 (config-vlan)# private-vlan community (config)# vlan 30 (config-vlan)# private-vlan isolated (config)# vlan 100 (config-vlan)# private-vlan association 10,20,30 |
VLAN100がプライマリ、VLAN10,20,30がセカンダリという前提です。VLANを作成し、それに対してプライベートのいずれかを適用します。そしてプライマリVLANにセカンダリVLANをセカンダリVLANをマッピングします。その後は以下のコマンドで確認可能です。
# show vlan private-vlan |
■プライベートVLANのL2インターフェイス設定例
設定するスイッチがL2かL3で若干設定がことなります。以下、L2スイッチのケースですが実務であまり使うことはないかと。
(config)# interface GigabitEthernet1/0/1 (config-if)# switchport private-vlan mapping 100 10,20,30 (config-if)# switchport mode private-vlan promiscuous |
上記でプライマリVLANを設定しています。セカンダリVLANとしてVLAN10,20,30を指定しており設定した任意のVLANと疎通可能になります。
(config)# interface GigabitEthernet1/0/2 (config-if)# switchport private-vlan host-association 100 10 (config-if)# switchport mode private-vlan host (config)# interface GigabitEthernet1/0/3 (config-if)# switchport private-vlan host-association 100 20 (config-if)# switchport mode private-vlan host |
上記でセカンダリVLANの設定をしています。プライマリVLAN100を設定しつつセカンダリVLAN10と20を指定しています。上記ではセカンダリVLANで指定しているVLANが異なっているためデフォルトゲートウェイを介して疎通しますがこれが同一VLANであればコミュニティポートであることから直接ポートを介して疎通可能となります。
■プライベートVLANのL3インターフェイス設定例
L3スイッチではプライマリVLANインターフェイスにセカンダリVLANにマッピングすることにより入力トラフィックのルーティングが許可されます。
(config)# interface vlan 100 (config-if)# private-vlan mapping add 10,20,30 |
■プライベートVLANエッジ
いわば簡易版プライベートVLANです。スイッチの各ポートに保護ポートというものを設定することで保護ポート同士は通信を行うことができません。保護ポートはプライベートVLANでいうisolate(独立)ポートに該当します。プライベートVLANのようにプライマリ/セカンダリの関係は構築することができません。
以下、設定例です。
(config)# interface GigabitEthernet1/0/1 (config-if)# switchport access vlan 10 (config-if)# switchport mode access (config-if)# switchport protected (config)# interface GigabitEthernet1/0/2 (config-if)# switchport access vlan 10 (config-if)# switchport mode access (config-if)# switchport protected |
上記のGi1/0/1とGi1/0/2は同一セグメント(VLAN10)に属していますが、通信を行うことはできません。