【从零开始学网络】二层QINQ 双层标签技术详解

一、QinQ基本原理:

QinQ 是在 802.1Q VLAN 的基础上增加了一层 802.1Q VLAN 标签,拓展了 VLAN 空间。为了适应城域以太网的发展, QinQ 封装、终结的方式也越来越丰富,在运营商的业务精细化运营方面得到了越来越深入的应用。

QinQ 报文封装格式

QinQ 报文有固定的格式,就是在 802.1Q 的标签之上再打一层 802.1Q 标签, QinQ 报文比 802.1Q报文多四个字节。

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 封装上外层 Tag 300,对大客户封装上外层 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/Dot1q 终结子接口:

终结主要是指设备对报文的单层或者双层 Tag 进行识别,然后根据后续的转发行为对单层或者双层 Tag 进行剥离或继续传送。


QinQ 技术在和 MPLS/IP 核心网连接时,根据不同的情况,会用到不同的终结方法。


终结一般在路由子接口上执行,即:终结子接口。

如果路由子接口是对报文的单层 Tag 终结,那么该子接口称为 Dot1q 终结子接口

如果路由子接口是对报文的双层 Tag 终结,那么该子接口称为 QinQ 终结子接口。


QinQ 终结子接口根据终结的用户 VLAN Tag 的类型,通常分为两种子接口:
明确的 QinQ 终结子接口:两层 VLAN Tag 为固定的值。
模糊的 QinQ 终结子接口:两层 VLAN Tag 为范围值,即:终结的内、外层 Tag 都为范围值。

二、基本 QinQ

基本 QinQ 又称为 QinQ 二层隧道,是基于接口方式实现的。开启接口的基本 QinQ 功能后,当该接口接收到报文,设备会为该报文打上本接口缺省 VLAN 的 VLAN Tag。如果接收到的是已经带有 VLAN Tag 的报文,该报文就成为双 Tag 的报文;如果接收到的是不带 VLAN Tag 的报文,该报文就成为带有接口缺省 VLAN Tag 的报文。


当需要较多的 VLAN 时,可以配置基本 QinQ 功能。通过对 VLAN 增加外层 Tag,使得 VLAN 的可用数目范围变大,解决 VLAN 数目资源紧缺的问题。


在如图所示的网络中,企业部门 1 有两个办公地,部门 2 有三个办公地,两个部门的各办公地分别和网络中的 PE1、 PE2 相连,部门 1 和部门 2 可以任意规划自己的 VLAN。

部门 1 和部门 2 外层 VLAN 规划如表所示:

在 PE1 和 PE2 上通过如下思路配置 QinQ 二层隧道功能,使得每个部门的各个办公地网络可以互通,但两个部门之间不能互通。
在 PE1 上,对于进入接口 Port1 和 Port2 的用户报文都封装外层 VLAN 10,对于进入接口 Port3中用户报文都封装外层 VLAN 20。
在 PE2 上,对于进入接口 Port1 和 Port2 的用户报文都封装外层 VLAN 20。
PE1 上的接口 Port4 和 PE2 上的接口 Port3 允许 VLAN 20 的报文通过。

三、灵活 QinQ

灵活 QinQ 是对 QinQ 的一种更灵活的实现,又叫 VLAN Stacking 或 QinQ Stacking。它是基于接口与 VLAN 相结合的方式实现的。除了能实现所有基本 QinQ 的功能外,对于同一个接口接收的报文还可以根据不同的 VLAN 做不同的动作,可以实现以下功能:


基于 VLAN ID 的灵活 QinQ:为具有不同内层 VLAN ID 的报文添加不同的外层 VLAN Tag。
基于 802.1p 优先级的灵活 QinQ:根据报文的原有内层 VLAN 的 802.1p 优先级添加不同的外层 VLAN Tag。
基于流策略的灵活 QinQ:根据 QoS 策略添加不同的外层 VLAN Tag。基于流策略的灵活 QinQ能够针对业务类型提供差别服务。

灵活 QinQ 功能是对基本 QinQ 功能的扩展,它比基本 QinQ 的功能更灵活。二者之间的主要区别是:
基本 QinQ:对进入二层 QinQ 接口的所有帧都加上相同的外层 Tag。
灵活 QinQ:对进入二层 QinQ 接口的帧,可以根据不同的内层 Tag 而加上不同的外层 Tag,对于用户 VLAN 的划分更加细致。

如图所示的网络中,企业的部门 1 有多个办公地,部门 2 也有多个办公地

部门 1 的网络中使用 VLAN 2~VLAN 500。
部门 2 的网络中使用 VLAN 500~VLAN 4094。
对于进入 PE1 和 PE2 不同接口的报文的外层 VLAN 规划如表。

在 PE1 和 PE2 上通过如下思路配置二层灵活 QinQ 功能,使得每个部门的各个办公地网络可以互通,但两个部门之间不能互通。
 

四、VLANIF 接口支持 Stacking 功能

如图 所示, DeviceA 与远端设备 DeviceB 通过第三方网络互连。DeviceB 已经部署管理 VLAN,DeviceA 下挂的用户所属 VLAN ID 与管理 VLAN ID 一样。而运营商提供的 VLAN ID 与管理 VLANID(用户所属的 VLAN ID)不相同。

当用户需要从 DeviceA 远程登录到远端设备 DeviceB 上进行远端管理 VLAN 业务时,可在远端设备 DeviceB 上通过在管理 VLAN 对应的 VLANIF 接口上部署 VLAN Stacking 功能实现远程管理。


当用户 user1 发送报文时:
使上送到运营商网络的用户报文带有两层 VLAN Tag,外层 Tag 与运营商提供的 VLAN Tag相同,以实现用户报文能够透传运营商网络到达远端设备 DeviceB。

当部署了 QinQ Stacking 功能的设备 DeviceB 接收到带有两层 VLAN Tag 的用户报文时,与VLANIF 接口上配置的两层 VLAN Tag 进行比较。当外层 VLAN Tag 一样时,将剥掉外层VLAN Tag,将报文上送给 IP 层处理。


当用户 user1 接收报文时:
在远端设备 DeviceB 上,当配置了 QinQ Stacking 功能的 VLANIF 接口收到数据帧时,给数据帧打上一层 VLAN Tag。新增的外层 VLAN Tag 与运营商提供的 VLAN Tag 保持一致。从而使带有两层 VLAN Tag 的报文透传运营商网络到达本端设备 DeviceA。本端设备 DeviceA将外层 VLAN Tag 剥掉,报文最终到达本地用户。

五、TPID

标签协议标识 TPID(Tag Protocol Identifier)是 VLAN Tag 中的一个字段,表示 VLAN Tag 的协议类型, IEEE 802.1Q 协议规定该字段的取值为 0x8100。


IEEE802.1Q协议定义的以太网帧的VLAN Tag结构如图所示。802.1Q Tag位于SA(Source Address)和 Length/Type 之间。通过检查对应的 TPID 值,设备可确定收到的帧承载的是运营商 VLAN 标记还是用户 VLAN 标记。接收到帧之后,设备将配置的 TPID 值与帧中 TPID 字段的值进行比较。如果二者匹配,则该帧承载的是对应的VLAN标记。

例如,如果帧分别承载TPID值为0x9100和0x8100的 VLAN 标记,同时运营商 VLAN 标记的 TPID 值配置为 0x9100,用户网络 VLAN 标记的 TPID值配置为 0x8200,设备将认为该帧仅承载了运营商 VLAN 标记,但没有用户 VLAN 标记。

另外,不同运营商的系统可能将 QinQ 帧外层 VLAN 标记的 TPID 设置为不同值。为实现与这些系统的兼容性,可以修改 TPID 值,使 QinQ 帧发送到公网时,承载与特定运营商相同的 TPID 值,从而实现与该运营商设备之间的互操作性。以太网帧的 TPID 与不带 VLAN 标记的帧的协议类型字段位置相同。为避免在网络中转发和处理数据包时出现问题,不可将 TPID 值设置为表中的任意值:

六、QinQ Mapping

QinQ Mapping 的基本原理

QinQ Mapping 发生在报文从入接口接收进来之后,从出接口转发出去之前。
子接口在向外发送本地VLAN的帧时,将帧中的VLAN Tag替换成外部VLAN的VLAN Tag。
在接收外部 VLAN 的帧时,将帧中的 VLAN Tag 替换成本地 VLAN 的 VLAN Tag。


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


QinQ Mapping 功能一般部署在 ME 边缘设备上,对用户侧上送的报文进行映射操作。将用户报文携带的 Tag 映射用户指定的 Tag 后再接入公网。QinQ Mapping 功能常应用于但不局限于以下场景:

新局点和老局点部署的 VLAN ID 冲突,但是新局点需要与老局点互通。
接入公网的各个局点规划不一致,导致 VLAN ID 冲突,但是各个局点之间不需要互通。公网两端的 VLAN ID 规划不对称。


目前,设备支持以下几种映射方式:
1 to 1 的映射方式
当部署 QinQ Mapping 功能设备上的子接口收到带有一层 Tag 的报文时,将报文中携带的一层 Tag 映射为用户指定的一层 Tag。

2 to 1 的映射方式
当部署 QinQ Mapping 功能设备上的子接口收到带有两层 Tag 的报文时,将报文中携带的两层 Tag 映射为用户指定的一层 Tag。

如图 所示,当在 Device2 和 Device3 的子接口 GE1/0/1.1 上配置了 2 to 1 的映射后,以 PC1 向 PC2发送帧为例:
1. Device2 上的接口 GE1/0/2 向外发送的帧中携带的 Tag 是运营商的 VLAN Tag 50。
2. ISP 网络透传 Device2 发送的帧。
3. Device3 上的接口 GE1/0/1.1 收到 Device2 发送过来的数据帧后,将帧中的单层 Tag 映射为外层 Tag 为 40、内层 Tag 为 30。
PC2 向 PC1 发送帧的流程同理。
由此实现了 PC1 和 PC2 的互通。

QinQ Mapping 与 VLAN Mapping的比较

QinQ 技术总结

通过上面的介绍可以看出, QinQ 技术的发展过程如下:
QinQ 二层隧道(基于接口的 QinQ) —>灵活 QinQ(Selective QinQ/VLAN Stacking) —> QinQ 增强(QinQ Termination&Dot1q Termination&QinQ Stacking),并根据特定应用场景引入动态 QinQ。


QinQ 技术的主要作用为扩展 VLAN 数量及对用户业务进行分流,外层 Tag 可以代表个人业务的DSLAM+业务类型,以及企业业务的不同 VPN Site,或者批发业务的不同 ISP 等。根据网络业务规划的需要, QinQ 技术可以部署在不同的网络层次,可以是接入层、汇聚层、承载层、核心层。


QinQ 技术主要与其它技术相结合,来帮助运营商精细化管理个人业务、企业业务和批发业务。
个人业务包括:HSI 业务、 VOIP/VOD 单播业务、 BTV 业务等。
企业业务包括:接入公网业务、 L3VPN 业务、 L2VPN 业务。
批发业务包括:基于线路的批发业务等。

发布了6 篇原创文章 · 获赞 1 · 访问量 414

猜你喜欢

转载自blog.csdn.net/sinat_38673660/article/details/105212282