QinQ是对802.1Q的扩展,其核心思想是将用户私网VLAN tag封装到公网VLAN tag上,报文带着两层tag穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。其特点是简单而易于管理,不需要信令的支持,仅仅通过静态配置即可实现,特别适用于小型的,以三层交换机为骨干的企业网或小规模城域网。
基于传统的802.1Q协议的网络,假设某用户的网络1和网络2位于两个不同地点,并分别通过服务提供商的PE1、PE2接入骨干网,如果用户需要将网络1的VLAN200-300和网络2的VLAN200-300互联起来,那么必须将CE1、PE1、P和PE2、CE2的相连端口都配置为 Trunk属性,并允许通过VLAN200-300,这种配置方法必须使用户的VLAN在骨干网络上可见,不仅耗费服务提供商宝贵的VLAN ID资源(一共只有4094个VLAN ID资源),而且还需要服务提供商管理用户的VLAN号,用户没有自己规划VLAN的权利。
为了解决上述问题,QinQ协议向用户提供一个唯一的公网VLAN ID,这个特殊的VLAN ID被称作Customer-ID,将用户私网VLAN tag封装在这个新的Customer-ID中,依靠它在公网中传播,用户私网VLAN ID在公网中被屏蔽,从而大大地节省了服务提供商紧缺的VLAN ID资源。
在QinQ模式下,PE上用于用户接入的端口被称作用户端口。在用户端口上使能QinQ功能,并为每个用户分配一个Customer-ID,此处为3,不同的PE上应该为同一网络用户分配相同的Customer-ID.当报文从CE1到达PE1时,带有用户内部网络的VLAN tag 200-300,由于使能了QinQ功能,PE上的用户端口将再次为报文加上另外一层VLAN tag,其ID就是分配给该用户的Customer-ID.此后该报文在服务提供商网络中传播时仅在VLAN 3中进行且全程带有两层VLAN tag(内层为进入PE1时的tag,外层为Customer-ID),但用户网络的VLAN信息对运营商网络来说是透明的。当报文到达PE2,从PE2 上的客户端口转发给CE2之前,外层VLAN tag被剥去,CE2收到的报文内容与CE1发送的报文完全相同。PE1到PE2之间的运营商网络对于用户来说,其作用就是提供了一条可靠的二层链路。
可见,使用QinQ组建VPN具有如下特点:
● 无需信令来维持隧道的建立,通过简单的静态配置即可实现,免去了繁杂的配置,维护工作。
● 运营商只需为每个用户分配一个Customer-ID,提升了可以同时支持的用户数目;而用户也具有选择和管理VLAN ID资源的最大自由度(从1-4096中任意选择)。
● 在运营商网络的内部,P设备无需支持QinQ功能,即传统的三层交换机完全可以满足需求,极大地保护了运营商的投资。
● 户网络具有较高的独立性,在服务提供商升级网络时,用户网络不必更改原有的配置。
因此,无论是对于运营商还是用户来说,采用QinQ方式组建VPN都是一种低成本,简便易行,易于管理的理想方式。
QinQ典型组网
下面通过一个典型的组网方案来说明QinQ的应用。
该网有两个用户,用户1需要将自己在A点的VLAN 1-100和D点的VLAN 1-100连接起来,用户2需要将自己在B点的VLAN 1-200和C点的VLAN 1-200连接起来,传统的802.1Q组网是不可能实现这一需求的,因为两个用户所使用的VLAN ID号有冲突,但是利用QinQ却可轻易地实现这一需求。
在中间的网络为服务提供商的网络,它由四台S3552实现VPN用户的接入(网络中可能还有其它交换机,此处为简单起见,略去),相互之间通过环状千兆链路连接实现链路备份,使能STP协议。这四台设备之间通过Trunk端口连接,可透传任意VLAN报文,为了达到自动VLAN学习的目的,还可启动GVRP协议。需要注意的是,所有这些二层协议只能在网络侧的端口使能,而不能在用户接入端口上使能,避免用户私有网络受到服务提供商网络的干扰。
用户1使用Customer-ID 30的QinQ端口进行接入,用户2使用Customer-ID 40的QinQ端口进行接入,保证它们在公网上通过Trunk端口进行传输,互不影响。
用户可在私网内部运行STP协议,实现链路备份。例如,用户1的A点使用了两条链路连到S3552,STP可自动地将一条链路断开,避免形成环路。注意,此时S3552的两个QinQ接入端口均不能使能STP协议,这是因为它们属于用户私网拓扑,与公网无关。
QinQ对其它特性的影响
由于在用户接入端口使能了QinQ,导致VPN用户的报文在网络上传播时带有两层VLAN tag,此时三层交换机的三层交换功能对于这种特殊的报文失效,因为交换机无法正确地获取报文内携带的IP地址等信息。但我们不必为此担心,因为VPN报文只在Customer-ID对应的VLAN内作二层转发,根本无需使用三层信息进行转发。而对于运营商网络内的其它普通报文,由于属于不同的VLAN,三层转发不会受到影响。
在使能QinQ的用户接入端口,仍然可以使用acl规则对报文进行流分类,流限速,重定向等qos/acl*作,这无疑有利于运营商面向不同用户提供不同层次的差别服务。对于用户来说,选择适合自己需求的服务能够节省开支;而运营商也可以借此吸引更广泛的用户对象。