zt 思科交换机QinQ 技术

一、QinQ 的产生背景 IEEE802.1Q 中定义的VLAN Tag 域中只有12 个比特位用于表示VLAN ID,所以设备最多可以支持4094 个VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN 来隔离用户,4094 个VLAN 远远不能满足需求。
QinQ最初主要是为拓展VLAN的数量空间而产生的,它是在原有的802.1Q报文的基础上又增加一层802.1Q标签实现,使VLAN数量增加到4K*4K,随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景,它的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务,另外,QinQ报文带着两层tag穿越运营商网络,内层tag透明传送,也是一种简单、实用的VPN技术,因此它又可以作为核心MPLS VPN在城域以太网VPN的延伸,最终形成端到端的VPN技术。
二、QinQ 的作用及原理 设备提供的端口QinQ 特性是一种简单、灵活的二层VPN 技术,它通过在运营商网
络边缘设备上为用户的私网报文封装外层VLAN Tag,使报文携带两层VLAN Tag穿越运营商的骨干网络(公网)。
在公网中,设备只根据外层VLAN Tag 对报文进行转发,并将报文的源MAC 地址表项学习到外层Tag 所在VLAN 的MAC 地址表中,而用户的私网VLAN Tag 在传输过程中将被当作报文中的数据部分来进行传输。
QinQ特性使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如图1所示,用户网络A的私网VLAN为VLAN 1~10,用户网络B的私网VLAN为VLAN 1~20。运营商为用户网络A分配的VLAN为VLAN 3,为用户网络B分配的VLAN为VLAN4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为3 的VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为4 的VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠,在公网传输时也不会产生混淆。
QinQ 特性使网络最多可以提供4094X4094 个VLAN,满足城域网对VLAN 数量的
需求,它主要解决了如下几个问题:
缓解日益紧缺的公网VLAN ID 资源问题。
用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID 冲突。
为小型城域网或企业网提供一种较为简单的二层VPN 解决方案。
三、QinQ 的报文结构 QinQ报文在公网传输时带有双层VLAN Tag,内层VLAN Tag为用户私网VLAN Tag,
外层VLAN Tag为运营商分配给用户的VLAN Tag。
QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多四个字节。
另外,对于QinQ报文的ETYPE值,不同的厂家有不同的设置,有些厂商使用0x8100,有些厂家采用0x9100。
接口的MTU 值默认为1500 字节。当为报文加上外层VLAN Tag 后,报文的长度会
增加4 个字节,建议用户适当增加运营商网络中各接口的MTU(Maximum Transmission Unit,最大传输单元)值,至少为1504 字节。

四、QinQ封装 QinQ封装是指如何把单层Q报文转换为双层Q报文,封装主要发生在城域网面向用户的UPE设备,一般在交换式的端口上进行,根据不同的封装依据,QinQ可以分为几种不同类型,包括基于端口的QinQ和基于流的QinQ两大类,另外,还可以在路由子接口上进行的特殊QinQ封装,具体如下:
1、基于端口的QinQ封装
基于端口的封装指进入一个端口的所有流量全部封装一个外层VLAN TAG,封装方式较为呆板。
2、基于流的QinQ封装
基于流的QinQ封装可以对进入端口的数据首先进行流分类,然后对于不同的数据流选择是否打外层TAG,打何种外层TAG,因此也叫灵活QinQ,灵活QinQ根据流分类的方法又可细分如下:
1) 根据报文中的VLAN ID区间分流
当同一用户的不同业务使用不同的VLAN ID时,可以根据VLAN ID区间进行分流,比如PC上网的VLAN ID范围是101~200,IPTV的VLAN ID范围是201~300,大客户的VLAN范围是301~400,面向用户的设备收到用户数据后,根据VLAN ID范围,对PC上网业务打上100的外层标签,对IPTV打上300的外层标签,对大客户打上500的外层标签。
2) 根据报文中的VLAN ID+Priority进行分流
不同的业务有不同的优先级,当同一用户的多种业务使用相同的VLAN ID时,可以根据不同业务的Priority进行区分,然后打上不同的外层标签。
3) 根据目的IP进行QinQ封装
当同一台PC既包括上网业务,又包括语音业务时,不同业务的目的IP不同,可以利用ACL对目的IP进行分流,然后打上不同的外层标签。
4) 根据ETYPE进行QinQ封装
当同一用户既包括PPPOE的上网业务,又包括IPOE的IPTV业务时,可以根据ETYPE进行数据分流,IPOE的协议号为0x0800,PPPOE的协议号为0x8863/8864,这样,上网业务和IPTV业务就能打上不同的外层标签。
QinQ封装一般在交换式端口上直接进行,但有一种特殊情况例外,QinQ也可以在路由子接口上进行封装。

[@more@]

某单位使用三台S6503作为核心设备,采用QinQ技术实现各下属单位局域网内相同VLAN之间的访问。如上网络拓扑图所示:三台S6503之间通过光电转换器+光纤的连接方式进行主干线路的连接,为下属单位提供二层隧道的透明连接,下属各个单位均采用Cisco交换机,各单位通过QinQ技术实现私有VLAN之间互访。

问题描述:

该用户的网络系统全网运行生成树协议。其中三台S6503运行RSTP协议,下属各个单位的Cisco交换机运行PVST协议。该网络在设置(用户和集成商自己做的配置)完毕并运行几天后,发现了以下问题:

下属单位的局域网中,经常出现Cisco交换机死机或重启的现象;

下属各单位之间通过QinQ连接的网络经常有断线的现象,反映网络不稳定;

客户反映:

三台6503组成的主干网,当主干线路光纤出现问题断掉的时候,备用线路即S6503-B和S6503-C之间的线路不能正常启用,必须通过重启光电转换器或拔掉双绞线,有时候重启S6503交换机才能使网络恢复正常,此故障基本上每两天出现一次;

处理过程:

通过收集各交换机的信息发现:

三台S6503交换机的配置为:S6503-A设置为STP优先级为0,作为RSTP的主根,S6503-B设置为STP优先级为4096,作为RSTP的备根;每台交换机的第47和48端口为主干线路连接端口,设置为TRUNK端口,允许所有VLAN通过;其他端口为access端口,启动了VLAN VPN特性。通过display stp interface发现,启动了QinQ特性的端口上,RSTP仍然是enable的。同时,我们发现,三台S6503交换机之间的主干线路的接口上产生了很多的CRC错误,接口的速率和双工都为强制方式。

解决方案:

对上面收集到的交换机配置信息和故障现象分析,可以发现交换机的配置有2个明显的错误:

1、启用QinQ特性的端口,不能运行STP/GVRP/802.1x等协议;

2、PVST为CISCO的私有协议,与标准的STP不兼容,容易产生网络问题。

在操作手册中,关于QinQ使用的注意事项里明确说明:

如果某端口的GVRPGMRPSTP802.1xNTDPNDP协议中的任一个已经启动,则不允许用户开启端口的QinQ特性,即用户如果想在某个端口上应用QinQ特性,则不允许启动其他如GVRP、STP、802.1x等特性。

之所以有这样的使用限制的原因是,QinQ特性所使用的QINQ协议的基本思想是将用户私网VLAN TAG封装在公网VLAN TAG中, 报文带着两层TAG穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。而QinQ是一个非标准的协议,还不是很成熟,在某些方面还存在一些缺点,例如对STP、GVRP等二层协议的透传支持是一个较大的难题,如果将这些和普通数据报文一样带上公网TAG头(公网VLAN封装)进行传输会产生不可预料的问题,因为按照协议标准,带TAG的BPDU报文和GVRP协议报文都是非法报文,不能保证它能在公网上被正确透传。

根据上面提到信息,原来交换机上的配置是不正确的,会出现一些我们不可预料的网络问题。这些不可预料的问题会使网络产生一些奇特的现象,例如,客户反映的下属单位的一些用户不能正常通信、CISCO交换机无故死机等。

对于S6503-B和S6503-C之间的链路不能正常通信的问题,最初把问题定位在光电转换器上面。更换了光电转换器后,经过测试,光纤线路参数正常。但仍然不能够通信。接下来,我们怀疑是否因为CRC错误不断上升,使光电转换器发生了“死锁”呢?端口会产生CRC错误一般是由协商方式造成的。在更改端口的速率和双工模式都为auto后,CRC错误消失了。之后经过测试,无路哪条主干线路的那一段发生问题,STP都能够使备用线路正常切换成功,迅速恢复网络通信。

总结:

通过此网络的故障解决,:

1、端口在启动QinQ特性的时候,不能运行其他如GVRP、STP等协议;

2、PVST协议为Cisco的私有协议,与标准的STP同时运行会产生不可预料的网络故障问题;

3、不同厂家的网络设备相连,特别需要根据实际情况,正确配置端口协商参数,避免设备兼容性问题引起其它故障问题;

4、在使用光电转换器的时候,最好启用光电告警功能。

QinQ技术简介】

QinQ是基于802.1 q封装的隧道协议的一种形象化的称呼。目前很多厂商的网络设备都能支持这个特性,但是由于该协议到目前为止还没有正式的标准,所以对它的称谓也是五花八门:Cisco称之为802.1q tunneling,Extreme称之为Virtual MAN或者vMANs,Riverstone称之为Stackable VLAN或者SVLAN。但是,总的思想都是将用户私网vlan tag封装在公网vlan tag中, 报文带着两层tag穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。

请使用浏览器的分享功能分享到微信等