交换机
园区网交换机
数据中心与云计算交换机
行业精选交换系列
工业交换机
意图网络指挥官
无线
放装型无线接入点
墙面型无线接入点
智分无线接入点
室外无线接入点
场景化无线
行业精选无线系列
无线管理与应用
统一运维
身份管理
服务产品
运营商
政府
金融
互联网
制造业
高教/职教
医疗卫生
交通
公共安全
QinQ其标准出自IEEE 802.1ad,业界有多种不同的称呼,比如dot1q-tunneling、Tag in Tag、VLAN VPN、Double VLAN、Stack VLAN。因为IEEE 802.1Q中定义的VLAN Tag域只有12个比特用于表示VLAN ID,所以设备最多只能支持4094个VLAN。在城域网中需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。QinQ的基本原理是在用户报文进入服务提供商网络之前封装上一个服务提供商网络的VLAN Tag,而把用户报文中的原有的VLAN Tag当做数据,使报文带着两层VLAN Tag穿越服务提供商网络。在服务提供商网络中,报文只根据外层VLAN Tag传播,当用户报文离开服务提供商网络时,剥去外层VLAN Tag,在用户网络中根据私网VLAN Tag传播,从而解决VLAN数目不足的问题。
如下图所示,用户网络A的VLAN 1001的报文在进入服务提供商网络之前被添加上一层vlan Tag 1005的外层Tag,使报文携带两层Tag,在服务商网络中根据外层Vlan Tag 1005传播。当报文离开服务提供商网络时,外层Vlan Tag 1005将被剥去,报文在用户网络中仍然以Vlan Tag 1001进行传播。
QinQ示意图
下图显示了双Tag添加的过程:边界设备的入口称为dot1q-tunnel port或简称tunnel port,所有进入边界设备的帧都被当作是Untagged 帧,而不管它实际上是Untagged还是已经带802.1Q Tag头的帧,都被封装上服务商的Tag,VLAN号为Tunnel port的缺省VLAN。
双Tag报文的结构
抓包的报文格式如下:
QinQ的端口
我司在QinQ实现时,引入了两个新的桥接口类型:Dot1q-Tunnel和Uplink口,应用模型如下:
图2-1
上图的应用模型中,客户网络(Customer Bridged Local Area Network)通过Customer Bridge(简称CB)和Provider Bridge(简称PB)连接到服务供应商网络(Provider Bridged Network),服务商为不同的客户提供不同的服务和链接;数据在客户网络内以C-TAG转发,在Customer Network Port被加上(或剥掉)S-TAG,在服务供应商网络内以S-TAG转发;Provider Bridged Network内数据的转发对于Customer Bridged Local Area Network来说是透明的
利用IEEE 802.1Q Tunneling(隧道)功能,服务商可以用一个VLAN(服务商 VLAN)来支持拥有多个VLAN的用户。用户自身的VLAN被保留起来,这样即使进入网络服务商的不同用户流的VLAN相同,也会在服务商的内部网络中被分开传输。隧道通过双Tag来扩展VLAN的范围,一个支持IEEE 802.1Q Tunneling(隧道)的端口称为隧道端口(Tunnel Port)。配置隧道的时候,可以给隧道端口赋一个VLAN作为隧道的专用VLAN。这样,下联的用户网络仅需要用一个服务商的VLAN,用户流在服务商网络中传输时被服务商VLAN包装成双Tag帧,以服务商VLAN在网络中传输。
Uplink端口是用户网络边缘桥的上联口,其属于所有已创建的VLAN,且不属于任何VLAN的UNATG端口集,通过这种方式来使得用户网络内输出的报文全部带有C-TAG((运营商网络TAG));从用户网络输入的C-TAG报文在Dot1q-tunnel口被加上S-TAG(运营商网络TAG),从而成为双TAG报文,Dot1q-tunnel端口只属于一个VLAN,且属于这个VLAN的UNTAG端口集;双TAG报文通过Trunk口与供应商网络内的其它桥进行通讯。
Uplink端口其实就是一种特殊的Trunk口,不同的是,从Uplink口输出的报文都是带Tag的。而从Trunk Port输出的报文,如果是Native VLAN转发过来的,则是不带tag的。
QinQ的分类
基本QinQ
基本QinQ是基于端口实现的。配置了tunnel口后,当该端口接收到报文,设备会为该报文打上tunnel口缺省VLAN 的VLAN Tag。如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是不带VLAN Tag 的报文,该报文就成为带有端口缺省VLAN Tag 的报文。基本QinQ简单,但外层VLAN Tag封装方式不够灵活。
灵活QinQ
灵活QinQ可以为不同的数据流打上不同的外层VLAN Tag:如根据用户VLAN Tag、MAC地址、IP协议、源地址、目的地址、优先级、或应用程序的端口号等信息的不同,封装不同的外层Tag。借助上述分类方法,实际实现了根据不同用户、不同业务、不同优先级等对报文进行外层VLAN Tag封装。
当前,在配置上可以使用的具体策略有:
1)根据内层VLAN Tag添加外层VLAN Tag;
2)根据外层VLAN Tag修改外层VLAN Tag;
3)根据内层VLAN Tag修改外层VLAN Tag;
4)利用ACL,根据ACL添加外层VLAN Tag;
5)利用ACL,根据ACL修改外层VLAN Tag;
6)利用ACL,根据ACL修改内层VLAN Tag;
QinQ的限制
1)路由口不能设置为Tunnel Port。
2)配置为Tunnel的端口不能再启用802.1x功能。
3)配置为Tunnel的端口不能再启用端口安全功能。
4)配置Tunnel Port作为RSPAN的源口时,外部TAG中的VID等于RSPAN VLAN的报文视为监控数据流。
5)对于应用在Tunnel Port上的ACL,若要匹配用户TAG中的VID,需要使用inner关键词。
6)请将与服务商网络相连的用户网络的出口也配置为Uplink口,如果在用户网络中配置了QinQ端口的服务商Tag的TPID值,那么用户网络出口的Uplink口的服务商Tag的TPID值也需要配置为相同值。
7)QinQ不支持热备。
8)接口的MTU 值默认为1500 字节。当为报文加上外层VLAN Tag 后,报文的长度会增加4 个字节,建议用户适当增加运营商网络中各接口的MTU值,至少为1504 字节。
9)在设备上配置了QinQ口之后,若要在设备开启igmp snooping,需要使用SVGL共享模式,否则igmp snooping在QinQ口上将无法正常工作。