1、QinQ概述

     IEEE802.1Q 中定义的 VLAN Tag 域中只有 12 个比特位用于表示 VLAN ID,所以设备最多可以支持 4094 个 VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN 来隔离用户,4094 个 VLAN 远远不能满足需求。QinQ技术采用两层VLAN以解决VLAN受限问题,外层VLAN为公网分配的VLAN ID,内层VLAN封装在数据中对公网透明,在公网中转发时使用公网分配的外层VLAN ID进行转发,在私网内部则使用内层VLAN ID作为私网的VLAN ID,通过QinQ技术可以把VLAN扩大至2094*2094个。因此,私网可以使用少量的公网VLAN资源实现更大的VLAN划分。

2、QinQ报文格式

     如下图,在以传统的VLAN字段后面再添加内层VLAN标签,QinQ报文在公网中带双VLAN标签传输,外层VLAN标签为公网VLAN,内层VLAN标签为私网VLAN,由于添加了4字节的内层VLAN标签,因此MTU的值建议该为1504。

QinQ学习笔记

3、QinQ的交互过程

QinQ的交互过程和VLAN的交互过程差不多,如下图,用户网络B跨运营商网络通信,用户网络B的私网VLAN为1~20,运营商给用户网络B分配的公网VLAN标记为4,用户网络B用户发出携带VLAN标记为1的报文,进入公网时打上外层VLAN标签4在公网中转发,报文到达另一端的用户网络B时去掉外层的VLAN标签,根据内层的私网VLAN进行转发。

QinQ学习笔记

4、QinQ的实现方式

     (1)基本 QinQ

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

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

          a、为具有不同内层 VLAN ID 的报文添加不同的外层 VLAN Tag。
          b、根据报文的原有内层 VLAN 的 802.1p 优先级标记外层 VLAN 报文的 802.1p
优先级。
          c、可以在添加外层 VLAN Tag 的同时对内层用户 VLAN ID 进行修改