1.介绍
为什么会产生private vlan(思科私有)和mux lan(华为私有)这项技术?
不管是华为官网还是各种教程都是举例:公司所有员工可以访问服务器,部门有隔离要求或者外来客户只能访问服务器,不能访问公司内部信息。这些要求都可以一一进行反驳,如下所示:
1.服务器的VLAN都是单独划分,员工或外来客户想要访问服务器,设置服务器的链路允许其vlan通过即可。
2.不同部门有隔离要求,那就划分不同VLAN啊。
3.外来客户登录接口一般都是配置单独的VLAN,自然就跟内部信息隔离了。如果外来客户的登录接口的VLAN与内部VLAN相同,这是相当不专业的做法,你也在自找苦吃。
4.相同vlan的员工需要隔离,private vlan和mux vlan也就这方面还可以。
所以真正产生的原因:好的设计应该一个vlan对应一个IP子网,不过有时候为了将设备分割多个vlan同时要节省IP子网,于是思科提出了private vlan用于解决上述需求。目前一般是服务提供商(SP)使用该技术来提供多租户服务(现在有了Vxlan了)。
private vlan和mux vlan都有3种vlan类型如下表所示,特别需要说明一点:一个主vlan下最多只能有一个隔离型vlan。
vlan类型 | 思科 | 华为 | 工作原理 |
---|---|---|---|
主vlan | primary vlan | mux vlan | 可以跟其他两种vlan互通 |
隔离vlan | isolated vlan | separate vlan | 只能跟主vlan互通,与同ID的separate vlan和团体型vlan都不互通。 |
团体vlan | community vlan | group vlan(一般叫组vlan) | 可以跟主vlan和相同ID的团体vlan互通,不能跟隔离vlan互通。 |
2.思科
虽然上面吐槽这么多,不过介绍private vlan使用的拓扑还是很不错,这里主vlan 100,隔离vlan 10,团体vlan 20。设备IP地址都是192.168.10.x/24,x就是VPC的编号。
1.配置隔离vlan
Switch(config)#vlan 10
Switch(config-vlan)#private-vlan isolated
2.配置团体vlan
Switch(config)#vlan 20
Switch(config-vlan)#private-vlan community
3.配置主vlan
Switch(config)#vlan 100
Switch(config-vlan)#private-vlan primary
Switch(config-vlan)#private-vlan association 10 ---->将隔离和 团体vlan与主vlan单向绑定
Switch(config-vlan)#private-vlan association add 20------>虚拟机不支持association 10, 20这样一次添加多个
4.配置隔离和团体vlan到物理接口(主机端口)
Switch(config)#int ran ether0/2-3
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan association host 10
Switch(config-if-range)#exit
Switch(config)#int ran ether1/0-1
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan association host 20
5.配置主vlan到物理接口(混杂端口)
Switch(config)#int ran ether0/1
Switch(config-if-range)#switchport mode private-vlan promiscuous ------>设置端口为私有vlan的主模式
Switch(config-if-range)#switchport private-vlan association mapping 100 10 ---->第一个是主vlan,后面是要绑定的隔离和团队vlan
Switch(config-if-range)#switchport private-vlan association mapping 100 add 20---->虚拟机不支持mapping 100 10,20这样一次添加多个
6.配置VSI
Switch(config)#int vlan 100
Switch(config-if)#ip add 192.168.10.1 255.255.255.0
Switch(config-if)#private-vlan mapping 10
Switch(config-if)#private-vlan mapping add 20------>虚拟机不支持mapping 10,20这样一次添加多个
7.查看
Switch#show vlan private-vlan
Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
100 10 isolated Et0/1, Et0/2, Et0/3
100 20 community Et0/3, Et1/0, Et1/1
8.测试
各个设备之间进行ping测试即可。
特别提示:
1.在EVE-ng里面选择L2_new_15.2d.bin这个交换机才能配置成功。
2.其他L2的文件不支持VSI里面配置private-vlan,所以会私有VLAN不能正常工作。
3.华为
华为mux 配置就比思科稍微简单点,PC的IP地址都是192.168.10.x/24,X是PC编号,主VLAN是100,隔离VLAN是10,组VLAN是20,拓扑图如下。
1.配置vlan关系
[sw1]vlan 100
[sw1-vlan100]mux-vlan ----->指定100的主
[sw1-vlan100]subordinate separate 10 ---->指定隔离vlan
[sw1-vlan100]subordinate group 20 ------->指定组vlan
2.配置端口模式和vlan
[sw1]port-group group-member gi0/0/2 to GigabitEthernet 0/0/3
[sw1-port-group]port link-type access
[sw1-port-group]port default vlan 10
[sw1-port-group]port mux-vlan enable
[sw1]port-group group-member gi0/0/4 to GigabitEthernet 0/0/5
[sw1-port-group]port link-type access
[sw1-port-group]port default vlan 20
[sw1-port-group]port mux-vlan enable
[sw1]int gi 0/0/1
[sw1-port-group]port link-type access
[sw1-port-group]port default vlan 100
[sw1-port-group]port mux-vlan enable
3.测试
设备之间互相ping即可。
特别提示:华为eNSP在做跨设备的mux vlan时有个bug,两个交换机的隔离VLAN之间能通信(经测试思科没有相关bug)。
SW1的配置与上面保持一致,SW1和SW2互联接口都配置为trunk ,PVID为1,允许所有VLAN通过。SW2的gi0/0/2加入vlan 20,gi0/0/3加入vlan10,并都开启mux vlan功能。按照原理PC6可以跟PC1通信,但不能跟PC2,PC3通信。但测试结果PC6可以与PC1,PC2,PC3互通,所以eNSP有BUG。