QinQ技术如何应用于现实生活,为什么被称为是二层VPN

QinQ是唯一的一种应用于城域网的技术----2层VPN技术,也称为802.1Q tunnel

802.1Q tunnel:会打上两次标签,外层标签用来区分不同的客户端,穿越中间的运营商的交换机,内层标签为客户端对vlan打的标签,相当于客户端的交换机和运营商的交换机之间连接起来,然后在客户端直接打一条tunnel隧道

一、QinQ技术的基础概述
QinQ技术通过在以太帧中堆叠两个802.1Q报头,有效地扩展了VLAN数目,使VLAN的数目最多可达4094x4094个。同时,多个VLAN能够被复用到一个核心VLAN中。

MSP通常为每个客户建立一个VLAN模型,用通用属性注册协议/通用VLAN注册协议(GARP/GVRP)自动监控整个主干网络的VLAN,并通过扩展生成树协议(STP)来加快网络收敛速度,从而为网络提供弹性。

SVLAN技术作为初始的解决方案是不错的,但随着用户数量的增加,SVLAN模型也会带来可扩展性的问题。因为有些用户可能希望在分支机构间进行数据传输时可以携带自己的VLAN ID,这就使采用QinQ技术的MSP面临以下两个问题:

  • 第一,第一名客户的VLAN标识可能与其他客户冲突;
  • 第二,服务提供商将受到客户可使用标识数量的严重限制。

如果允许用户按他们自己的方式使用各自的VLAN ID空间,那么核心网络仍存在4096个VLAN的限制。

二、QinQ技术的原理与报文形式
802.1Q中定义的Tag字段只有12个比特用于表示VLAN ID,所以设备最多可以支持4094个VLAN。

而在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。因此诞生了QinQ技术。

  1. QinQ基本原理
    是在用户报文进入运营商网络之前封装上一个运营商网络的VLAN Tag,而把用户报文中的原有的VLAN Tag当做数据,使报文带着两层VLAN Tag穿越运营商网络。
  2. QinQ是如何传播的
    在运营商网络中,报文只根据外层VLAN Tag(即运营商网络的VLAN Tag)传播,当用户报文离开运营商网络时,剥去运营商网络的VLAN Tag,报文在用户网络中,根据私网VLAN Tag传播。
  3. QinQ报文有固定的格式
    就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多4个字节。这4个字节用作外层标签,即运营商网络的公网VLAN Tag。
    原802.1Q的Tag用作内层标签,即私网VLAN Tag。

QinQ是对802.1Q的扩展,其核心思想是将用户私网VLAN tag封装到公网VLAN tag中,报文带着两层tag穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。其特点是基于802.1Q协议中的Trunk端口概念,要求隧道上的设备都必须支持802.1Q协议,不需要信令的支持,仅仅通过静态配置即可实现,特别适用于小型的,以三层交换机为骨干的企业网或小规模城域网。

  1. QinQ的双帧格式
    在QinQ封装中,各个设备厂商的内层TPID(Tag Protocol Identifier,标签协议标识)(即内层Etype)的取值为0x8100,但是对于外层TPID(即外层EType)的取值,各个厂商所使用的值可以是不相同的。
  2. QinQ技术双VLAN如何实现
    QinQ技术使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如下图所示,用户网络A的私网VLAN为VLAN 1~10,用户网络B的私网VLAN为VLAN 1~20。 运营商为用户网络A分配的VLAN为VLAN 3, 为用户网络B分配的VLAN为VLAN 4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为 3的VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为 4的VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠。

QinQ的报文格式如图所示:
Cisco ❀ QinQ技术-802.1Q tunnel_QinQ的传递结构与报文格式

QinQ技术分为基本QinQ和灵活QinQ两种

  1. 基本QinQ
    基于端口方式实现。开启端口的基本 QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省 VLAN的 VLAN Tag。如果接收到的是已经带有 VLAN Tag的报文,该报文就成为双 Tag的报文;如果接收到的是不带 VLAN Tag的报文,该报文就成为带有端口缺省 VLAN Tag的报文。
  2. 灵活QinQ
    灵活 QinQ 是对 QinQ 的一种更灵活的实现,它是基于端口与 VLAN 相结合的方式实现的,可以实现以下功能:
    为具有不同内层 VLAN ID的报文添加不同的外层 VLAN Tag。

指定外层标签的User Priority
指定外层标签的TPID(即外层EType)

三、QinQ技术的相关协议
QinQ也称Stacked VLAN 或Double VLAN。标准出自IEEE802.1ad,当前该标准仍处于草案阶段。其实现为在802.1q协议标签前再次封装802.1q协议 标签,其中一层标识用户系统网络(customer network),一层标识网络运营网络(service provider network),将其扩展实现用户线路标识。当前部分交换机可以支持QinQ功能。

QinQ 允许运营商为每个用户分配最大到4K的第二个VLAN ID。运营商VLAN标记在IPDSLAM网络侧插入,在用户侧删除。BAS通过识别用户的第二个VLAN确定用户线路标识。QinQ也较好地解决了VLAN(最大4k) 数量不足问题。
在802.1Q中规定TPID(Tag Protocol Identifier)的EType的值为0x8100。在QinQ封装中,各个设备厂商的内层TPID的EType的值为0x8100,但是对于外层TPID的EType,各个厂商所使用的值不相同。

在IEEE 802.1ad中规定外层TPID的 EType字段的定义为0x88a8。

四、QinQ技术的特点

  1. 没有协议交互过程,不需要任何配置;
  2. 与业务不关联,对DSLAM无影响;
  3. 扩展了4k VLAN;
  4. 二层VLAN统一规划,同时要求运营商二层网络必须支持二层VLAN tag,对设备要求比较高。
  5. 报文有效载荷降低,同时造成可能分片、重组;
  6. 协议扩展性不强,不支持用户其他控制属性。

相对基于MPLS的二层VPN,QinQ具有如下特点:

  • 为用户提供了一种更为简单的二层VPN隧道;
  • 不需要信令协议的支持,可以通过纯静态配置实现;
  • 由于QinQ的实现是基于802.1Q协议中的Trunk端口概念,要求隧道上的设备都必须支持802.1Q协议。

QinQ主要可以解决如下几个问题:

  1. 缓解日益紧缺的公网VLAN ID资源问题;
  2. 用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突;
  3. 为小型城域网或企业网提供一种较为简单的二层VPN解决方案

QinQ功能应用场景:
应用场合:Internet 业务、VOD/VoIP、大客户接入及VPN、FMC全业务

五、QinQ技术在交换机的配置
客户端配置:设置ISP接口为trunk接口

sw1(config)#int f0/1
sw1(config-if)#switchport access vlan 100
sw1(config-if)#switchport mode dot1q-tunnel
sw1(config-if)#Protocol-tunnel cdp

六、QinQ技术的发展方向
灵活QinQ QinQ实现方式 QinQ实现方式一种是基于端口的QinQ,一种是基于流分类的灵活QinQ。

  1. 基于端口的QinQ的实现机理如下:
    当该设备端口接收到报文,无论报文是否带有VLAN Tag,交换机都会为该报文打上本端口缺省VLAN的VLAN Tag。这样,如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是untagged的报文,该报文就成为带有端口缺省VLAN Tag的报文。由于基于端口的QinQ比较容易实现,所以业界主流厂家的三层交换机都支持。 基于端口的QinQ的缺点是外层Vlan Tag封装方式死板,不能根据业务种类选择外层Vlan Tag封装的方式,从而很难有效支持多业务的灵活运营。
  2. 基于流分类的灵活QinQ实现机理如下: 基于流的QinQ特性(Selective QinQ),可灵活根据流分类的结果选择是否打外层VLAN tag、打上何种外层VLAN tag:如根据用户Vlan tag、MAC地址、IP协议、源地址、目的地址、优先级、或应用程序的端口号等信息实施灵活QinQ特性。借助上述流分类方法,实际实现了根据不同用户、不同业务、不同优先级等对报文进行外层VLAN tag封装,对多种业务实施不同承载的方案。

创作者:Eric· Charles