简介
PVLAN(Private VLAN 私有VLAN)通常用于企业内部网,用来防止连接到某些接口或接口组的网络设备之间的相互通信,但却允许与默认网关进行通信。尽管各设备处于不同的PVLAN中,它们可以使用相同的IP子网。在PVLAN中,交换机端口有3种类型:Isolated Port(隔离端口)、Community Port(团体端口)和Promiscuous Port(混杂端口);它们分别对应不同的VLAN类型:Isolated Port属于Isolated PVLAN,Community Port属于Community PVLAN,而代表一个Private VLAN整体的是Primary PVLAN(主私有VLAN),前面两类VLAN也称为Secondary PVLAN(辅助私有VLAN),它们需要和Primary PVLAN绑定在一起,Promiscuous Port属于Primary PVLAN。
传统VLAN的局限性:
随着网络的迅速发展,用户对于网络数据通信的安全性提出了更高的要求,诸如防范黑客攻击、控制病毒传播等,都要求保证网络用户通信的相对安全性;传统的解决方法是给每个客户分配一个VLAN和相关的IP子网,通过使用VLAN,每个客户被从第2层隔离开,可以防止任何恶意的行为和Ethernet的信息探听。然而,这种分配每个客户单一VLAN和IP子网的模型造成了巨大的可扩展方面的局限。这些局限主要有下述几方面:
1.VLAN的限制:交换机固有的VLAN数目的限制;
2.复杂的STP:对于每个VLAN,每个相关的Spanning Tree的拓扑都需要管理;
3.IP地址的紧缺:IP子网的划分势必造成一些IP地址的浪费;
4.路由的限制:每个子网都需要相应的默认网关的配置。
PVLAN简介
PVLAN的应用对于保证接入网络的数据通信的安全性是非常有效的,用户只需与自己的默认网关连接,一个PVLAN不需要多个VLAN和IP子网就能提供具备二层数据通信安全性的连接,所有的用户都接入PVLAN,从而实现了所有用户与默认网关的连接,而与PVLAN内的其它用户没有任何访问。PVLAN功能可以保证同一个VLAN中的各个端口相互之间不能通信,但可以穿过Trunk端口。这样即使同一VLAN中的用户相互之间也不会受到广播的影响。
PVLAN的2种VLAN:
主要VLAN(Primary VLAN):把流量从混杂端口传送到隔离、团体和同一个VLAN内部的其它主要混杂端口。
辅助VLAN(Secondary VLAN):辅助VLAN包含两种VLAN类型:
PVLAN的2种端口类型:
混杂端口(Promiscuous Port):隶属于“Primary VLAN”,一个混杂端口可以与所有接口通信,包括PVLAN内的
主机端口(Host Port):隶属于“Secondary VLAN”,由于“Secondary VLAN”具有两种属性,那么主机端口依
PVLAN的使用规则:
1.一个“Primary PVLAN”当中只能有1个“Promiscuous Port”;
2.一个“Primary PVLAN”当中至少有1个“Secondary PVLAN”,但是没有上限;
3.一个“Primary PVLAN”当中只能有1个“Isolated PVLAN”,可以有多个“Community PVLAN”;
4.不同“Primary PVLAN”之间的任何端口都不能互相通信(这里“互相通信”是指二层连通性);
5.“Isolated Port”只能与“Promiscuous Port”通信,除此之外不能与任何其他端口通信;
6.“Community Port”可以和“Promiscuous Port”通信,也可以和同一“Community PVLAN”中的其它物理端
7.创建PVLAN前,需要配置VTP模式为Transparent,在配置PVLAN后,将不能再把模式转变为Server和Client;
8.在配置PVLAN中,不使用VLAN1,VLAN1002 - 1005;
9.三层的VLAN接口只能分配给主VLAN;
10.不能在PVLAN中配置EtherChannel;
11.假如交换机上一个端口作为SPAN的目的端口,这个端口会在配置PVLAN的后失效;
12.PVLAN的端口可以做SPAN的源端口;
13.假如在PVLAN中删除了一个VLAN,那么属于该VLAN的端口将失效。
受保护的端口(PVLAN边缘)和PVLAN:
这两种技术都可以实现交换机同一VLAN中的接口间不能通信的目的,但这种“不可通信”不是真正的隔离并且只是一种表面现象,通过某些办法是可以打破这种表象的。
受保护的端口要求:
①只限于同一交换机的同一VLAN,它不能隔离位于不同交换机或不同VLAN的两个受保护的端口间通信;
②受保护的端口间若要通信必须通过3层设备,在受保护端口间路由;
③控制流量是一个例外,它将在受保护的端口间进行转发(如路由选择协议更新);
④受保护的端口和非保护端口间的转发一般优于默认行为;
⑤默认情况下端口不配置受保护的端口。
配置命令:SW1(config)#int f0/1
Catalyst交换机上的VLAN支持:
实验
命令:
SW1(config-vlan)#private-vlan community
SW1(config-vlan)#private-vlan isolated
SW1(config-vlan)#private-vlan primary
SW1(config-vlan)#private-vlan association 101-102
SW1(config-if)#switchport private-vlan host-association 100 101
SW1(config-if)#switchport mode private-vlan host
SW1(config-if)#switchport private-vlan mapping 100 101,102
SW1(config-if)#switchport mode private-vlan promiscuous
SW1(config-if)#private-vlan mapping 101-102
SW1(config)#vtp mode transparent
SW1(config)#vlan 200
SW1(config-vlan)#name VLAN-200
SW1(config)#int f0/23
SW1(config-if)#switchport access vlan 200
SW1(config-if)#switchport mode access
SW1(config)#ip routing
SW1(config)#int vlan 200
SW1(config-if)#ip add 172.16.2.254 255.255.255.0
SW1(config-if)#no sh
1.创建主要和辅助PVLAN:
SW1(config)#vlan 100
SW1(config-vlan)#name VLAN-100
SW1(config-vlan)#private-vlan primary
SW1(config)#vlan 101
SW1(config-vlan)#private-vlan community
SW1(config)#vlan 102
SW1(config-vlan)#private-vlan isolated
2.把辅助VLAN与主要VLAN关联:
SW1(config)#vlan 100
SW1(config-vlan)#private-vlan association 101-102
3.把辅助VLAN映射到交换机SVI(虚拟接口):
SW1(config)#int vlan 100
SW1(config-if)#ip add 172.16.1.254 255.255.255.0
SW1(config-if)#private-vlan mapping
SW1(config-if)#no sh
4.配置一个2层端口作为隔离或团体端口,把这个2层端口与初级VLAN和可选辅助对VLAN进行关联:
SW1(config)#int f0/1
SW1(config-if)#switchport private-vlan host-association 100 101
SW1(config-if)#switchport mode private-vlan host
SW1(config)#int f0/2
SW1(config-if)#switchport private-vlan host-association 100 101
SW1(config-if)#switchport mode private-vlan host
SW1(config)#int f0/3
SW1(config-if)#switchport private-vlan host-association 100 102
SW1(config-if)#switchport mode private-vlan host
SW1(config)#int f0/4
SW1(config-if)#switchport private-vlan host-association 100 102
SW1(config-if)#switchport mode private-vlan host
5.配置一个2层端口作为PVLAN混杂端口,并将这个混杂端口映射到初级VLAN端口和可选的辅助VLAN对:
SW1(config)#int f0/13
SW1(config-if)#switchport private-vlan mapping 100 101,102
SW1(config-if)#switchport mode private-vlan promiscuous
这时PC1/(PC2)能与PC2/(PC1)、Server、Vlan 200(SW2)通信;注意PC1/PC2与PC3和PC4是不通的!PC3/PC4只能与Server、Vlan 200(SW2)通信;注意PC3和PC4是不通的!
说明:
①只有VTP模式为透明模式,才能配置PVLAN。
②host|promiscuous:
实验调试
SW1#show int f0/1 switchport
SW1#show int private-vlan mapping
SW1#show vlan private-vlan
总结:
尤其对于某些应用场景,如数据中心,一般虚机之间横向很少通信,主要是纵向和网关的通信,所以要求每个虚机属于一个VLAN降低洪泛时的广播流量。
这样它能将不同的用户放在隔离VLAN中实现客户的二层隔离,这样只需要一个隔离VLAN就可以保证接入网络的数据通信的安全性,这节省了VLAN的数目。
通过给主VLAN配置SVI(在cisco交换机中,SVI就是VLAN接口),所以PVLAN共享主VLAN的IP地址,实现了所有用户与默认网关的连接,而与PVLAN内的其他用户没有任何访问,这样就不用再划分子网了,一个FLAT子网足够。所以说PVLAN也能节省IP地址。一个PVLAN也只能有一个主VLAN,未同主VLAN建立关联的辅VLAN不支持ARP报文的学习以及路由转发。