尽管各设备处于不同的pVLAN中,它们可以使用相同的IP子网。
isolated,community ,promiscuous。
pVLAN 的3种子VLAN :
primary VLAN , isolated VLAN(second vlan), community VLAN(second vlan)。
primary VLAN:可以和所有他所关联的isolated VLAN,community VLAN通信.
community VLAN:可以同那些处于相同community VLAN内的community port通信,也可以与pVLAN中的promiscuous端口通信。 (每个pVLAN可以有多个community VLAN)
isolated VLAN:不可以和处于相同isolated VLAN内的其它isolated port通信,只可以与promisuous端口通信。 (每个pVLAN中只能有一个isolated VLAN)
pVLAN要求使用VTPv1或VTPv2。
pVLAN必须工作于Transparent模式。
禁止将第3层VLAN接口配置为辅助VLAN。
EtherChannel或SPAN目标端口不支持pVLAN。
//建立primary VLAN
vlan 10
private-vlan primary
//建立isolated VLAN
private-vlan isolated
//建立community VLAN
vlan 12
private-vlan community
//关联primary VLAN与Second VLANs
vlan 10
private-vlan association 11,12
//配置isolated port
switchport
switchport mode private-vlan host
switchport private-vlan host-association 10 11
起作用的是 switchport private-vlan host-association 10 11这一句,这一句把端口放入primary vlan 10和secondary vlan 11。
2.把需要2层通信的主机放到同一个community VLAN。
3.公共的服务器或者上联端口放到primary VLAN,和本primaryVLAN和所有secondaryVLAN里的主机是2层连通的。
4.在primary VLAN上来看,所有的主机在同一个primary VLAN里,在secondary VLAN里的主机互相访问的时候,才和private VLAN的配置有关。
5.网关可以是primary VLAN上配一个3层地址或者在primary VLAN上连一个路由器。所有主机在3层都是在primary VLAN的这个网段里,所以还是可以通信的,只是2层隔离了,因为3层接口不转发广播,广播也就被隔离了,网上邻居之类基于广播的应用就互相看不到了.
6.上联的端口也可以是trunk,primary VLAN和secondary VLAN都可以trunk过去。
7.vtp一定要transparent,SPAN和vlan acl等等特性可能会有限制
用户分配一个VLAN。这种方法具有明显的局限性,主要表现在以下几个方面:
1. 目前IEEE 802.1Q 标准中所支持的VLAN 数目最多为4094 个,用户数量
受到限制,且不利于网络的扩展。
2. 每个VLAN 对应一个IP 子网,划分大量的子网会造成IP 地址的浪费。
3. 大量VLAN 和IP 子网的规划和管理使网络管理变得非常复杂。
PVLAN(Private VLAN)技术的出现解决了这些问题。
PVLAN将VLAN中的端口分为两类:与用户相连的端口为隔离端口(Isolate Port),
上行与路由器相连的端口为混合端口(Promiscuous Port)。隔离端口只能与混合端
口通信,相互之间不能通信。这样就将同一个VLAN 下的端口隔离开来,用户只
能与自己的默认网关通信,网络的安全性得到保障。
每组只支持1 个端口作为上行端口。
使用以下命令配置PVLAN。
vlan private-map session-id <id> [isolate <port-list>] [promis <port-list>]
使用show vlan private-map 命令显示PVLAN 的配置。
下面的配置实例中配置了两个隔离组:
隔离组1:端口fei_3/1,fei_3/2,fei_6/4,fei_6/5 为隔离端口,端口gei_7/1 为混
合端口。
隔离组2:端口fei_3/7,fei_3/8,fei_4/7,fei_4/8 为隔离端口,gei_7/4 为混合端
口。
具体配置如下:
ZXR10(config)#vlan private-map session-id 1 isolate
fei_3/1-2,fei_6/4-5 promis gei_7/1
ZXR10(config)#vlan private-map session-id 2 isolate
fei_3/7-8,fei_4/7-8 promis gei_7/4
ZXR10(config)#show vlan private-map
Session_id Isolate_Ports Promis_Ports
---------- ------------------------ ------------------------
1 fei_3/1-2,fei_6/4-5, gei_7/1
2 fei_3/7-8,fei_4/7-8, gei_7/4
ZXR10#(config)
传统的ISP 网络给每个用户被分配一个IP 子网,每分配一个子网,就有三个IP
地址被占用,分别作为子网的网络号、广播地址和缺省网关。如果一些用户的子
网中有大量未分配的IP 地址,也无法给其他用户使用。因此这种方法会造成IP
地址的浪费。
SuperVLAN 有效的解决了这个问题,它把多个VLAN(称为子VLAN)聚合成一
个SuperVLAN,这些子VLAN 使用同一个IP 子网和缺省网关。
利用SuperVLAN 技术,ISP 只需为SuperVLAN 分配一个IP 子网,并为每个用户
建立一个子VLAN,所有子VLAN 可以灵活分配SuperVLAN 子网中的IP 地址,
使用SuperVLAN 的缺省网关。每个子VLAN 都是一个独立的广播域,保证不同
用户之间的隔离,子VLAN 之间的通信通过SuperVLAN 进行路由。
包括以下内容。
1. 创建SuperVLAN
interface {supervlan <supervlan-id>|<supervlan-name>}
2. 添加子VLAN
supervlan <supervlan-id>
一个SuperVLAN 最多可以绑定8 个子VLAN。如果该子VLAN 已经配置
为三层接口,则不允许被绑定。
3. 打开/关闭子VLAN 之间的路由功能
inter-subvlan-routing {enable|disable}
子VLAN 之间的路由功能在缺省情况下是打开的,使用本命令关闭后,各
子VLAN 之间失去通信能力,但仍和SuperVLAN 外部保持通信。
4. 查看SuperVLAN 的配置信息
show supervlan [<supervlan-id>]
/*创建SuperVLAN 并分配子网、指定网关*/
ZXR10_A(config)#interface supervlan 10
ZXR10_A(config-int)#ip address 10.1.1.1 255.255.255.0
ZXR10_A(config-int)#exit
/*把SubVLAN 加入到SuperVLAN*/
ZXR10_A(config)#vlan 2
ZXR10_A(config-vlan)#supervlan 10
ZXR10_A(config-vlan)#exit
ZXR10_A(config)#vlan 3
ZXR10_A(config-vlan)#supervlan 10
ZXR10_A(config-vlan)#exit
/*设置vlan trunk 端口*/
ZXR10_A(config)#interface gei_7/1
ZXR10_A(config-int)#switch mode trunk
ZXR10_A(config-int)#switch trunk vlan 2-3
交换机B 的配置:
ZXR10_B(config)#interface fei_3/1
ZXR10_B(config-int)#switch access vlan 2
ZXR10_B(config-int)#exit
ZXR10_B(config)#interface fei_3/2
ZXR10_B(config-int)#switch access vlan 2
ZXR10_B(config-int)#exit
ZXR10_B(config)#interface fei_5/1
ZXR10_B(config-int)#switch access vlan 3
ZXR10_B(config-int)#exit
ZXR10_B(config)#interface fei_5/2
ZXR10_B(config-int)#switch access vlan 3
ZXR10_B(config-int)#exit
ZXR10_B(config)#interface gei_7/1
ZXR10_B(config-int)#switch mode trunk
ZXR10_B(config-int)#switch trunk vlan 2-3