QinQ理论
一、技术背景
-
在大型局域网或城域网中,存在 vlan 数量不够用的情况。
-
某些企业的多个分支机构需要通过运营商网络来透传 vlan 信息。
二、定义
-
802.1Q in 802.1Q,是一种简易的实现基于 vlan 的二层 vpn 技术。
-
将一层 vlan Tag 封装到私网报文上,使报文携带两层 VLAN Tag 穿越运营商网络,从而让运营商能够利用一个 VLAN 来为包含多个 VLAN 的用户网络提供服务。
三、技术优势
-
缓解公网 VLAN 资源不足,使私网 vlan 可以重复使用。
-
隔离公网与私网 vlan。
-
用户不感知公网 vlan,维护管理简便。
四、工作原理
-
用户私网报文携带自身私网 vlan tag 进入运营商网络。
-
运营商设备为该报文再封装一个公网 VLAN Tag,不同用户的报文封装上不同的公网 VLAN;运营商设备根据公网进行传输。
-
报文离开运营商网络前剥离公网 vlan tag,使之还原为原始私网报文,发送至另一侧用户网络。
五、QinQ 报文结构

-
目的 MAC 地址。
-
源 MAC 地址。
-
Service VLAN Tag:
-
公网 VLAN Tag。
-
-
Customer VLAN Tag:
-
私网 vlan Tag,在公网中被屏蔽。
-
-
DATA。
-
FCS。
-
Tag。
六、Qinq 分类
-
基本 QinQ
-
无论该端口收到的报文是否携带 VLAN Tag,设备都会为其打上本端口 PVID 的 Tag。
-
如果收到携带 VLAN Tag 的帧,则该帧会形成双 Tag 帧;如果收到未携带 Tag 的帧,则该帧会形成只携带一层 Tag 的帧。
-
-
灵活 QinQ
-
对于从同一个端口收到的报文,可以根据 Customer VLAN 的不同,打上不同 Service VLAN 的 Tag。
-
可根据报文内层 VLAN Tag 的 802.1q 优先级来标记外层 VLAN Tag 的 802.1q 优先级。
-
七、VLAN 透传功能
-
在基本 QinQ 中,可以配置不为用户私网报文添加公网 vlan Tag,而直接传输用户私网 vlan 报文,适用于企业专线业务。
-
注意事项
-
配置 VLAN 透传功能时,需要在报文传输路径的所有端口上都配置允许透析 vlan 通过。
-
配置了用户侧端口对指定 vlan 报文进行透析后,不要在该端口上对在这些 vlan 再进行修改报文 vlan 的相关配置。
-
同一接口上透传 vlan 和 vlan 映射表中的外层 vlan 不允许相同。
-
八、BPDU 透传
-
技术背景
-
BPDU 使用组播发送,交换机默认广播处理,不区分 VLAN,会导致运营商网络连接的所有用户的私有网络都运行在同一个 STP 下,造成网络混乱。
-
-
技术原理
-
PE(运营商边缘设备)收到 BPDU 后,把目的 MAC 地址从 0180-C200-0000 修改为特殊的组播 MAC 地址,一般默认修改为 010F-E200-0003,使得运营商网络设备把 BPDU 当作普通数据帧进行传输。
-
BPDU 离开运营商网络前,PE 将目的 MAC 地址还原为 0180-C200-0000,转发至指定用户的网络。
-
九、VLAN Mapping
-
vlan 映射,也称 vlan 转换,通过配置映射关系,实现对报文 vlan id 的修改,或添加指定 VLAN Tag。
-
1:2 映射
-
为本身携带有一层 VLAN Tag 的报文添加指定的外层 VLAN Tag,使报文携带两层 vlan tag。
-
主要用于实现 QinQ,应用很广泛。
-
HCL实验
基本QinQ
-
实验拓扑

-
注意:
-
此实验需要在模拟器中使用交换机型号 S6850
-
-
实验需求:
-
按照图示配置IP地址
-
在 CE1和 CE2上配置连接 PC 的接口加入 VLAN 10和VLAN20
-
在 PE1和PE2 上配置基本 QinQ,为收到的来自 VLAN 10和VLAN20 的帧打上 VLAN 100 的 Tag,并在发出时剥离 Tag,分别实现两端 VLAN 10 和VLAN20各自的 PC 互通
-
-
实验解法
-
配置IP地址
-
如图在 CE1和 CE2 上创建 VLAN 10和VLAN20,把连接 PC 的接口以 Access 类型加入对应的 VLAN 10和VLAN20,连接上行交换机的接口配置为 Trunk,并允许 VLAN 10 和 VLAN20通过,步骤略
-
配置 QinQ,为收到的来自 VLAN 10 和 VLAN20 的帧打上 VLAN 100 的 Tag,并在发出时剥离 Tag,实现两端 VLAN 10和VLAN20 各自的 PC 互通
步骤 1:在 PE上创建 VLAN 100,配置连接 用户 的接口类型为 Trunk,允许 VLAN 100 通过,并把接口 PVID 设置为 VLAN 100。并在该端口上使能 QinQ 步骤 2:在 PE 上配置连接 P设备 的接口类型为 Trunk,运行 VLAN 100 通过 步骤 3:在 P设备 上创建 VLAN 100,把连接 PE 和 SW3 的接口都配置为 Trunk,并允许 VLAN 100 通过 [PE1]int g1/0/1 port link-type trunk port trunk permit vlan 100 port trunk pvid vlan 100 把接口PVID设置成100 qinq enable --在接口上使能qinq [PE1]int g1/0/2 port link-type trunk port trunk permit vlan 100 [PE2]int g1/0/2 port link-type trunk port trunk permit vlan 100 port trunk pvid vlan 100 qinq enable [PE2]int g1/0/1 port link-type trunk port trunk permit vlan 100 [P]vlan 100 [P]int range g1/0/1 g1/0/2 [P-if-range]port link-type trunk [P-if-range]port trunk permit vlan 100
-
-
验证效果:
-
在PE连接P设备的链路上开启抓包,让PC6pingPC8,PC7pingPC9,发现icmp报文分别被封装了VLAN10,VLAN20的内层tag和VLAN100的外层tag


-
灵活QinQ
-
实验拓扑

-
注意
-
此实验需要在模拟器中使用交换机型号 S6850
-
-
实验需求
-
按照图示配置IP地址
-
按照图示在 CE 上配置连接 PC 的接口分别加入 VLAN 10 和 VLAN 20
-
在 PE上通过 VLAN Mapping 方式配置灵活 QinQ,为收到的来自 VLAN 10 的帧打上 VLAN 100 的 Tag,来自 VLAN 20 的帧打上 VLAN 200 的 Tag,实现两端 VLAN 10 和 VLAN 20 的 PC 互通
-
-
实验解法
-
配置 IP 地址部分略
-
在 CE 上创建 VLAN 10 和 VLAN 20,把连接 PC6 和 PC8 的接口以 Access 类型加入 VLAN 10,连接 PC7 和 PC9 的接口加入 VLAN 20,连接上行交换机的接口配置为 Trunk,并允许 VLAN 10 和 VLAN 20 通过,步骤略
-
配置灵活 QinQ,为收到的来自 VLAN 10 的帧打上 VLAN 100 的 Tag,来自 VLAN 20 的帧打上 VLAN 200 的 Tag,实现两端 VLAN 10 和 VLAN 20 的 PC 互通
步骤 1:在 PE上创建 VLAN 10、VLAN 20、 VLAN 100 和 VLAN 200,配置连接CE 的接口类型为 Hybrid,Tagged 放行 VLAN 10 和 VLAN 20,Untagged 放行 VLAN 100 和 VLAN 200 步骤 2:在 PE的接口上配置 VLAN Mapping,把 VLAN 10 映射至 VLAN 100,VLAN 20 映射至 VLAN 200 步骤 3:配置 PE连接P 的接口类型为 Trunk,允许 VLAN 100 和 VLAN 200 通过 步骤 4:在 P上创建 VLAN 100 和 VLAN 200,把连接 SW1 和 SW3 的接口都配置为 Trunk,并允许 VLAN 100 和 VLAN 200 通过 [PE1] [PE1]vlan 10 [PE1-vlan10]vlan 20 [PE1-vlan20]vlan 100 [PE1-vlan100]vlan 200 [PE1-vlan200]int g1/0/1 [PE1-GigabitEthernet1/0/1]port link-type hybrid [PE1-GigabitEthernet1/0/1]port hybrid vlan 10 20 tagged [PE1-GigabitEthernet1/0/1]port hybrid vlan 100 200 untagged [PE1-GigabitEthernet1/0/1]vlan mapping nest single 10 nested-vlan 100 [PE1-GigabitEthernet1/0/1]vlan mapping nest single 20 nested-vlan 200 [PE1]int g1/0/2 [PE1-GigabitEthernet1/0/2]port link-type trunk [PE1-GigabitEthernet1/0/2]port trunk permit vlan 100 200 [PE2] [PE2]vlan 10 [PE2-vlan10]vlan 20 [PE2-vlan20]vlan 100 [PE2-vlan100]vlan 200 [PE2-vlan200]int g1/0/2 [PE2-GigabitEthernet1/0/2]port link-type hybrid [PE2-GigabitEthernet1/0/2]port hybrid vlan 10 20 tagged [PE2-GigabitEthernet1/0/2]port hybrid vlan 100 200 untagged [PE2-GigabitEthernet1/0/2]vlan mapping nest single 10 nested-vlan 100 [PE2-GigabitEthernet1/0/2]vlan mapping nest single 20 nested-vlan 200 [PE2]int g1/0/2 [PE2-GigabitEthernet1/0/1]port link-type trunk [PE2-GigabitEthernet1/0/1]port trunk permit vlan 100 200 [P] [P]vlan 100 [P-vlan100]vlan 200 [P]int range g1/0/1 g1/0/2 [P-if-range]port link-type trunk [P-if-range]port trunk permit vlan 100 200
-
-
验证效果:在 PE连接P的链路上开启抓包后,使用 PC6 Ping PC8,可以发现 ICMP 报文分别被封装了 VLAN 10 和 VLAN 100 的 Tag;使用 PC7 Ping PC9,可以发现 ICMP 报文分别被封装了 VLAN 20 和 VLAN 200 的 Tag


499

被折叠的 条评论
为什么被折叠?



