プライベート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)に属するポートです。 同じコミュニティポートや無差別ポートと通信することが出来ます。 |
トポロジ
![](https://itinfranote.com/wp-content/uploads/image-9.png)
プライベートVLANの設定
プライベートVLANの作成
VTPモードをトランスペアレントに設定します。
SW1(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
SW1(config)#
プライマリVLANとなるVLANを設定します。範囲は2-1001および1006-4094です。
SW1(config)#vlan 100
SW1(config-vlan)#private-vlan primary
SW1(config-vlan)#exit
セカンダリVLAN(隔離VLAN)を作成します。
SW1(config)#vlan 101
SW1(config-vlan)#private-vlan isolated
SW1(config-vlan)#exit
セカンダリVLAN(コミュニティVLAN)を作成します。
SW1(config)#vlan 102
SW1(config-vlan)#private-vlan community
SW1(config-vlan)#exit
セカンダリVLANをプライベートVLANに関連付けます。
SW1(config)#vlan 100
SW1(config-vlan)#private-vlan association 101-102
SW1(config-vlan)#exit
レイヤ 2 インターフェイスをプライベート VLAN ホスト ポートとして設定する
レイヤ2ポートをVLANホストポートとして設定します。
SW1(config)#interface range GigabitEthernet 0/1 – 2
SW1(config-if)#switchport mode private-vlan host
レイヤ2ポートをプライベートVLANに関連付けます。
SW1(config-if)#switchport private-vlan host-association 100 101
コミュニティVLANでも同じように設定していきます。
SW1(config)#interface range GigabitEthernet 0/3 , GigabitEthernet 1/0
SW1(config-if)#switchport mode private-vlan host
SW1(config-if)#switchport private-vlan host-association 100 102
レイヤ 2 インターフェイスをプライベート VLAN 無差別ポートとして設定する
switchport mode private-vlan promiscuousコマンドを使用して無差別ポートとして設定します。
switchport private-vlan mappingコマンドでプライマリVLANとセカンダリVLANをマッピングします。
SW1(config)#interface GigabitEthernet 0/0
SW1(config-if)#switchport mode private-vlan promiscuous
SW1(config-if)#switchport private-vlan mapping 100 101-102
セカンダリ VLAN のプライマリ VLAN レイヤ 3 VLAN インターフェイスへのマッピング
プライベートVLANがVLAN間ルーティングで使用される場合はプライバリVLANにSVIを設定して、セカンダリVLANをSVIにマッピングします。
SW1(config)#interface vlan 100
SW1(config-if)#private-vlan mapping 101-102
動作確認
隔離VLANの動作確認
隔離VLANに属しているPC0は混合ポートを通過したRT1に通信することが出来ます。
PC0:~$ ping 1.1.1.1 -c 3
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: seq=0 ttl=42 time=6.464 ms
64 bytes from 1.1.1.1: seq=1 ttl=42 time=3.779 ms
64 bytes from 1.1.1.1: seq=2 ttl=42 time=5.377 ms
— 1.1.1.1 ping statistics —
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3.779/5.206/6.464 ms
PC0:~$
ほかの隔離ポートに属しているPCやコミュニティポートに属しているPCとは通信できません。
PC0:~$ ping 100.10.10.11 -c 3
PING 100.10.10.11 (100.10.10.11): 56 data bytes
^C
— 100.10.10.11 ping statistics —
3 packets transmitted, 0 packets received, 100% packet loss
PC0:~$ ping 100.10.10.14 -c 3
PING 100.10.10.14 (100.10.10.14): 56 data bytes
^C
— 100.10.10.14 ping statistics —
3 packets transmitted, 0 packets received, 100% packet loss
PC0:~$
コミュニティVLANの動作確認
混合ポートを通過したRT1やコミュニティポートに属しているPC4まで通信することが出来ます。
PC3:~$ ping 1.1.1.1 -c 3
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: seq=1 ttl=42 time=5.548 ms
64 bytes from 1.1.1.1: seq=2 ttl=42 time=7.789 ms
— 1.1.1.1 ping statistics —
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max = 5.548/6.668/7.789 ms
PC3:~$ ping 100.10.10.12 -c 3
PING 100.10.10.12 (100.10.10.12): 56 data bytes
64 bytes from 100.10.10.12: seq=0 ttl=42 time=3.178 ms
64 bytes from 100.10.10.12: seq=1 ttl=42 time=5.409 ms
64 bytes from 100.10.10.12: seq=2 ttl=42 time=4.179 ms
— 100.10.10.12 ping statistics —
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3.178/4.255/5.409 ms
PC3:~$
隔離ポートに属しているPC1には通信することが出来ません。
PC3:~$ ping 100.10.10.11 -c 3
PING 100.10.10.11 (100.10.10.11): 56 data bytes
^C
— 100.10.10.11 ping statistics —
3 packets transmitted, 0 packets received, 100% packet loss
PC3:~$