一、Qinq的概述
QinQ(802.1Q-in-802.1Q),也叫做VLAN Stacking或Double VLAN,由IEEE 802.1ad标准定义,是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的目的。一般应用在骨干网中,通过将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网),扩充VLAN数量,实现对用户的精细化管理。
二、为什么需要Qinq
IEEE 802.1Q中定义的VLAN ID只有12个比特,仅能表示4096个VLAN域,随着网络规模的扩大,4096个VLAN域已无法满足网络扩容的需求,为此,IEEE 802.1ad中在原有的802.1Q报文的基础上增加一层802.1Q Tag(也叫做VLAN Tag或标签),使VLAN数量增加到4094×4094,这种双层Tag的报文就叫做QinQ报文。
随着以太网的进一步发展以及运营商精细化运作的要求,QinQ的双层Tag又有了新的应用场景。它的内外层Tag可以代表不同的信息,如内层Tag代表用户,外层Tag代表业务。另外,QinQ报文带着两层Tag穿越运营商网络,内层Tag透明传送,也是一种简单、实用的VPN技术。
所以,QinQ产生的两大背景是:一是解决日益紧缺的VLAN ID资源问题;二是满足业务精细化管理的需求。
三、Qinq的应用场景有哪些
在企业网中,可以不同的业务封装不同VLAN Tag,使不同的业务按需获取不同的资源。如下图所示,PC、VOIP、IPTV由于应用场景和需求不同,在企业内部属于不同的VLAN,访问公网时,针对不同的内层VLAN Tag添加不同的外层VLAN Tag。
- PC:内层VLAN Tag对应的VLAN ID是101,外层VLAN Tag对应的VLAN ID是1001
- VOIP:内层VLAN Tag对应的VLAN ID是301,外层VLAN Tag对应的VLAN ID是2001
- IPTV:内层VLAN Tag对应的VLAN ID是501,外层VLAN Tag对应的VLAN ID是3001
在运营商网络中,为节省运营商公网VLAN ID资源,用户在使用运营商网络传输报文时,内层使用不同的VLAN ID区分不同部门,外层使用相同的VLAN ID。如下图所示,不同区域部门的用户需要跨越运营商网络相互通信,为节省运营商VLAN ID,用户报文在运营商网络中转发时,统一都添加一层VLAN ID为3的Tag。
四、Qinq的报文格式
QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比802.1Q报文多四个字节。这四个字节用作外层标签,即运营商网络的公网VLAN Tag。原802.1Q的Tag用作内层标签,即私网VLAN Tag。
五、Qinq的实现方式
1)基于接口的Qinq封装
也叫做基本QinQ或QinQ隧道(QinQ Tunnel),就是对接口收到的所有报文都添加一层VLAN ID相同的外层Tag。
2)基于流的Qinq封装
也叫做灵活QinQ,首先对进入接口的报文根据指定规则分类,然后对于不同类型的报文选择封装何种外层Tag。
例如:当同一企业的不同业务使用不同的VLAN ID时,可以根据VLAN ID进行对报文进行分类。假设PC上网的VLAN ID范围是101~200;IPTV的VLAN ID范围是201~300;大客户的VLAN ID范围是301~400。设备收到业务报文后,可以根据VLAN ID范围对不同的业务添加不同的外层Tag。对PC上网业务封装上外层Tag 100,对IPTV封装上外层Tag 300,对大客户封装上外层Tag 500。
常见的对报文分类的方式包括如下几种:
a、根据报文原有的VLAN ID进行分类,即根据报文原有内层VLAN ID添加不同的外层VLAN Tag。
b、根据报文原有的VLAN Tag中的802.1p优先级进行分类,即根据报文原有内层VLAN的802.1p优先级添加不同的外层VLAN Tag。
c、根据流策略进行精细分类,即根据QoS策略添加不同的外层VLAN Tag。该方式能够针对业务类型提供差别服务。
六、Qinq的工作流程
在QinQ典型组网中,有两个重要的设备角色:CE(Customer Edge)设备和PE(Provider Edge )设备。CE设备与用户相连,对用户报文封装第一层VLAN Tag,即内层VLAN Tag;PE设备是CE设备的上游设备,对CE设备转发过来的报文封装第二层VLAN Tag,即外层VLAN Tag。
如下图所示,部门A和部门B分布在不同的办公点,部门A和部门B通过运营商网络相互通信,部门A和部门B分别使用VLAN 10和VLAN 20进行通信,该企业仅申请到一个公网VLAN 3。当CE1和CE3对应的部门A的用户相互通信时,CE1用户发送到CE3用户的报文,VLAN Tag的添加和剥离流程如下。
- CE1收到用户报文时,对用户报文封装第一层VLAN Tag,对应的VLAN ID是10。
- PE1收到CE1转发的用户报文时,对用户报文再封装一层VLAN Tag,对应的VLAN ID是3。
- 报文携带两层VLAN Tag(内层VLAN Tag的VLAN ID是10,外层VLAN Tag的VLAN ID是3),从PE1设备传输到PE2设备。
- PE2收到报文从对应出接口转发报文时,会剥离掉外层VLAN ID是3的VLAN Tag。
- CE3收到报文时,报文仅携带一层VLAN ID为10的VLAN Tag。CE3设备转发报文时,会剥离掉这层VLAN ID为10的 VLAN Tag。
CE3用户发送到CE用户的报文,VLAN Tag的添加和剥离流程正好与上面流程相反。
七、Qinq相关技术
1)VLAN Mapping;
2)VXLAN。