PVLAN配置实例原理
简介
PVLAN(PrivateVLAN私有VLAN)通常用于企业内部网,用来防止连接到某些接口或接口组的网络设备之间的相互通信,但却允许与默认网关进行通信。尽管各设备处于不同的PVLAN中,它们可以使用相同的IP子网。在PVLAN中,交换机端口有3种类型:IsolatedPort(隔离端口)、CommunityPort(团体端口)和PromiscuousPort(混杂端口);它们分别对应不同的VLAN类型:IsolatedPort属于IsolatedPVLAN,CommunityPort属于CommunityPVLAN,而代表一个PrivateVLAN整体的是PrimaryPVLAN(主私有VLAN),前面两类VLAN也称为SecondaryPVLAN(辅助私有VLAN),它们需要和PrimaryPVLAN绑定在一起,PromiscuousPort属于PrimaryPVLAN。
传统VLAN的局限性:
随着网络的迅速发展,用户对于网络数据通信的安全性提出了更高的要求,诸如防范黑客攻击、控制病毒传播等,都要求保证网络用户通信的相对安全性;传统的解决方法是给每个客户分配一个VLAN和相关的IP子网,通过使用VLAN,每个客户被从第2层隔离开,可以防止任何恶意的行为和Ethernet的信息探听。然而,这种分配每个客户单一VLAN和IP子网的模型造成了巨大的可扩展方面的局限。这些局限主要有下述几方面:
1.VLAN的限制:交换机固有的VLAN数目的限制;
2.复杂的STP:对于每个VLAN,每个相关的SpanningTree的拓扑都需要管理;
3.IP地址的紧缺:IP子网的划分势必造成一些IP地址的浪费;
4.路由的限制:每个子网都需要相应的默认网关的配置。
PVLAN简介
PVLAN的应用对于保证接入网络的数据通信的安全性是非常有效的,用户只需与自己的默认网关连接,一个PVLAN不需要多个VLAN和IP子网就能提供具备二层数据通信安全性的连接,所有的用户都接入PVLAN,从而实现了所有用户与默认网关的连接,而与PVLAN内的其它用户没有任何访问。PVLAN功能可以保证同一个VLAN中的各个端口相互之间不能通信,但可以穿过Trunk端口。这样即使同一VLAN中的用户相互之间也不会受到广播的影响。
PVLAN的2种VLAN:
主要VLAN(PrimaryVLAN):把流量从混杂端口传送到隔离、团体和同一个VLAN内部的其它主要混杂端口。
辅助VLAN(SecondaryVLAN):辅助VLAN包含两种VLAN类型:
隔离VLAN(IsolatedVLAN):把流量从隔离端口传送到一个混杂端口。隔离VLAN中的端口,使其不能与PVLAN
(另一个团体VLAN端口或相同隔离VLAN内的端口)内部的任何其它端口进行第2层通信。若要与其它端口通
信,则必须穿越混杂端口。
团体VLAN(CommunityVLAN):在相同团体VLAN内部的团体端口之间传送流量并传送到混杂端口,团体VLAN内的
端口可以在第2层彼此通信(只是在相同团体VLAN内部),但是不能与其它团体或隔离VLAN的端口进行通信。
若要与其它端口进行通信,则必须穿越混杂端口。
PVLAN的2种端口类型:
混杂端口(PromiscuousPort):隶属于“PrimaryVLAN”,一个混杂端口可以与所有接口通信,包括PVLAN内的
隔离和团体端口;混杂端口的功能是在团体和隔离的VLAN端口之间传递流量。
主机端口(HostPort):隶属于“SecondaryVLAN”,由于“SecondaryVLAN”具有两种属性,那么主机端口依
“SecondaryVLAN”属性的不同也有两种分类:
隔离端口(IsolatedPort):它与PVLAN内的所有其它端口相分离,除混杂端口外;来源于隔离端口的流量仅仅
传送给混杂端口。
团体端口(CommunityPort):它在逻辑上把相同区域内部的各个端口和混杂端口结合到一起,流量可以在它们
之间传送。
PVLAN的使用规则:
1.一个“PrimaryPVLAN”当中只能有1个“PromiscuousPort”;
2.一个“PrimaryPVLAN”当中至少有1个“SecondaryPVLAN”,但是没有上限;
3.一个“PrimaryPVLAN”当中只能有1个“IsolatedPVLAN”,可以有多个“CommunityPVLAN”;
4.不同“PrimaryPVLAN”之间的任何端口都不能互相通信(这里“互相通信”是指二层连通性);
5.“IsolatedPort”只能与“PromiscuousPort”通信,除此之外不能与任何其他端口通信;
6.“CommunityPort”可以和“PromiscuousPort”通信,也可以和同一“CommunityPVLAN”中的其它物理端
口进行通信,除此之外不能和其他端口通信。
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)#intf0/1
SW1(config-if)#switchitchportprotected//开启端口保护
SW1#showintf0/1switchport//查看交换端口的配置
实验
命令:
SW1(config-vlan)#private-vlancommunity
SW1(config-vlan)#private-vlanisolated
SW1(config-vlan)#private-vlanprimary
SW1(config-vlan)#private-vlanassociation101-102
SW1(config-if)#switchportprivate-vlanhost-association100101
SW1(config-if)#switchportmodeprivate-vlanhost
SW1(config-if)#switchportprivate-vlanmapping100101,102
SW1(config-if)#switchportmodeprivate-vlanpromiscuous
SW1(config-if)#private-vlanmapping101-102
SW1(config)#vtpmodetransparent
SW1(config)#vlan200
SW1(config-vlan)#nameVLAN-200
SW1(config)#intf0/23
SW1(config-if)#switchportaccessvlan200
SW1(config-if)#switchportmodeaccess//用于接入SW2交换机
SW1(config)#iprouting//配置三层交换,SW1承担Vlan100和Vlan200间的路由功能
SW1(config)#intvlan200
SW1(config-if)#ipadd172.16.2.254255.255.255.0
SW1(config-if)#nosh
1.创建主要和辅助PVLAN:
SW1(config)#vlan100
SW1(config-vlan)#nameVLAN-100
SW1(config-vlan)#private-vlanprimary//配置该VLAN为主VLAN
SW1(config)#vlan101
SW1(config-vlan)#private-vlancommunity//配置该VLAN为辅助VLAN的团体VLAN
SW1(config)#vlan102
SW1(config-vlan)#private-vlanisolated//配置该VLAN为辅助VLAN的隔离VLAN
2.把辅助VLAN与主要VLAN关联:
SW1(config)#vlan100
SW1(config-vlan)#private-vlanassociation101-102//把本主VLAN和辅助VLAN101、102关联
3.把辅助VLAN映射到交换机SVI(虚拟接口):
SW1(config)#intvlan100
SW1(config-if)#ipadd172.16.1.254255.255.255.0
SW1(config-if)#private-vlanmappingadd101-102//将辅助VLAN映射到3层接口,允许PVLAN入口流量
的3层交换;辅助VLAN被映射到主VLAN后就不能起自己的SVI了,也就是说映射时也可以不映射全部的辅助VLAN
SW1(config-if)#nosh
4.配置一个2层端口作为隔离或团体端口,把这个2层端口与初级VLAN和可选辅助对VLAN进行关联:
SW1(config)#intf0/1
SW1(config-if)#switchportprivate-vlanhost-association100101
//把本接口配置为团体接口;即本接口属于主Vlan100,并关联到辅助Vlan101中
SW1(config-if)#switchportmodeprivate-vlanhost//辅助VLAN的接口模式被定义为host
SW1(config)#intf0/2
SW1(config-if)#switchportprivate-vlanhost-association100101
SW1(config-if)#switchportmodeprivate-vlanhost
SW1(config)#intf0/3
SW1(config-if)#switchportprivate-vlanhost-association100102
SW1(config-if)#switchportmodeprivate-vlanhost
SW1(config)#intf0/4
SW1(config-if)#switchportprivate-vlanhost-association100102
SW1(config-if)#switchportmodeprivate-vlanhost
5.配置一个2层端口作为PVLAN混杂端口,并将这个混杂端口映射到初级VLAN端口和可选的辅助VLAN对:
SW1(config)#intf0/13
SW1(config-if)#switchportprivate-vlanmapping100101,102//把本接口属于主Vlan100,
并实现主VLAN和辅助VLAN间的映射;主VLAN接口也可以不映射所有的辅助VLAN
SW1(config-if)#switchportmodeprivate-vlanpromiscuous//把本接口配置为混杂接口,即
本接口可以和Vlan101、102通信;主VLAN接口的模式一定是Promiscuous
这时PC1/(PC2)能与PC2/(PC1)、Server、Vlan200(SW2)通信;注意PC1/PC2与PC3和PC4是不通的!PC3/PC4只能与Server、Vlan200(SW2)通信;注意PC3和PC4是不通的!
说明:
①只有VTP模式为透明模式,才能配置PVLAN。
②host|promiscuous:
host:只能为一个辅助VLAN服务;
promiscuous:可以为多个辅助VLAN服务。
实验调试
SW1#showintf0/1switchport
SW1#showintprivate-vlanmapping
SW1#showvlanprivate-vlan//查看PVLAN信息