城域网中Vlan Stacking组网及典型应用
2013-09-01李晓明解社锋
李晓明 解社锋
(中国联合网络通信有限公司邯郸市分公司,河北 邯郸 056002)
一、概述
VLAN Stacking又称“灵活QinQ”是一种可以针对用户不同vlan封装外层vlan标签的二层新技术。VLAN Stacking(灵活QinQ)可以根据用户报文的Tag或其他特征(IP/MAC等),给用户报文打上相应的外层Tag,以达到区分不同用户的目的。
二、应用场景分析
传统QinQ业务简单的说就是在原有的802.1Q的报文基础上,再增加一层802.1Q标签头,从而实现私网VLAN透传公网达到二层VPN的应用效果。另一方面它还具有不同私网用户之间相同VLAN不透传,与公网有效分离,最大限度节省VLAN等特点,VLAN Stacking具有QinQ这些优点外更克服了传统QinQ无选择(这里指传统QinQ不会理会报文属于哪个vlan,对所有进入QinQ的端口的带vlan tag标记的报文统一加上第二层tag标签)封装外层标签的缺点。
在运营商的某些应用场合,如图1所示。上网用户、IPTV用户和大客户都是园区的宽带接入对象,他们分别接入不同范围的用户VLAN来加与区分:普通上网用户VLAN101-200;IPTV用户201-300;大客户VLAN301-400。为了使上层设备节省使用VLAN数目并对不同业务加以区别,我们需要在Switch 1上的A处开启某种配置,达到如下效果:
√给内层VLANID为101~200的报文封装外层VLANID 1001;
√给内层VLANID为201~300的报文封装外层VLANID 1002;
√给内层VLANID为301~400的报文封装外层VLANID 1003;
这样根据不同的外层VLANID将业务送至不同的上层设备(如BAS,IPTV SERVER)。
在没有VLAN Stackong功能的支持下如果需要实现上述需求,Switch 1的A处端口不能根据用户VLANID分配外层VLANID。所以我们最先想到的是在A和B之间使用3个端口、连接3对光纤,如图2所示。
但是由于A和B之间光纤的成本很高,(从用户小区到电信机房光纤资源匮乏,租用或重新建设需要大量资金),用户希望使用一根光纤就能到达效果。
于是我们又想到在A与B之间增加一台新的交换机,这台交换机通过trunk与园区小交换机相连,然后分出三个端口与Switch 1相连,如图3所示。
这种方式虽然能够节约光纤成本,但是由于又增加了一台交换机,在网络维护上可能就新增加了一个故障点。另外由于需要三个端口来进行接入且需新购买交换机,网络的运营成本也会居高不下。因此需要一种新特性能够满足在接入点根据不同的内层VLAN封装不同的外层VLAN,Vlan Stacking(灵活QinQ)满足了这个需求,如图4所示。
三、VLAN Stacking的典型应用:
下面介绍两种典型应用:
1.典型组网(一)
图5是目前常见的VLAN stacking组网图,其中电信宽带用户群一种是通过园区接入交换机接入的用户,另外一种就是大家比较熟悉的通过DSLAM接入的ADSL用户。
下面就来简单介绍一下这种组网的特点:
(1)园区接入的用户VLAN101-200是属于普通用户接入,Switch 1给它分配使用的公网VLAN是1001。VLAN201-300的用户为园区接入的VIP用户,Switch 1给它分配的公网VLAN是1002。
(2)DSLAM接入的ADSL用户他们也是VLAN 101-300,他们通过PPPOE拨号获取IP从而访问internet。Switch 1给它分配的公网VLAN是1003。
(3)Vlan 301是专门用于组播的VLAN,不管DSLAM还是园区接入交换机还是DSLAM的IPTV用户都是通过VLAN 301来收看组播节目的。IPTV客户端首先在DHCP服务器上获取到IP,然后通过在Switch 1上进行IGMP组加入来收看组播节目。
(4)对于上网用户来说,Switch 1只是将在上网用户的报文上又增加了一层公网的tag而送交BASE处理,用户在BASE上实现认证鉴权和二层的终结。
这里我们提供针对普通用户/VIP用户/ADSL用户的在Switch 1上的配置作为参考:
Switch 1选择目前支持VLAN stacking功能的CX300A运营级交换产品(关于产品特性介绍请查阅相关资料)。
配置步骤:
1)创建VLAN:
#在CX-Switch 1上创建VLAN10001 VLAN1002 VLAN1003。
[CX-Switch 1]vlan batch 1001 1002 1003
2)在端口上配置VLAN Stacking Push:
#在CX-Switch 1的端口GE2/0/1上配置VLAN Stacking Push。
[CX-Switch 1]interface GigabitEthernet 2/0/1
[CX-Switch 1-GigabitEthernet2/0/1]port vlan-stacking vlan 101 to 200 push vlan 1001 inbound
[CX-Switch 1-GigabitEthernet2/0/1]port trunk allow-pass vlan 1001
[CX-Switch 1-GigabitEthernet2/0/1]port vlan-stacking vlan 201 to 300 push vlan 1002 inbound
[CX-Switch 1-GigabitEthernet2/0/1]port trunk allow-pass vlan 1002
[CX-Switch 1-GigabitEthernet2/0/1]quit
#在CX-Switch 1的端口GE3/0/1上配置VLAN Stacking Push。
[CX-Switch 1]interface GigabitEthernet 3/0/1
[CX-Switch 1-GigabitEthernet3/0/1]port vlan-stacking vlan 101 to 300 push vlan 1003 inbound
[CX-Switch 1-GigabitEthernet3/0/1]port trunk allow-pass vlan 1003
[CX-Switch 1-GigabitEthernet3/0/1]quit
在端口上配置VLAN Stacking Pop:
#在CX-Switch 1的端口GE2/0/1上配置VLAN Stacking Pop。
[CX-Switch 1]interface GigabitEthernet 2/0/1
[CX-Switch 1-GigabitEthernet2/0/1]port vlan-stacking pop vlan 1001 outbound
[CX-Switch 1-GigabitEthernet2/0/1]port vlan-stacking pop vlan 1002 outbound
[CX-Switch 1-GigabitEthernet2/0/1]quit
#在CX-Switch 1的端口GE3/0/1上配置VLAN Stacking Pop。
[CX-Switch 1]interface GigabitEthernet 3/0/1
[CX-Switch 1-GigabitEthernet3/0/1]port vlan-stacking pop vlan 1003 outbound
[CX-Switch 1-GigabitEthernet3/0/1]quit
#在CX-Switch 1上配置端口GE4/0/1加入VLAN1001 VLAN1002 VLAN1003。
[CX-Switch 1]interface GigabitEthernet 4/0/1
[CX-Switch 1-GigabitEthernet4/0/1]port trunk allow-pass vlan 1001 1002 1003
[CX-Switch 1-GigabitEthernet4/0/1]quit
验证配置结果:
普通用户/VIP用户/ADSL用户可以正常访问Internet网络,用户带私网vlan tag的报文上送到switch 1后被打上公网vlan tag,Bas设备接收到的二层报文带是带vlan tag 1001/1002/1003的报文。
2.典型组网(二)
在图6所示的网络中,有两个大企业,企业1有两个办公地,企业2有三个办公地,这两个企业的各办公地的企业网都分别和运营商网络中的CX交换机SWITCH-G或CX-Switch 1相连。企业1的网络中使用VLAN2~VLAN1500,企业2的网络中使用VLAN500~VLAN4094。要求通过运营商的网络两个企业内部各办公地之间可以互相通信,但两个企业之间互相隔离。
采用如下的思路配置VLAN Stacking:
在CX-F上创建VLAN10和VLAN20,在CX-G上创建VLAN20;
在CX-F的端口GE2/0/1、GE3/0/1和CX-G的端口GE1/0/1、GE2/0/1上配置VLAN Stacking Push;
在CX-F的端口GE2/0/1、GE3/0/1和CX-G的端口GE1/0/1、GE2/0/1上配置VLAN Stacking Pop;
配置CX-F的端口GE4/0/1和CX-G的端口GE3/0/1加入VLAN20。
数据准备:
为完成此配置例,需准备如下的数据:
在运营商网络中企业1被划分在VLAN10中;
在运营商网络中企业2被划分在VLAN20中。
配置步骤:
创建VLAN:
#在CX-F上创建VLAN10和VLAN20。
[CX-F]vlan batch 10 20
#在CX-G上创建VLAN20。
[CX-G]vlan 20
在端口上配置VLAN Stacking Push:
#在CX-F的端口GE2/0/1上配置VLAN Stacking Push。
[CX-F]interface GigabitEthernet 2/0/1
[CX-F-GigabitEthernet2/0/1]port vlan-stacking vlan 2 to 500 push vlan 10 inbound
[CX-F-GigabitEthernet2/0/1]port trunk allow-pass vlan 10
[CX-F-GigabitEthernet2/0/1]port vlan-stacking vlan 1000 to 2000 push vlan 20 inbound
[CX-F-GigabitEthernet2/0/1]port trunk allow-pass vlan 20
[CX-F-GigabitEthernet2/0/1]quit
#在CX-F的端口GE3/0/1上配置VLAN Stacking Push。
[CX-F]interface GigabitEthernet 3/0/1
[CX-F-GigabitEthernet3/0/1]port vlan-stacking vlan 100 to 1500 push vlan 10 inbound
[CX-F-GigabitEthernet3/0/1]port trunk allow-pass vlan 10
[CX-F-GigabitEthernet3/0/1]quit
#在CX-G的端口GE1/0/1上配置VLAN Stacking Push。
[CX-G]interface GigabitEthernet 1/0/1
[CX-G-GigabitEthernet1/0/1]port vlan-stacking vlan 1000 to 4094 push vlan 20 inbound
[CX-G-GigabitEthernet1/0/1]port trunk allow-pass vlan 20
[CX-G-GigabitEthernet1/0/1]quit
#在CX-G的端口GE2/0/1上配置VLAN Stacking Push。
[CX-G]interface GigabitEthernet 2/0/1
[CX-G-GigabitEthernet2/0/1]port vlan-stacking vlan 500 to 2500 push vlan 20 inbound
[CX-G-GigabitEthernet2/0/1]port trunk allow-pass vlan 20
[CX-G-GigabitEthernet2/0/1]quit
在端口上配置VLAN Stacking Pop:
#在CX-F的端口GE2/0/1上配置VLAN Stacking Pop。
[CX-F]interface GigabitEthernet 2/0/1
[CX-F-GigabitEthernet2/0/1]port vlan-stacking pop vlan 10 outbound
[CX-F-GigabitEthernet2/0/1]port vlan-stacking pop vlan 20 outbound
[CX-F-GigabitEthernet2/0/1]quit
#在CX-F的端口GE3/0/1上配置VLAN Stacking Pop。
[CX-F]interface GigabitEthernet 3/0/1
[CX-F-GigabitEthernet3/0/1]port vlan-stacking pop vlan 10 outbound
[CX-F-GigabitEthernet3/0/1]quit
#在CX-G的端口GE1/0/1上配置VLAN Stacking Pop。
[CX-G]interface GigabitEthernet 1/0/1
[CX-G-GigabitEthernet1/0/1]port vlan-stacking pop vlan 20 outbound
[CX-G-GigabitEthernet1/0/1]quit
#在CX-G的端口GE2/0/1上配置VLAN Stacking Pop。
[CX-G]interface GigabitEthernet 2/0/1
[CX-G-GigabitEthernet2/0/1]port vlan-stacking pop vlan 20 outbound
[CX-G-GigabitEthernet2/0/1]quit
配置其它端口:
#在CX-F上配置端口GE4/0/1加入VLAN20。
[CX-F]interface GigabitEthernet 4/0/1
[CX-F-GigabitEthernet4/0/1]port trunk allow-pass vlan 20
[CX-F-GigabitEthernet4/0/1]quit
#在CX-G上配置端口GE3/0/1加入VLAN20。
[CX-G]interface GigabitEthernet 3/0/1
[CX-G-GigabitEthernet3/0/1]port trunk allow-pass vlan 20
[CX-G-GigabitEthernet3/0/1]quit
验证配置结果:
从企业1任意办公地内任意VLAN的一台主机ping企业1其它工作地同一VLAN内的主机,如果可以ping通则表示企业1内部可以互相通信。
从企业2任意办公地内任意VLAN的一台主机ping企业2其它工作地同一VLAN内的主机,如果可以ping通则表示企业2内部可以互相通信。
从企业1任意办公地内的任意一台主机ping企业2内的主机,如果不能ping通则表示企业1和企业2是互相隔离的。
四、基本故障排错及配置注意事项
部分故障排错可以参考QinQ排错部分,这里主要强调一下VLAN Stacking(灵活QinQ)特别需要注意的地方:
1.注意在65上配置灵活QinQ端口模式必须为Hybrid,且在端口聚合情况下不能使用,如果某端口的GVRP、GMRP、STP或802.1x协议中的任一个已经启动,则不允许用户开启端口的VLAN VPN特性(65的灵活QinQ实现是在QinQ基础之上需要开启此功能),反之亦然。;在CX产品上配置VLAN Stacking功能其端口类型应必须为Trunk或Hybrid,且VLAN Stacking功能必须由支持该功能的板卡实现(增强卡/RPR卡)。
2.不同设备上VLAN Stacking配置的规格不同,规划时需要注意。例如CX产品配置VLAN Stacking规格为每端口4K项(push/pop各算一项),65设备配置的规格视内存大小而定。
3.考虑VLAN Stacking(灵活QinQ)与QinQ主要不同之处是在针对不同Vlan的报文添加2层tag标签,这里主要强调一下在应用中配置VLAN Stacking时容易出错的地方。以CX产品为例,在实现VLAN Stacking功能时对报文添加和去除外层tag标签的功能需要两条命令来完成,分别是push和pop两个操作,配置时很容易忽略这一点。
4.使用了VLAN Stacking功能的两端设备在添加和去除Vlan标签的Vlan tag一定要保持一致(原因:CX产品在添加和去除Vlan tag时不会考虑报文是否是带有两层Vlan tag,即使是普通的带一层Vlan tag的报文符合pop操作中的VLANID也会被剥离tag,同样push操作会给无tag的报文打上tag),在实际使用中需要充分考虑到这些在部署时合理规划。
最后,不同产品在实现Vlan Stacking(灵活QinQ)功能上配置有所不同,在了解主要实现方式后在部署时还需要参考产品手册和相关操作指导书来了解产品特性进行合理规划,排错时也需要充分考虑到不同交换产品在实现上的不同。
[1]雷震甲.网络工程师教程[M].北京:清华大学出版社,2006
[2]蔡建新.网络工程概论[M].北京:清华大学出版社,2002