华三 Private VLAN
背景
Private VLAN 采用二层 VLAN 结构
它在同一台设备上配置 Primary VLAN 和 Secondary VLAN 两类 VLAN
即能够保证接入用户之间相互隔离,又能将接入的 VLAN ID 屏蔽掉(就是说,把Secondary作为子接口,Primary作为物理接口),从而节省了 VLAN 资源
为了用户的安全性和管理计费等方面考虑,当然是想实现每一位用户一个VLAN,
但根据 IEEE 802.1Q规定,最多可以提供 4094 个 VLAN。如果每个用户一个 VLAN,4094 个 VLAN 远远不能满足需求。所以节省了VLAN资源。
Private VLAN 分类
① Primary VLAN
用于连接上行设备,一个 Primary VLAN 可以和多个 Secondary VLAN 相对应
上行连接的设备只需知道Primary VLAN,而不必关心Secondary VLAN,Primary VLAN 下面的 Secondary VLAN 对上行设备不可见。
② Secondary VLAN
用于连接用户,Secondary VLAN 之间二层报文互相隔离。如果希望实现
同一 Primary VLAN 下 Secondary VLAN 用户之间报文的互通,可以通过配置上行设备(如图中的 DSW)的本地代理 ARP/ND 功能来实现三层报文的互通
Private VLAN 配置步骤
(1) 配置 Primary VLAN。
(2) 配置 Secondary VLAN。
(3) 配置 Primary VLAN 和 Secondary VLAN 间的映射关系。
(4) 配置上行/下行端口。
(5) 配置 Primary VLAN 下指定 Secondary VLAN 间三层互通。(本地代理ARP)
出现SVI接口起不来的话
① 确定VLAN是否有创建
② 端口类型 Trunk是否有放行,Hybrid是否有标签处理,或者Access是否有配置
原理
二层隔离
他其实就是用了Hybrid端口模式,利用PVID和Untagged特性,从而实现的二层隔离
如VLAN 2 → VLAN 3
PC1发包到ASW中,经过G1/0/2端口,PVID是2
此时数据包的Tag 为 2,而ASW一看,是去找PC2的流量,这时候g1/0/3它的Untagged是 3 和 10,而数据包是Tag 2
这个时候标签不能剥离也不能让它通过,流量就到不了PC2,所以就不能实现通信
这个就是华三的Private VLAN的二层隔离原理
配置再下面有
效果
三层通信
就是需要做一个本地ARP解析啦
如果要让PC1 → PC2 的话,可以再ASW上面做本地ARP代理或者是在DSW上面做,选一个做就好啦
配置
可实现Secondary VLAN 2 3 的三层通信
[ASW] interface vlan-interface 10
[ASW-Vlan-interface10] private-vlan secondary 2 3 ## 将secondary vlan 映射在这
[ASW-Vlan-interface10] local-proxy-arp enable ## 开启本地ARP解析
[ASW-Vlan-interface10] ip address 192.168.1.1 255.255.255.0
[ASW-Vlan-interface10] quit
效果
配置
拓扑
二层隔离
SW1
创建VLAN
[SW1]vlan 10
[SW1-vlan10]vlan 2 to 3
[SW1]vlan 10
[SW1-vlan10]private-vlan primary ## 配置 VLAN 10 为 Primary VLAN
[SW1-vlan10]private-vlan secondary 2 3 ## 配置 Primary和Secondary VLAN 2 3 的映射关系
[SW1-vlan10]qu
[SW1]int g1/0/1
[SW1-GigabitEthernet1/0/1]port private-vlan 10 promiscuous # 设置为promiscuous模式
[SW1-GigabitEthernet1/0/1]qu
## 将g1/0/2 绑定 VLAN 2
[SW1]int g1/0/2
[SW1-GigabitEthernet1/0/2]port access vlan 2
[SW1-GigabitEthernet1/0/2]port private-vlan host
[SW1-GigabitEthernet1/0/2]qu
## 将g1/0/3 绑定 VLAN 3
[SW1]int g1/0/3
[SW1-GigabitEthernet1/0/3]port access vlan 3
[SW1-GigabitEthernet1/0/3]port private-vlan host
[SW1-GigabitEthernet1/0/3]qu
## 可配可不配,不影响
[SW1]int vlan 10
[SW1-Vlan-interface10]ip address 192.168.10.10 24
SW2
[SW2]vlan 20
[SW2-vlan20]vlan 4
[SW2-vlan4]qu
[SW2]vlan 20
[SW2-vlan20]private-vlan primary
[SW2-vlan20]private-vlan secondary 4
[SW2-vlan20]qu
[SW2]int g1/0/1
[SW2-GigabitEthernet1/0/1]port private-vlan 20 promiscuous
[SW2-GigabitEthernet1/0/1]qu
[SW2]int g1/0/2
[SW2-GigabitEthernet1/0/2]port access vlan 4
[SW2-GigabitEthernet1/0/2]port private-vlan host
[SW2-GigabitEthernet1/0/2]qu
[SW2]int vlan 20
[SW2-Vlan-interface20]ip address 192.168.10.20 24
分析
针对SW1 来说,可以看到,所谓的Private VLAN,本质上是在用Hybrid口的特性
当配置好上面的命令时,查看配置,就能理解到这些功能,大家也可以自己去理解一下,都可以得到这些的,不难,本质上就是Hybrid端口
对于SW1 的 GigabitEthernet1/0/1,可以对 VLAN 2 3 10 去标签,pvid 10
对于SW1 的 GigabitEthernet1/0/2,可以对 VLAN 2 10 去标签 pvid 2
对于SW1 的 GigabitEthernet1/0/3,可以对 VLAN 3 10 去标签 pvid 3
对于SW2 的 GigabitEthernet1/0/1,可以对 VLAN 4 20 去标签 pvid 20
对于SW2 的 GigabitEthernet1/0/2,可以对 VLAN 4 20 去标签 pvid 4
按照上面的特性,我们就可以得到
PC1 能ping通 PC3
PC2 能ping通 PC3
PC3 能ping通 PC1 和 PC2
而中间的两台交换机的是都ping 不通的,两台交换的都是VLAN 10 的,这样子就可以实现相互通信,但这边是一遍是VLAN 10 一边是VLAN 20的,所以就通信不了
三层通信
配置:
ASW
[ASW]undo info-center enable ##关闭日志消息:不然一直弹消息,还是蛮烦的
[ASW]vlan 10
[ASW-vlan10]vlan 2 to 3
[ASW]vlan 10
[ASW-vlan10]private-vlan primary ## 设置为private vlan 的primary
[ASW-vlan10]private-vlan secondary 2 3 ## 配置primary 与 secondary 2 3的映射关系
[ASW-vlan10]qu
## 将g1/0/1 设置为promiscuous 模式
[ASW]int g1/0/1
[ASW-GigabitEthernet1/0/1]port private-vlan 10 promiscuous
[ASW-GigabitEthernet1/0/1]qu
## 将g1/0/2 绑定 VLAN 2
[ASW]interface gigabitethernet 1/0/2
[ASW-GigabitEthernet1/0/2]port access vlan 2
[ASW-GigabitEthernet1/0/2]port private-vlan host
[ASW-GigabitEthernet1/0/2]quit
## 将g1/0/3 绑定 VLAN 3
[ASW]int g1/0/3
[ASW-GigabitEthernet1/0/3]port access vlan 3
[ASW-GigabitEthernet1/0/3]port private-vlan host
[ASW-GigabitEthernet1/0/3]quit
[ASW]interface vlan-interface 10
[ASW-Vlan-interface10]ip address 192.168.1.1 255.255.255.0 ## 配置SVI接口地址
[ASW-Vlan-interface10]local-proxy-arp enable ## 开启本地ARP代理
[ASW-Vlan-interface10]private-vlan secondary 2 3 ## 在VLAN 10接口中映射secondary 2 3
[ASW-Vlan-interface10]quit