VLAN 再见,我选择用 QinQ!1000 字带你详细了解 QinQ 技术
你好,这里是网络技术联盟站。
VLAN(虚拟局域网)技术使用户可以不受距离和物理位置的限制进行通信,极大地简化了网络管理。然而,随着设备和用户数量的大规模增长,由于可扩展性有限,最多只能支持 4094 个 VLAN,以及对可用网络链路的低效利用,VLAN 已不能满足日益增长的网络规模需求,于是 VXLAN(虚拟可扩展局域网)和 QinQ 技术应运而生。
本文瑞哥给大家带来的是 QinQ 技术,让我们直接开始!
什么是 QinQ?
QinQ 技术标准来自 IEEE 802.1ad,是 802.1Q 协议的扩展。QinQ 在原有 802.1Q 报文头的基础上增加了一层 802.1Q 标签(VLAN 标签),通过双层标签,VLAN 数量增加到 802.1Q。
QinQ 将用户的私网 VLAN Tag 封装在公网(服务提供商)网络 VLAN Tag 中,使双层 VLAN Tag 的报文穿越运营商的骨干网(公网)。在公网中,报文按照外层 VLAN Tag(即公网 VLAN Tag)传递,屏蔽用户的私网 VLAN Tag。
QinQ 数据包具有固定的格式,通常一个带有 802.11Q 标记的数据包被封装在另一个 802.1Q 标记中,这就是“QinQ”这个名字的由来。在传输过程中,报文根据公网外层的 VLAN Tag 进行转发。内层 VLAN 标记被视为也在公共网络上传输的数据。使用这种双标记形式,QinQ 数据包比普通的 802.1Q VLAN 标记数据包多四个字节。
QinQ 功能
为用户提供一个简单的 L2 VPN 隧道。
不需要协议和信令的支持;由静态配置实现。
屏蔽用户的 VLAN ID,来节省服务商的公网 VLAN ID 资源
用户可以规划私网 VLAN ID,避免与公网及其他用户 VLAN ID 冲突。
QinQ 的实现方式
QinQ 有两种实现方式:
基本 QinQ
QinQ 端口在收到报文时,不管报文是否有 VLAN TAG,都会在报文中添加该端口默认 VLAN 的 VLAN TAG。在报文从 QinQ 端口转发出去之前,删除 TAG 的 out 层再转发。该方法的缺点是不能根据报文的 VLAN TAG 选择 VLAN 的封装外层。
选择性 QinQ
选择性 QinQ 解决了基本 QinQ 的缺点,QinQ 端口收到报文时,根据报文的 VLAN TAG 为报文添加指定的外层 VLAN TAG。如果不指定 VLAN TAG 的封装出层,则将端口默认 VLAN 的 VLAN TAG 添加到报文中。
QinQ 工作原理
如下图有两个路由器,分别称为 R1 和 R2,SW1、SW2 和 SW3 组成服务提供商网络站点。
我们希望在两个站点之间使用 VLAN 12,服务提供商将其从一个站点传输到另一个站点。
我们将使用 VLAN 12 处理其站点之间的流量,服务提供商已决定使用 VLAN 123 为该客户传输所有内容,以下是在 R1 和 R2 之间发送帧时会发生的情况:
每当 R1 发送流量时,它都会为 VLAN 12 标记其帧。一旦到达服务提供商,SW1 将添加一个额外的 VLAN 标记 (123),一旦 SW3 将帧转发到 R2,它将删除第二个 VLAN 标记并从 R1 转发原始标记的帧。
我们来看下报文变化:
原始以太网数据帧:
客户端 802.1Q 数据帧:
服务提供商两端交换机基于 Trunk 的 802.1Q 数据帧:
总结
IEEE 802.1Q 隧道 (QinQ) 专为通过其网络为多个客户传输流量的服务提供商而设计,QinQ 隧道用于维护客户特定的 VLAN 和第 2 层协议配置,即使不同客户使用相同的内部 VLAN ID。这是通过在客户的帧进入服务提供商的网络时将服务提供商 VLAN (SPVLAN) 标签插入到客户的帧中,然后在帧离开网络时剥离标签来实现的。
版权声明: 本文为 InfoQ 作者【wljslmz】的原创文章。
原文链接:【http://xie.infoq.cn/article/776cda3a5fc83c2dc7d3e2614】。未经作者许可,禁止转载。
评论