什么是QinQ?
QinQ(802.1Q in 802.1Q)也叫VLAN嵌套。使用QinQ可以将带有私网VLAN标签的数据再封装一层公网VLAN标签,使报文带上两层VLAN标签,外部是运营商的公网VLAN标签,内部是用户的私网标签。运营商的公网设备根据外层VLAN标签进行转发,在数据转发出公网时再将公网标签剥离掉,实现用户VLAN数据通过运营商网络的透明传输。
为什么会有QinQ?
IEEE 802.1Q 定义的 VLAN Tag 域中,只有 12 个比特位用于表示 VLAN ID,所以设备最多可以支持 4094 个 VLAN。但在实际应用中,尤其是在城域网中,需要大量的 VLAN 来隔离用户,4094个 VLAN 远远不能满足需求。
QinQ 使整个网络最多可提供 4094×4094 个 VLAN,从而满足了城域网对 VLAN 数量的需求。它具备以下优点:
缓解公网 VLAN ID 资源日益紧缺的问题。
用户可以规划自己的私网 VLAN ID,不会导致与公网 VLAN ID 冲突。
为小型城域网和企业网提供了一种简单、灵活的二层 VPN 解决方案。
当运营商升级网络时,用户网络不必更改原有配置,使用户网络具有了较强的独立性。
QinQ的报文结构
如图 1所示,QinQ报文在运营商网络中传输时带有双层VLAN Tag:
内层 VLAN Tag:为用户的私网 VLAN Tag。
外层 VLAN Tag:为运营商分配给用户的公网 VLAN Tag。