浅析QinQ技术
代码小侠客
2024-04-18 01:12
QinQ技术(也称Stacked VLAN或者Double VLAN)是指用户私网VLAN标签封装在公网VLAN标签中,使报文带着两层VLAN标签穿越运营商的骨干网络,在公网中只根据外层VLAN标签传播,私网VLAN标签被屏蔽,这样,不仅对数据流进行了区分,而且由于私网VLAN标签被透明传送,不同的用户VLAN标签可以重复使用,只需要外层VLAN标签的在公网上唯一即可,实际上也扩大了可利用的VLAN标签数量。
QinQ的标准是IEEE802.1ad(IEEE802.1ad的全称是:Virtual Bridged Local Area Networks Amendment 4: Provider Bridges)该标准是在2006年5月份才形成正式标准的,所以当前我们常见的各厂商实现的QinQ和该标准有较大的不同,但各厂商的实现均大同小异。
1、QinQ的产生
1)随着三层交换机的不断成熟和大量应用,许多企业网和小型城域网用户都倾向于使用三层交换机来搭建骨干网,由于以下三个原因,这些用户一般都不愿意使用基于MPLS或者IP协议的VPN:
·配置、维护工作相对比较繁杂;
·许多厂商的三层交换机不支持MPLS功能,如果用户搭建基于MPLS的VPN,势必要淘汰这些设备,浪费资源;
·支持MPLS功能的单板一般价格昂贵,小型用户难以承受。
而QinQ可以提供一种廉价、简洁的二层VPN解决方案,不需要信令协议的支持,可以通过纯静态配置实现,而且只需要网络边缘设备支持QinQ,内部只需要可以支持802.1Q的设备即可,所以越来越多的小型用户倾向于使用该功能构建自己的VPN网络。
2)运营商在通过Ethernet提供Internet接入业务时需要对客户标识,做到精细化管理,而且随着新业务的开展(如Triple-Play、Wholesale、VPN),运营商还需要对业务进行细分,以区别提供不同的管道、QoS策略。原有基于802.1Q只有4096个vlan标识不能满足这样的需要,QinQ正好可以扩展这样的标识,同时还可以利用不同的VLAN来区分运营商的服务和不同的客户。利用QinQ提供接入时具用以下的优点:
· 可以解决日益紧缺的公网VLAN ID资源问题;
· 用户可以规划自己的私网VLAN ID,不会导致与公网VLAN ID冲突;
· 提供一种较为简单的二层VPN解决方案;
· 使用户网络具有较高的独立性,在服务提供商升级网络时,用户网络不必更改原有的配置;
· 可以按不同层次的VLAN ID来区分不同的业务;
· QinQ技术上完全可以多层嵌套,没有限制,仅受Ethernet报文长度的限制,具有很好的扩充性。
2、QinQ作用及原理
设备提供的端口QinQ 特性是一种简单、灵活的二层VPN 技术,它通过在运营商网
络边缘设备上为用户的私网报文封装外层VLAN Tag,使报文携带两层VLAN Tag穿越运营商的骨干网络(公网)。
在公网中,设备只根据外层VLAN Tag 对报文进行转发,并将报文的源MAC 地址表项学习到外层Tag 所在VLAN 的MAC 地址表中,而用户的私网VLAN Tag 在传输过程中将被当作报文中的数据部分来进行传输。
QinQ特性使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如下图所示,用户网络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 解决方案。
3、QinQ报文格式
QinQ报文在公网传输时带有双层VLAN Tag,内层VLAN Tag为用户私网VLAN Tag,
外层VLAN Tag为运营商分配给用户的VLAN Tag,报文结构如下图所示。
QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多四个字节。
另外,对于QinQ报文的ETYPE值,不同的厂家有不同的设置,华为公司采用默认的0x8100,有些厂家采用0x9100,为了实现互通,华为公司设备支持基于端口的QinQ协议配置,即用户可以在设备端口上设置QinQ protocol 0x9100(该值可以由用户任意指定),这样端口就会将报文外层VLAN tag中的ETYPE值替换为0x9100再进行发送,从而使发送到其他设备端口的QinQ报文可以被设备识别。
4、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业务就能打上不同的外层标签。
3)在路由子接口进行QinQ封装
QinQ封装一般在交换式端口上直接进行,但有一种特殊情况例外,QinQ也可以在路由子接口上进行封装。
当核心网采用VLL/PWE3透传用户数据时,NPE设备上的路由子接口可以根据用户VLAN ID封装外层VLAN,通过外层VLAN接入VLL/PWE3。此种方法可以通过一个子接口来透传多个标识用户的VLAN ID。这种子接口也叫QinQ Stacking子接口。
这种封装方式也是基于流的QinQ封装方式,但QinQ Stacking子接口只能和L2VPN(PWE3/VLL/VPLS)结合起来才有意义,不支持三层转发功能。
5、QinQ终结
终结主要是指对QinQ报文的双层tag进行识别,然后根据后续的转发行为对双层Q进行剥离或继续传送,QinQ技术在和核心网对接时,根据不同的情况,会用到不同的终结方法。
在核心网边缘,QinQ终结一般在路由子接口上执行,即QinQ Termination子接口,QinQ终结子接口和普通的VLAN子接口类似,普通VLAN子接口对单层VLAN进行识别和终结,QinQ终结子接口对双层VLAN进行识别和终结,QinQ终结子接口根据终结的用户VLAN tag情况通常分为两种:
一种为两层VLAN tag为固定的值,我们把它叫做明确的QinQ终结子接口。
例如:Ethernet 1/0/1.1> QinQ termination pe-vid 100 ce-vid 200
另一种两层VLAN tag为范围值,即终结的VLAN TAG内外层TAG都为范围,我们称为模糊的QinQ终结子接口。
例如:Ethernet1/0/1.2> QinQ termination pe-vid 200 ce-vid 300 to 400
Ethernet1/0/1.2> QinQ termination pe-vid 201 ce-vid 300 to 400
QinQ技术组网简单、方便。对客户而言,可以自行规划私有网络;对运营商而言,不需要协议报文的支持,仅仅通过静态配置即可实现,维护简单。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341