- 概述
在以太网 II 数据帧中,VLAN Tag 占 12 个位,理论上实际可用的 VLAN ID 有 2^12=4096 个,也就是我们常所说的有 4K 个可用 VLAN ID 可用,但实际上在某些厂家的设备上可能只有 1000 个 VLAN ID 可用。在城域以太等大型组网中,4K 个 VLAN ID 已经不够用了。为了解决 VLAN ID 资源不够用的问题,IEEE 提出了
VLAN 套 VLAN 的方法,即每一个外层 VLAN 里面还可以有 4094 个内层
VLAN,就是我们说的 QinQ(Dot1Q in Dot1Q),它在 Dot1Q Tag 的基础上再封
装一层 Dot1q Tag,形成一个二层隧道,在有效地解决了 VLAN ID 不够用的同时,还可以把运营商网络与客户网络、不同客户网络等业务隔离开。
QinQ 在在生产中主要解决两个问题:
-
- VLAN ID 不够用;
- 提供一个简易的数据链路层隧道。落实在技术实现上可以归结为两点:
-
- QinQ 封装,在内层 VLAN 的基础上再打上外层 VLAN;
- QinQ 终结,QinQ 封装后直接上送到三层接口。
- QinQ 帧格式
802.1Q-in-802.1Q 简称 QinQ,就是在 802.1Q 的上面再封装一层 802.1Q,由此我们很容易想象出它的结构。原来的 VLAN Tag 标识的 VLAN 我们把它叫做内层或客户 VLAN,记做 C-VLAN;再一次添加的 VLAN Tag 标识我们把它叫做内层
VLAN 或运营商 VLAN,记做 S-VLAN。Dot1Q 帧结构如图 12-01 所示。
图 12-01 QinQ 封装示意图,华为官方技术文档
它实际可以提供多层 VLAN Tag 封装,可以多次封装,封装次数仅受帧长度影响。如果传输层封装 TCP,按最小报头长度 20Bytes 计算,网络层封装 IP,最小报头长度 20Bytes,数据链路层封装以太网 II,最小报头长度 18Bytes,每添加一
次 802.1Q 封闭就增加 4Bytes,一般情况下以太的数据内容都不会填满,甚至更小,给人厚重的信封里装着一张小纸条儿的感觉。如果再算上信令的开销,实际数据的传输效率远比我们想象的要低得多,对于带宽和转发设备的系统性能消耗也是一个不容忽视的问题。好在硬件的性能在快速上升,成本在下降,也许大家根本就不需要在乎这点浪费。
- QinQ 应用之缺省封装
在交换机的某个端口,不管收到什么数据,都给打上一个固定的外层 VLAN Tag,出去的时候剥掉这个外层 VLAN Tag,不关心内层 VLAN 的 VLAN ID 等信息。
3.1 华为实现
3.1.1 实验介绍
图 12-02 QinQ 封装应用,华为实现
如图 12-02,两个企业使用相同的 VLAN 和地址空间,通过由交换机 LSW1 和
交换机 LSW2 构成的运营商网络与分部互联,两个企业的业务不能受到影响。为企业 1 进入运营商网络的数据封装外层 VLAN 10,为企业 2 进入运营商网络的数据封装外层 VLAN 20,出运营商网络时再剥离 VLAN Tag,可满足业务实现要求。
3.1.2 配置实现
这是一个缺省封装的典型应用。在交换机的 GE 0/0/3 端口,企业 1 和企业 2 的两台交换机按常规的业务配置就可以,主要的配置工作在两台运营商交换机上。
在两台运营商交换机的用户接口上配置缺省封装,在连接企业 1 的端口 gig
0/0/2,为进来的数据封装上 VLAN 10 的外层 Tag,在连接企业 1 的端口 gig
0/0/3,为企业 2 的数据封装上 VLAN 20 的外层 Tag。如在连接企业 1 的 gig0/0/1
端口下执行如下命令:
[lsw1-GigabitEthernet0/0/2]port link-type dot1q-tunnel
[lsw1-GigabitEthernet0/0/2]port default vlan 10
在两台运营商交换机的内部接口上,配置接口为 Trunk 模式或 Hybrid 模式,允
许 VLAN 10 和 20 通过,配置命令如下:
[lsw1-GigabitEthernet0/0/1]port hybrid tagged vlan 10 20
经常以上操作,就实现了两个企业业务数据的隔离。
3.1.3 相关配置
LSW1 业务相关配置。
#
sysname LSW1
#
vlan batch 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 port link-type dot1q-tunnel
port default vlan 10
#
interface GigabitEthernet0/0/3 port link-type dot1q-tunnel
port default vlan 20 #
LSW2 业务相关配置。
# sysname LSW2 #
vlan batch 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 port link-type dot1q-tunnel
port default vlan 10
#
interface GigabitEthernet0/0/3 port link-type dot1q-tunnel port default vlan 20
#
LSW3 业务相关配置。
# sysname LSW3 #
vlan batch 2
#
#
interface GigabitEthernet0/0/1
port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/2
port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
LSW4 业务相关配置。
# sysname LSW4 #
vlan batch 2
#
#
interface GigabitEthernet0/0/1
port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2 #
LSW5 业务相关配置。
#
sysname LSW5
#
vlan batch 2
#
#
interface GigabitEthernet0/0/1 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2 #
LSW6 业务相关配置。
#
sysname LSW6
#
vlan batch 2
#
#
interface GigabitEthernet0/0/1 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2 #
3.1.4 验证分别在 PC1 和 PC3 上 ping 10.0.10.3,同时在 LSW1 与 LSW2 之间进行抓包。在 PC1 上 ping 10.0.10.3 时,封装的外层 VLAN ID 是 10。如图 12-03 所示。
图 12-03 QinQ 封装验证,VLAN ID 10 在 PC3 上 ping 10.0.10.3 时,封装的外层 VLAN ID 是 20。如图 12-04 所示。
图 12-04 QinQ 封装验证,VLAN ID 20
3.2 CISCO实现
3.2.1 实验介绍
如图 12-05,两个企业使用相同的 VLAN 和地址空间,通过由交换
机 LSW1 和交换机 LSW2 构成的运营商网络与分部互联,两个企业的业务不能受到影响。为企业 1 进入运营商网络的数据封装外层 VLAN 10,为企业 2 进入运营商网络的数据封装外层 VLAN 20,出运营商网络时再剥离 VLAN Tag,可满足业务实现要求。
图 12-05 QinQ 封装应用,CISCO 实现
3.2.2 配置实现
我们使用的模拟器 Cisco Packet Tracer Student Version 6.2.0.0052 并不支持做这
个实验。CISCO c4500 以上的交换机才支持这个特性。建议使用 GNS3 等模拟环
境。
CISCO 实现与我们在华为的实验实现思路一样,不同的是要执行的命令。在这个实验中,我们需要在 Switch0 和 Switch1 连接用户的接口上执行类似如下命令:
Switch0(config)#int fa 0/2
Switch0(config-if)#switchport mode dot1q-tunnel
Switch0(config-if)#switchport access vlan 10
在 Switch0 和 Switch1 内部接口配置成 Trunk 模式,允许 VLAN 10 和 20 通过,
配置命令如下:
Switch0(config)#int fa 0/1
Switch0(config-if)#switchport mode trunk
Switch0(config-if)#switchport trunk allowed vlan 10,20
4 QinQ 应用之 VLAN 封装在运营商的 PE 设备上,与用户对接的端口可能不致一用户或不止一个
VLAN,这就需要根据不同的内层 VLAN ID,打上相应的外层 VLAN Tag。对于交换机来说,只有是我期待的 VLAN,我才给打上一个合适的外层 VLAN Tag,出去的时候剥掉这一外层 VLAN Tag。只对进入的数据才关心内层 VLAN,出去的数据并不关心。
4.1 华为实现
4.1.1 实验介绍
图 14-06 QinQ 两次封装应用,华为实现
运营商网络由交换机 LSW1 和 LSW2 组织。需要实现为相同的 VLAN 和地址
空间,通过相同的设备转发而不会相互冲突。交换机 LSW1 的 gig 0/0/2 连接企业
1,需要为企业 1 的 VLAN 2 和 VLAN 3 封装外层 VLAN 10;交换机 LSW1 的 gig
0/0/3 连接企业 2,需要为企业 2 的 VLAN 2 和 VLAN 3 封装外层 VLAN 20。
在华为交换机实现这一功能时,需要实现基于 VLAN 的 QinQ 封装的交换机的端口,端口模式是 Hybrid 模式,并且交换机上必须创建有这个外层 VLAN。
4.1.2 配置实现
在两台运营商交换机的用户接口上,配置基于特定 VLAN 的封装,只有是期
望的 VLAN 才封装指定的外层 VLAN,配置命令如下:
[lsw1-GigabitEthernet0/0/2]qinq vlan-translation enable
[lsw1-GigabitEthernet0/0/2]port hybrid untagged vlan 10
[lsw1-GigabitEthernet0/0/2]port vlan-stacking vlan 2 to 3 stack-vlan 10
在两台运营商交换机的内部接口上,配置端口模式为 Trunk 或 Hybrid,允许外层 VLAN 通过,配置命令如下:
[lsw1-GigabitEthernet0/0/1]port hybrid tagged vlan 10 20
在企业交换机上,因为有多个 VLAN 需要通过运营商网络去传,需要配置接
口的模式为 Trunk 或 Hybrid,并配置允许通过的 VLAN,配置命令如下:
[lsw1-GigabitEthernet0/0/1]port hybrid tagged vlan 2 to 3
4.1.3 相关配置
LSW1 业务相关配置。
#
sysname LSW1
#
vlan batch 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
# interface GigabitEthernet0/0/2 qinq vlan-translation enable
port vlan-stacking vlan 2 to 3 stack-vlan 10
port vlan-stacking vlan 2 to 3 stack-vlan 20
LSW2 业务相关配置。#sysname LSW2 # vlan batch 10 20
#interface GigabitEthernet0/0/1 port hybrid tagged vlan 10 20
interface GigabitEthernet0/0/2 qinq vlan-translation enable port hybrid untagged vlan 10 20
#
interface GigabitEthernet0/0/3 qinq vlan-translation enable
#
port vlan-stacking vlan 2 to 3 stack-vlan 10
#
interface GigabitEthernet0/0/3 qinq vlan-translation enable
port hybrid untagged vlan 20
port vlan-stacking vlan 2 to 3 stack-vlan 20
#
LSW3 业务相关配置。
# sysname LSW3
# vlan batch 2 to 3
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3 #
LSW4 业务相关配置。
# sysname LSW4
#
vlan batch 2 to 3
#
#
interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2 #
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3 #
LSW5 业务相关配置。
# sysname LSW5 #
vlan batch 2 to 3
#
#
interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2 #
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3 #
LSW6 业务相关配置。
# sysname LSW6 #
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
4.1.4 验证
分别在 PC1 和 PC7 上 ping 10.0.10.3;在 PC3 和 PC9 上 ping 10.0.11.3,并在
LSW1 与 LSW2 之间抓包,查看 Dot1Q 的封装情况。
在 PC1 上 ping 10.0.10.3 时,封装的内层 VLAN ID 是 2。封装的外层 VLAN ID 是 10。如图 12-07 所示。
图 12-07 两层 VLAN 2,外层 VLAN ID 10
在 PC7 上 ping 10.0.11.3 3,封装的外层
10。如图 12-08
图 12-08 两层 VLAN 3,外层 VLAN ID 10
在 PC3 上 ping 10.0.10.3 2,封装的外层
20。如图 12-09
图 12-09 两层 VLAN 2,外层 VLAN ID 20
在 PC9 上 ping 10.0.11.3 3,封装的外层
20。如图 12-10
图 12-10 两层 VLAN 封装,内层 VLAN ID 是 3,外层 VLAN ID 是 20
4.2 CISCO实现
没有在 CISCO 的技术文档中看到对这一特性的支持。
- QinQ 应用之 QinQ 终结
一般情况下网络设备处理带有 VLAN Tag 的数据帧时,需要将 VLAN Tag 剥离
掉之后才送往网络层处理,某些场景下,我们也需要将带有 VLAN Tag 的数据帧直接送往网络层处理,这就会用到 Dot1Q Termination 或 QinQ Termination,其中前者是终结一层 VLAN Tag,后者是终结两层 VLAN Tag。从运营商网络过来的数据,携带 VLAN Tag,直接上送到网络层处理。运营商
通常会把带一层或两层 VLAN Tag 的数据帧传递给我们,我们需要同时终结掉一层或两层 VLAN,三层接口才能识别。不管是终结一层或两层 VLAN Tag,都需要借助子接口实现。
关于在路由器上终结一层 VLAN Tag,我们在第 11 章《VLAN》中,单臂路由的形式实现 VLAN 间通信一节,也有相关介绍。有兴趣的读者可以查阅。
5.1 华为实现
5.1.1 实验介绍
这个实验的目的是为演示终结一层 VLAN Tag 和终结两层 VLAN Tag 的配置实现,这两种场景在生产中都很常见。
图 14-11 终结一层或两层 VLAN Tag
某企业的分公司与运营商交换机 LSW2 相连,运营商将分公司的 VLAN 2 封装在运营商 VLAN 10,VLAN 3 和 VLAN 4 封装在运营商 VLAN 20。在运营商与企业总部接入侧 LSW3 上,去掉外层 VLAN 10,只打一层 Tag VLAN 2;对于
VLAN 20,则保留两层 VLAN Tag,即内部的 VLAN 3 或 VLAN 4 和外部的 VLAN
20。在用户总部与运营商接入的接口,需要创建两个子接口,分别用来与 VLAN 2(已经剥掉外层的 VLAN 10)和运营商 VLAN 20(包含内层 VLAN 3 和 4)对
接。设计此实验的目的是为同时实现终结一层和两层 VLAN Tag。
5.1.2 配置实现
在终结 VLAN Tag 的操作一般都是在客户侧设备上实现的,在本例中就是 LSW4。可以在同一个物理接口下面同时终结一层 VLAN 和两层 VLAN,都需要创建子接口。
一次终结一层 VLAN Tag,配置命令如下:
[lsw4]int gig 0/0/1.1
[lsw4-GigabitEthernet0/0/1.1]ip address 10.0.10.1 255.255.255.0 一次终结两层 VLAN Tag,配置命令如下:
[lsw4]int gig 0/0/1.2
[lsw4-GigabitEthernet0/0/1.2]qinq termination pe-vid 10 ce-vid 3 to 4
[lsw4-GigabitEthernet0/0/1.2]ip address 10.0.11.1 255.255.255.0
[lsw4-GigabitEthernet0/0/1.2]arp broadcast enable
5.1.3 相关配置
LSW1 业务相关配置。
#
sysname LSW1
#
vlan batch 2 to 4
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2 to 4
#
interface GigabitEthernet0/0/2
port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
interface GigabitEthernet0/0/4 port hybrid pvid vlan 4
port hybrid untagged vlan 4 #
LSW2 业务相关配置。
# sysname LSW2 # vlan batch 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable
port hybrid untagged vlan 10 20
port vlan-stacking vlan 2 stack-vlan 10
port vlan-stacking vlan 3 to 4 stack-vlan 20 #
LSW3 业务相关配置。
# sysname LSW3 # vlan batch 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 10
port hybrid tagged vlan 20
port hybrid untagged vlan 10 #
LSW4 业务相关配置。
#
sysname LSW4
#
vlan batch 100
#
#
interface Vlanif100
ip address 10.0.20.1 255.255.255.0
#
#
interface GigabitEthernet0/0/1.1
ip address 10.0.10.1 255.255.255.0
#
interface GigabitEthernet0/0/1.2 qinq termination pe-vid 20 ce-vid 2 to 3 ip address 10.0.11.1 255.255.255.0 arp broadcast enable
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 100
port hybrid untagged vlan 100
#
5.1.4 验证
在这一实验中,因为环境环境条件的限制,我们无法在此展示以上实验的抓包效果。我在项目当中,华为 s9300 交换机上实际应用过这一技术,虽然没有实际的验证效果,但是仍然可以向读者保证上面的实现没有问题。
我们通过抓包,看一下 VLAN Tag 封装吧!在 LSW3 和 LSW4 之间抓包,可以看到 VLAN 2 只打了一层 VLAN Tag 2; VLAN 3 和 VLAN 4 还打了外层 VLAN Tag 20。
图 12-12 VLAN 2 只打了一层 VLAN Tag 2
图 12-13 内层 VLAN Tag 3,外层 VLAN Tag 20
图 12-14 内层 VLAN Tag 4,外层 VLAN Tag 20
5.2 CISCO实现
CISCO 支持一次终结一层 VLAN Tag 或两层 VLAN Tag,也是通过子接口的形
式实现的。但是我们的模拟器 Cisco Packet Tracer 6.2.0.0052 并不支持这个特性,
没有实验环境,只能贴出配置,有条件的同学自己做一下实验。
以华为实验拓扑为例,我们假设 LSW4 是一台 CISCO 设备,用户侧设备
LSW4 连接运营商的接口也是 gig 0/0/1。相关配置如下:终结一层 VLAN,在 CISCO 的教材中有单臂路由的实现,命令如下:
Router(config)# interface gigabitethernet0/0/1.1
Router(config-subif)# encapsulation dot1q 2
Router(config-subif)# ip address 10.0.10.1 255.255.255.0 终结两层 VLAN:
Router(config)# interface gigabitethernet0/0/1.2
Router(config-subif)# encapsulation dot1q 20 second-dot1q 3-4
Router(config-subif)# ip address 10.0.11.1 255.255.255.0
在运营商侧设备与用户总部相连的接口上,需要在这个接口进行配置,使它既
可以带一层 VLAN Tag,又可以带两层 VLAN Tag,可以通过本征 VLAN+Trunk 的
方式实现。
我们假设 LSW3 是一台 CISCO 设备,是一台运营商侧设备,它连接客户侧设
备的接口是 gig 0/0/2。相关配置如下:
Switch(config)#int gig 0/0/2
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk native vlan 10
Switch(config-if)#switchport trunk allowed vlan 20
Switch(config-if)#
- QinQ 总结
QinQ 技术在现网中的应用场景多数是城域以太,不管是缺省封装还是基于内层 VLAN 的封装,都可以解决 VLAN ID 不够用和不同用户业务隔离的目的。
当多层封装送到用户侧,需要使用 VLAN 终结技术,不管是一次终结一层 VLAN Tag 还是一次终结两层 VLAN Tag,都是通过子接口形式实现的。只有剥离
掉外层数据,才能被三层接口接受。
- VLAN Mapping
VLAN Mapping 其实就是修改 VLAN Tag 里面的 VID 字段,将一个或多个
VLAN 通过映射的方式,转换成另外一个 VLAN,可以只针对外部 VLAN 进行转
换,也可以同时针对内外和外部 VLAN 转换,可以修改一层 Tag 的 VLAN ID 字段,
也可以修改两层 Tag 的 VLAN ID 字段。对于两层 Tag,可以只修改外层,也可以同时修改外层与内层。可以一对一或一对多映射,也可以多对一或多对多转换。可解决 VLAN ID 冲突和两网融合时的 VLAN ID 不一致。
运营商中可能同时连接多个企业,其 VLAN ID 的规划可能存在相同情况,为
了区分两个 VLAN ID 相同的企业的数据,可以将其中一个企业的数据在进入运营商网络时,把它的 VLAN ID 修改,到数据离开运营商网络时再改回来,可以达到区分不同企业数据的目的。它的好处是在 VLAN ID 充足的情况下,避免冲突的同时,没有再增加一次 802.1Q 封装,不会增加数据帧的长度。它可以将一个或多个客户 VLAN(C-VLAN),映射为一个运营商 VLAN(S-VLAN),实际上只打一层 VLAN Tag,它不扩展 VLAN ID 空间,但是可以提供隔离和隧道,它最明显的优势就是减少了 4Bytes 的 Dot1Q 报头封装。
另外一个应用是当两个企业合并,需要对网络进行整合,原来规划不同的
VLAN ID 需要将它们做相互映射,以达到互联互通的目的。
7.1 单层VLAN Mapping之华为实现
修改 Dot1Q 帧的 VLAN ID 字段,可以解决 VLAN ID 冲突和两网融合导致的
VLAN ID 不一致。
7.1.1 实验介绍
如下图 12-15 所示,通过 VLAN Mapping 技术融合 VLAN 2 与 VLAN 3,使两个网络能够互通。
图 12-15 通过 VLAN Mapping 技术融合 VLAN 2 与 VLAN 3
这个实验稍加扩展就可以用在运营商网络的 VLAN ID 冲突场景。运营商网络中连接了企业的两个甚至更多的分部,在某个分部的数据进入运营商网络时做一次转换,离开时再转换回来。
7.1.2 配置实现实现两个不同的 VLAN 互通,需要在互连的交换机上配置 VLAN Mapping 技术。并且在接入的端口同时以 Tagged 的方式加入到映射前和映射后 VLAN,要求参与实现映射的端口是 Trunk 模式或 Hybrid 模式,因为只有这两种方式才能对 VLAN 进行打 tag。如图 12-15 所示,配置一个端口的 VLAN Mapping,可以使用
如下命令实现:
<lsw1>system
Enter system view, return user view with Ctrl+Z.
[lsw1]int gig 0/0/1
[lsw1-GigabitEthernet0/0/1]qinq vlan-translation enable
[lsw1-GigabitEthernet0/0/1]port hybrid tagged vlan 2 to 3
[lsw1-GigabitEthernet0/0/1]port vlan-mapping vlan 2 map-vlan 3
[lsw1-GigabitEthernet0/0/1]quit
[lsw1]int gig 0/0/2
[lsw1-GigabitEthernet0/0/2]qinq vlan-translation enable
[lsw1-GigabitEthernet0/0/2]port link-type trunk
[lsw1-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 to 3
[lsw1-GigabitEthernet0/0/2]port vlan-mapping vlan 3 map-vlan 2 [lsw1-GigabitEthernet0/0/2]
7.1.3 相关配置
LSW1 上业务相关配置如下:
# sysname LSW1
#
vlan batch 2 to 3
#
#
interface GigabitEthernet0/0/1 qinq vlan-translation enable port hybrid tagged vlan 2 to 3
port vlan-mapping vlan 2 map-vlan 3
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable port link-type trunk port trunk allow-pass vlan 2 to 3
port vlan-mapping vlan 3 map-vlan 2
#
#
LSW2 上业务相关配置如下:
# sysname LSW2 #
vlan batch 2
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
#
LSW3 上业务相关配置如下:
# sysname LSW3 #
vlan batch 3
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
#
7.1.4 验证在 PC1 上 ping PC2,并在各段线路上抓包,查看 VLAN Tag 封装变化情况。数据从 PC1 出来,进入交换机 LSW2 之前,没有封装 VLAN Tag。
图 12-16 数据从 PC1 出来,没有封装 VLAN Tag
数据从 LSW2 出来之后,进入交换机 LSW1 之前,封装上了 802.1Q VLAN Tag,VLAN ID 是 2。
图 12-17 数据从 LSW2 出来,封装上了 802.1Q Tag,VLAN ID 是 2
数据从 LSW1 出来之后,进入交换机 LSW3 之前,802.1Q VLAN Tag 的 VLAN
ID 变成了 3。
图 12-18 经过 LSW1 的转换,VLAN 2 变成 VLAN 3 数据从 LSW3 出来之后,进入 PC2 之前,剥离掉 802.1Q VLAN Tag 封装。
图 12-19 经过 LSW1 的转换,VLAN 2 变成 VLAN 3
7.2 单层VLAN Mapping之CISCO实现暂缺。
7.3 多层VLAN Mapping之华为实现修改 QinQ 帧的外层或外层与内层 VLAN ID 字段,以解决 VLAN ID 冲突或网络融合时的 VLAN ID 不一致。我们的实验只修改外层,解决 VLAN ID 冲突的问
题。
7.3.1 实验介绍如下图 12-20 所示,通过修改 QinQ 帧的外层 VLAN ID,解决企业外层 VLAN ID 与运营商网络中的 VLAN ID 冲突的问题。
LSW9 与 LSW10 模拟运营商网络,在运营商网络内,使用外层 VLAN 100,在用户网络内,使用外层 VLAN 10 和 VLAN 20。
图 12-20 转换外层 VLAN 和 VLAN ID
7.3.2 配置实现
LSW9 和 LSW10 模拟运营商网络,重点配置在这两台交换机上。在 LSW9 的
gig 0/0/2 口,需要在这一个端口开启 VLAN 转换(VLAN Translation),设置这个
端口端口模式为 Hybrid,并且对对所有需要通过的内层和外层 VLAN 打 Tag。在 LSW9 的 gig 0/0/1 口与内部网络相连,正常打外层 VLAN Tag 即可。业务实现如
下命令:
<lsw9>system
Enter system view, return user view with Ctrl+Z.
[lsw9]int gig 0/0/2
[lsw9-GigabitEthernet0/0/2]qinq vlan-translation enable
[lsw9-GigabitEthernet0/0/2]port hybrid tagged vlan 10 20 100 200
[lsw9-GigabitEthernet0/0/2]port vlan-mapping vlan 10 map-vlan 100
[lsw9-GigabitEthernet0/0/2]port vlan-mapping vlan 20 map-vlan 200 [lsw9-GigabitEthernet0/0/2]quit
[lsw9]int gig 0/0/1
[lsw9-GigabitEthernet0/0/1] port hybrid tagged vlan 100 200 [lsw9-GigabitEthernet0/0/1]
7.3.3 相关配置交换机 LSW3 上业务相关配置如下:
# sysname LSW3 #
vlan batch 2 to 3 10
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
交换机 LSW5 上业务相关配置如下:
# sysname LSW5 #
vlan batch 2 to 3 20
#
#
interface GigabitEthernet0/0/1 qinq vlan-translation enable
port vlan-stacking vlan 2 to 3 stack-vlan 20
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2 port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
交换机 LSW1 上业务相关配置如下:
# sysname LSW1 #
vlan batch 2 to 3 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable port hybrid untagged vlan 10
port vlan-stacking vlan 2 to 3 stack-vlan 10
#
interface GigabitEthernet0/0/3 qinq vlan-translation enable port hybrid tagged vlan 20 port vlan-stacking vlan 2 to 3 stack-vlan 20
#
#
交换机 LSW9 上业务相关配置如下:
# sysname LSW9 #
vlan batch 10 20 100 200
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 100 200
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable port hybrid tagged vlan 10 20 100 200 port vlan-mapping vlan 10 map-vlan 100 port vlan-mapping vlan 20 map-vlan 200
#
#
交换机 LSW10 上业务相关配置如下:
# sysname LSW10 #
vlan batch 10 20 100 200
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 100 200
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable port hybrid tagged vlan 10 20 100 200 port vlan-mapping vlan 10 map-vlan 100 port vlan-mapping vlan 20 map-vlan 200
#
#
交换机 LSW2 上业务相关配置如下:
# sysname LSW2 #
vlan batch 2 to 3 10 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10 20
#
interface GigabitEthernet0/0/2 qinq vlan-translation enable port hybrid untagged vlan 10
port vlan-stacking vlan 2 to 3 stack-vlan 10
#
interface GigabitEthernet0/0/3 qinq vlan-translation enable port hybrid tagged vlan 20 port vlan-stacking vlan 2 to 3 stack-vlan 20
#
#
交换机 LSW4 上业务相关配置如下:
# sysname LSW4 #
vlan batch 2 to 3 10
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
#
交换机 LSW5 上业务相关配置如下:
# sysname LSW5 #
vlan batch 2 to 3 20
#
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 2 to 3
#
interface GigabitEthernet0/0/2 port hybrid pvid vlan 2
port hybrid untagged vlan 2
#
interface GigabitEthernet0/0/3 port hybrid pvid vlan 3
port hybrid untagged vlan 3
#
#
7.3.4 验证
在 PC1 上 ping 测试 PC3,在交换机相连的端口抓包,检查 VLAN Tag 封装情况。
数据从 PC1 出来,进入交换机 LSW3 之前,没有封装 VLAN Tag。如图 12-21
所示。
图 12-21 数据从 PC1 出来,没有封装 VLAN Tag
数据从 LSW3 出来,进入交换机 LSW1 之前,封装 VLAN Tag,VLAN ID 是 2。如图 12-22 所示。
图 12-22 数据从 LSW1 出来,封装一层 VLAN Tag
数据从 LSW1 出来,进入交换机 LSW9 之前,封装外层 VLAN,VLAN Tag 是 10。如图 12-23 所示。
图 12-23 数据从 LSW1 出来,封装两层 VLAN Tag
数据从 LSW9 出来,进入交换机 LSW10 之前,封装的外层 VLAN,ID 是 10,
被修改成 100,内层 VLAN 保持不变。如图 12-24 所示。
图 12-24 数据从 LSW9 出来,外层 VLAN Tag ID 被修改成 100
数据从 LSW10 出来,进入交换机 LSW2 之前,封装的 VLAN ID 100 的外层 VLAN Tag,ID 被修改回 10。如图 12-25 所示。
图 12-25 数据从 LSW10 出来,外层 VLAN Tag ID 被修改回 10
数据从 LSW2 出来,进入交换机 LSW4 之前,去掉外层 VLAN Tag 封装,只封
装内层 VLAN Tag,VLAN ID 是 2。如图 12-26 所示。
图 12-26 数据从 LSW4 出来,去掉外层封装 VLAN Tag 封装
数据从 LSW4 出来,进入用户计算机 PC3 之前,去掉内层 VLAN Tag 封装。
图 12-16 进入用户计算机 PC3 之前,去掉所有的 VLAN Tag 封装
7.4 多层VLAN Mapping之CISCO实现
暂缺。