Private VLAN的主要功能就是能够实现节约IP地址,隔离广播风暴,病毒攻击,控制端口二层互访。特别适用于大二层结构的环境,用户多,vlan多,但是IP地址又是同一个网段,又要实现彼此之间二层隔离,个别VLAN之间又有互访的需求。常见的场景有宾馆酒店,小区宽带接入,运营商与高校共建的校园网等,他们的特点是一个房间或者一户人家一个vlan,彼此隔离,但是IP地址有限,无法给数量庞大的vlan每个分一个网段IP,只能共用一个IP地址段,比如vlan 10的IP地址段10.10.10.0/24,这样一户人家可能就使用了1-2个IP,造成剩余200多个ip地址浪费。
另一种比较典型的PVLAN应用类似于端口隔离功能(switchport protected),即将所有用户端口设置为隔离VLAN((Isolated Port),这样即使同一vlan,同一网段的IP之间的用户也无法访问,可以有效隔离病毒传播。
1.1基本原理
Private VLAN将一个VLAN 的二层广播域划分成多个子域,每个子域都由一个私有VLAN对组成:主VLAN(Primary VLAN)和辅助VLAN(Secondary VLAN)。
在一个Private VLAN域中所有的私有VLAN对共享同一个主VLAN,每个子域的辅助VLAN ID 不同。一个Private VLAN域中只有一个主VLAN,有两种类型的辅助VLAN:
隔离VLAN(Isolated VLAN):同一个隔离VLAN 中的端口不能互相进行二层通信,一个私有VLAN 域中只有一个隔离VLAN。
群体VLAN(Community VLAN):同一个群体VLAN 中的端口可以互相进行二层通信,但不能与其它群体VLAN 中的端口进行二层通信。一个Private VLAN域中可以有多个群体VLAN。
在一个Private VLAN域内通常有三种常见的端口角色,通过定义交换机上面不通的端口的角色可以实现各用户间的二层互访,还是隔离的效果:
混杂端口(Promiscuous Port),属于主VLAN 中的端口,可以与任意端口通讯,包括同一个Private VLAN域中辅助VLAN的隔离端口和群体端口,通常是交换机上联网关设备的端口。
隔离端口(Isolated Port),隔离VLAN 中的端口彼此之间不能通信,只能与混杂口通讯。通常是下联接入用户端的接口。
群体端口(Community port),属于群体VLAN 中的端口,同一个群体VLAN 的群体端口可以互相通讯,也可以与混杂口通讯,不能与其它群体VLAN 中的群体端口及隔离VLAN 中的隔离端口通讯。通常是下联接入用户端的接口。
Private VLAN域中,只有主VLAN 可以创建SVI 接口,配置IP作为网关使用,辅助VLAN 不可以创建SVI。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
1.2 实验工具
一台交换机加两台PC,交换机24口为上联口链接路由器vlan口
1.3 实验目的
1实现一个群体vlan内的PC可以互通也可以上网。
2隔离VLAN里的PC不能互通,也不可以和其他群体VLAN内的PC互通,但是可以上网。
上联交换机已经开启DHCP服务,自动分配172.16.1.0 24 地址,中间交换机,创建vlan10,20,100 。100为主vlan,10和20为辅助vlan ,vlan100 设置设网关地址。下面3台PC开启DHCP自动获取地址
交换机的配置:
1、配置pvlan中的相关vlan并做关联
SWITCHA>en
SWITCHA#config ter
SWITCHA(config)#vlan 10
SWITCHA(config-vlan)#private-vlan community ------>创建团体vlan10
SWITCHA(config-vlan)#ex
SWITCHA(config)#vlan 20
SWITCHA(config-vlan)#private-vlan isolated ------>创建隔离vlan20
SWITCHA(config-vlan)#ex
SWITCHA(config)#vlan 100
SWITCHA(config-vlan)#private-vlan primary ------>创建主vlan,并关联secondary vlan
SWITCHA(config-vlan)#private-vlan association 10,20
SWITCHA(config-vlan)# interface 100
SWITCHA(config-vlan)# ip address dhcp ------>配置主vlan的ip地址,设置成dhcp自动获取
SWITCHA(config-vlan)#private-vlan mapping 10,20 ------>映射两个辅vlan到主vlan100
2、将交换机端口划入pvlan的各属性端口
SWITCHA(config)#int range g0/13-23
SWITCHA(config-if-range)#switchport mode private-vlan host
SWITCHA(config-if-range)#switchport private-vlan host-association 100 10 ------>将13到23端口加入团体vlan10
SWITCHA(config-if-range)#exit
SWITCHA(config)#int range g0/10-12
SWITCHA(config-if-range)#switchport mode private-vlan host
SWITCHA(config-if-range)#switchport private-vlan host-association 100 20 ------>将10到12端口加入隔离vlan20
3、配置混杂TRUNK口实现与网关的通信
配置方法
SWITCHA(config)#interface g0/24
SWITCHA(config-if-GigabitEthernet 0/24)#switchport mode trunk
SWITCHA(config-if)# switchport mode private-vlan promiscuous
SWITCHA(config-if)# switchport private-vlan mapping 100 add 10 20
SWITCHA(config-if)# end
注释:设置该端口为混杂口,如果还有其他vlan(该vlan非pvlan),则没法通过该混杂口。
3.实验与总结
交换机10到12口为vlan20隔离口,13到23口为vlan10群体口,我的电脑链接15口可以自动获取到地址,开了网页可以正常上网,把王海龙的电脑链接到13口,他的电脑可以正常上网,我们可以互相ping通,说明我们在同一个群体组里的通信没有问题。
然后把王海龙电脑接到10口,他的电脑可以正常上网,我的电脑还是在15口,我们相互ping,不能ping通。