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透明传送,也是一种简单、实用的×××技术,因此它又可以作为核心MPLS ×××在城域以太网×××的延伸,最终形成端到端的×××技术。
 
二、QinQ 的作用及原理
设备提供的端口QinQ 特性是一种简单、灵活的二层××× 技术,它通过在运营商网
络边缘设备上为用户的私网报文封装外层VLAN Tag,使报文携带两层VLAN Tag穿越运营商的骨干网络(公网)。
在公网中,设备只根据外层VLAN Tag 对报文进行转发,并将报文的源MAC 地址表项学习到外层Tag 所在VLAN MAC 地址表中,而用户的私网VLAN Tag 在传输过程中将被当作报文中的数据部分来进行传输。
QinQ特性使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如图1所示,用户网络A的私网VLANVLAN 110,用户网络B的私网VLANVLAN 120。运营商为用户网络A分配的VLANVLAN 3,为用户网络B分配的VLANVLAN4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID3 VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID4 VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠,在公网传输时也不会产生混淆。
 
QinQ 特性使网络最多可以提供4094X4094 VLAN,满足城域网对VLAN 数量的
需求,它主要解决了如下几个问题:
Ø  缓解日益紧缺的公网VLAN ID 资源问题。
Ø  用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID 冲突。
Ø  为小型城域网或企业网提供一种较为简单的二层××× 解决方案。
 
三、QinQ 的报文结构
QinQ报文在公网传输时带有双层VLAN Tag,内层VLAN Tag为用户私网VLAN Tag
外层VLAN Tag为运营商分配给用户的VLAN Tag,报文结构如图2所示。
QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多四个字节。
另外,对于QinQ报文的ETYPE值,不同的厂家有不同的设置,有些厂商使用0x8100,有些厂家采用0x9100
接口的MTU 值默认为1500 字节。当为报文加上外层VLAN Tag 后,报文的长度会
增加4 个字节,建议用户适当增加运营商网络中各接口的MTUMaximum 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范围是101200IPTVVLAN ID范围是201300,大客户的VLAN范围是301400,面向用户的设备收到用户数据后,根据VLAN ID范围,对PC上网业务打上100的外层标签,对IPTV打上300的外层标签,对大客户打上500的外层标签。
2) 根据报文中的VLAN IDPriority进行分流
不同的业务有不同的优先级,当同一用户的多种业务使用相同的VLAN ID时,可以根据不同业务的Priority进行区分,然后打上不同的外层标签。
3) 根据目的IP进行QinQ封装
当同一台PC既包括上网业务,又包括语音业务时,不同业务的目的IP不同,可以利用ACL对目的IP进行分流,然后打上不同的外层标签。
4) 根据ETYPE进行QinQ封装
当同一用户既包括PPPOE的上网业务,又包括IPOEIPTV业务时,可以根据ETYPE进行数据分流,IPOE的协议号为0x0800PPPOE的协议号为0x8863/8864,这样,上网业务和IPTV业务就能打上不同的外层标签。
QinQ封装一般在交换式端口上直接进行,但有一种特殊情况例外,QinQ也可以在路由子接口上进行封装。