QinQ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QinQ相关的知识,希望对你有一定的参考价值。

QinQ

定义

QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag(一层公网Tag,一层私网Tag),即802.1Q-in-802.1Q,所以称之为QinQ协议。


目的

随着以太网技术在运营商网络中的大量部署(即城域以太网),利用802.1QVLAN对用户进行隔离和标识受到很大限制。因为IEEE802.1Q中定义的VLAN Tag域只有12个比特,仅能表示4096个VLAN,无法满足城域以太网中标识大量用户的需求,于是QinQ技术应运而生。

QinQ最初主要是为拓展VLAN的数量空间而产生的。它是通过在原有的802.1Q报文的基础上增加一层802.1Q标签来实现的,使得VLAN数量增加到4094×4094。

随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。另外,QinQ报文带着两层Tag穿越运营商网络,内层Tag透明传送,也是一种简单、实用的VPN技术。因此它又可以作为核心MPLS VPN在城域以太网VPN的延伸,最终形成端到端的VPN技术。

由于QinQ方便易用的特点,现在已经在各运营商中得到了广泛的应用,如QinQ技术在城域以太网解决方案中和多种业务相结合。特别是灵活QinQ(Selective QinQ/VLAN Stacking)的出现,使得QinQ业务更加受到了运营商的推崇和青睐,它具有不同用户之间的VLAN与公网VLAN有效分离、最大限度节省运营商网络的VLAN资源等特点。随着城域以太网的大力发展,各个设备提供商都提出了各自的城域以太网的解决方案。QinQ因为其自身简单灵活的特点,在各解决方案中扮演着重要的角色。

 

QinQ的实现方式可分为以下两种:

1.  基本QinQ

基本QinQ是基于端口方式实现的。当端口上配置了基本QinQ功能后,不论从该端口收到报文是否带有VLAN Tag,设备都会为该报文打上本端口缺省VLAN的Tag。

·        如果收到的是带有VLAN Tag的报文,该报文就成为带双Tag的报文。

·        如果收到的是不带VLAN Tag的报文,该报文就成为带有本端口缺省VLAN Tag的报文。

2.  灵活QinQ

灵活QinQ是基于端口与VLAN相结合的方式实现的,即端口对接收的报文,可以通过单层VLAN tag转发,也可以通过双层VLAN tag转发。另外对于从同一个端口收到的报文,还可以根据VLAN的不同进行不同的操作,包括:

·        为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag。

·        根据报文内层VLAN的802.1p优先级标记外层VLAN的802.1p优先级和添加不同的外层VLAN Tag。

通过使用灵活QinQ技术,在能够隔离运营商网络和用户网络的同时,又能够提供丰富的业务特性和更加灵活的组网能力。

 

QinQ工作原理

 

设备提供的端口QinQ特性是一种简单、灵活的二层VPN技术,它通过在运营商网络边缘设网备上为用户的私网报文封装外层VLANTag,使报文携带两层VLANTag穿越运营商的骨干络。

在公网中,设备只根据外层VLAN Tag对报文进行转发,并将报文的源MAC地址表项学习到外层Tag所在VLANMAC地址表中,而用户的私网VLANTag在传输过程中将被当做报文中的数据部分来进行传输。QinQ使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。举例来说,用户网络A的私网VLANVLAN1~10,用户网络B的私网为VLAN1~20。运营商为用户网络A分配的VLANVLAN3,为用户网络B分配的VLANVLAN 4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID3VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID4VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠,在公网传输时也不会产生混淆。

 

QinQ的封装方式

QinQ封装是指如何把单层Q报文转换成双层Q报文,封装主要发生在城域网面向用户的UPE接口上进行。

根据不同的封装数据,QinQ可以分为几种不同类型,包括基于接口的QinQ和基于流的QinQ两大类,另外,还可以在路由子接口上进行特殊的QinQ封装,具体如下:

·        基于接口的QinQ封装

基于接口的封装是指进入一个接口的所有流量全部封装一个相同的外层VLAN Tag,封装方式不够灵活,用户业务区分不够细致,这种封装方式也称作QinQ二层隧道。

·        基于流的QinQ封装

基于流的QinQ封装可以对进入接口的数据首先进行流分类,然后对于不同的数据流选择是否封装外层Tag、封装何种外层Tag,因此这种封装方式也称作二层灵活QinQ。

例如:当同一用户的不同业务使用不同的VLAN ID时,可以根据VLAN ID区间进行分流。假设PC上网的VLAN ID范围是101~200;IPTV的VLAN ID范围是201~300;大客户的VLAN ID范围是301~400。面向用户的UPE收到业务数据后,根据VLAN ID范围,对PC上网业务封装上外层Tag 100,对IPTV封装上外层Tag300,对大客户封装上外层Tag 500。

·        在路由子接口上进行QinQ封装

QinQ封装一般在二层接口上进行,但有一种特殊情况,QinQ也可以在路由子接口上进行封装。

当MPLS/IP核心网采用PWE3/VLL/VPLS透传业务数据时,NPE上的路由子接口可以根据用户VLAN ID封装外层VLAN ID,通过外层VLAN ID接入VLL/PWE3。此种方法可以通过一个子接口来透传多个标识用户的VLAN ID,这种子接口也叫QinQ Stacking子接口。

这种封装方式也是基于流的QinQ封装方式,但QinQ Stacking子接口只能和L2VPN(PWE3/VLL/VPLS)业务结合起来才有意义,不支持三层转发功能。

QinQ Mapping

QinQ Mapping的基本原理

QinQ Mapping发生在报文从入接口接收进来之后,从出接口转发出去之前。

·        子接口在向外发送本地VLAN的帧时,将帧中的VLAN Tag替换成外部VLAN的VLANTag

·        在接收外部VLAN的帧时,将帧中的VLAN Tag替换成本地VLAN的VLANTag

在实际组网中QinQ Mapping功能可以将用户的VLAN Tag映射为运营商的VLAN Tag,从而起到屏蔽不同用户VLAN Tag的作用。

 


本文出自 “蓄势” 博客,谢绝转载!

以上是关于QinQ的主要内容,如果未能解决你的问题,请参考以下文章