QinQ技术简介

一 QinQ的产生背景



IEEE802.1Q 中定义的 VLAN Tag 域中只有 12 个比特位用于表示 VLAN ID ,所以设备最多可以支持 4094 个 VLAN 。在实际应用中,尤其是在城域网中,需要大量的 VLAN 来隔离用户, 4094 个 VLAN 远远不能满足需求。



二 QinQ的作用及原理



设备提供的端口 QinQ 特性是一种简单、灵活的二层 ××× 技术,它通过在运营商网络边缘设备上为用户的私网报文封装外层 VLAN Tag ,使报文携带两层 VLAN Tag 穿越运营商的骨干网络(公网)。



在公网中,设备只根据外层 VLAN Tag 对报文进行转发,并将报文的源 MAC 地址表项学习到外层 Tag 所在 VLAN 的 MAC 地址表中,而用户的私网 VLAN Tag 在传输过程中将被当作报文中的数据部分来进行传输。



QinQ 特性使得运营商可以用一个 VLAN 为含有多个 VLAN 的用户网络服务。如 图1 所示,用户网络 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 范围存在重叠,在公网传输时也不会产生混淆。





图1 QinQ 功能示意图



QinQ 特性使网络最多可以提供 4094X4094 个 VLAN ,满足城域网对 VLAN 数量的需求,它主要解决了如下几个问题:



l              缓解日益紧缺的公网 VLAN ID 资源问题。



l              用户可以规划自己的私网 VLAN ID ,不会导致和公网 VLAN ID 冲突。



l              为小型城域网或企业网提供一种较为简单的二层 ××× 解决方案。



三 QinQ的报文结构



QinQ 报文在公网传输时带有双层 VLAN Tag ,内层 VLAN Tag 为用户私网 VLAN Tag ,外层 VLAN Tag 为运营商分配给用户的 VLAN Tag ,报文结构如 图2 所示。





图2 QinQ 的报文结构



&   说明:



接口的 MTU 值默认为 1500 字节。当为报文加上外层 VLAN Tag 后,报文的长度会增加 4 个字节,建议用户适当增加运营商网络中各接口的 MTU ( Maximum Transmission Unit ,最大传输单元)值,至少为 1504 字节。






四 QinQ的实现方式



QinQ 可分为两种:基本 QinQ 和灵活 QinQ 。



(1)        基本 QinQ



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



(2)        灵活 QinQ



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



l              为具有不同内层 VLAN ID 的报文添加不同的外层 VLAN Tag 。



l              根据报文的原有内层 VLAN 的 802.1p 优先级标记外层 VLAN 报文的 802.1p 优先级。



l              可以在添加外层 VLAN Tag 的同时对内层用户 VLAN ID 进行修改。



五 VLAN Tag的TPID值可调功能



TPID ( Tag Protocol Identifier ,标签协议标识)是 VLAN Tag 中的一个字段,用于表示 VLAN Tag 的协议类型, IEEE 802.1Q 协议规定该字段的取值为 0x8100 。



IEEE802.1Q 协议定义的以太网帧的 VLAN Tag 结构如 图3 所示。





图3 以太网帧的VLAN Tag 结构



设备可以根据 TPID 值来识别报文中是否携带对应的 VLAN Tag :当端口收到报文时,根据配置的 TPID 值与报文中相应的字段进行比较,如果二者一致,则表示报文中携带相应的 VLAN Tag 。



另外,不同厂商的设备可能将 QinQ 报文外层 VLAN Tag 的 TPID 字段设为不同的值。为了和这些设备兼容,用户可以自行配置该 TPID 的值,使得发送到公网中的 QinQ 报文携带的 TPID 值与其他厂商相同,就可以实现与其他厂商的设备互通。



由于 TPID 字段在以太网报文中所处位置与不带 VLAN Tag 的报文中协议类型字段所处位置相同,为避免网络中报文转发和接收造成混乱,不允许用户将 TPID 值配置为 表 1 中列举的常用协议类型值。



表1 常用协议类型值



协议类型

对应值

ARP

0x0806

PUP

0x0200

RARP

0x8035

IP

0x0800

IPv6

0x86DD

PPPoE

0x8863/0x8864

MPLS

0x8847/0x8848

IPX/SPX

0x8137

IS-IS

0x8000

LACP

0x8809

802.1x

0x888E

集群

0x88A7

设备保留

0xFFFD/0xFFFE/0xFFFF

 


转载于:https://blog.51cto.com/wythe/199000