VLAN-Mapping

VLAN-Mapping简介:

定义:

VLAN Mapping通过修改报文携带的VLAN Tag来实现不同VLAN的相互映射。

目的:

在某些场景中,两个VLAN相同的二层用户网络通过骨干网络互联,为了实现用户之间的二层互通,以及二层协议(例如MSTP等)的统一部署,需要实现两个用户网络的无缝连接,此时就需要骨干网可以传输来自用户网络的带有VLAN Tag的二层报文。而在通常情况下,骨干网的VLAN规划和用户网络的VLAN规划是不一致的,所以在骨干网中无法直接传输用户网络的带有VLAN Tag的二层报文。

解决这个问题的方法有两个,其中一个是通过QinQ或者VPLS等二层隧道技术,将用户带有VLAN Tag的二层报文封装在骨干网报文中进行传输,可以实现用户带有VLAN Tag的二层报文的透传。但是这种方法一方面需要增加额外的报文开销(增加一层封装),另外一方面,二层隧道技术可能会对某些二层协议报文的透传支持不是非常完善。另外一种方法就是通过VLAN Mapping技术,一侧用户网络的带有VLAN Tag的二层报文进入骨干网后,骨干网边缘设备将用户网络的VLAN(C-VLAN)修改为骨干网中可以识别和承载的VLAN(S-VLAN),传输到另一侧之后,边缘设备再将S-VLAN修改为C-VLAN。这样就可以很好的实现两个用户网络二层无缝连接。

在另一种场景中,如果由于规划的差异,导致两个直接相连的二层网络中部署的VLAN ID不一致。但是用户又希望可以把两个网络作为单个二层网络进行统一管理,例如用户二层互通和二层协议的统一部署。此时也可以在连接两个网络的交换机上部署VLAN Mapping功能,实现两个网络之间不同VLAN ID的映射,达到二层互通和统一管理的目的。

原理描述:

​ 路由器收到带Tag的数据报文后,根据配置的VLAN Mapping方式,决定替换外层Tag中的VLAN ID或优先级;然后进入MAC地址学习阶段,根据源MAC地址+映射后的VLAN ID刷新MAC地址表项;根据目的MAC+映射后VLAN ID查找MAC地址表项,如果没有找到,则在VLAN ID对应的VLAN内广播,否则从表项对应的接口转发。

实现方式:

设备支持基于VLAN ID和802.1p优先级实现VLAN Mapping。

  • 基于VLAN ID

    当部署VLAN Mapping功能设备上的接口收到带有单层VLAN Tag的报文时,将单层报文所携带的VLAN ID替换为新的VLAN ID。

    当部署VLAN Mapping功能设备上的接口收到带有两层VLAN Tag的报文时,将两层报文携带的外层Tag替换为新的VLAN Tag,内层Tag作为数据透传。

  • 基于802.1p优先级

    当部署VLAN Mapping功能设备上的接口收到带有单层VLAN Tag的报文时,将单层报文所携带的802.1p优先级替换为新的802.1p优先级。

    当部署VLAN Mapping功能设备上的接口收到带有两层VLAN Tag的报文时,将两层报文所携带的外层802.1p优先级替换为新的802.1p优先级。

配置基于VLAN ID的VLAN-Mapping:

需求:

如下图所示,客户有两个区,配置有VLNA 10 20,现在需要通过运营商网络进行传递。运营商网络中也有自己的VLAN,所以通过VLAN-Mapping映射,以实现客户两端的通信。

基于VLAN ID的VLAN-Mapping配置

图:基于VLAN ID配置VLAN-Mapping拓扑

配置命令:

LSW1和LSW4配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
#

LSW2和LSW3配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 100 200
#
interface GigabitEthernet0/0/2
qinq vlan-translation enable
//开启vlan转换功能
port link-type trunk
port trunk allow-pass vlan 100 200
port vlan-mapping vlan 10 map-vlan 100
//配置VLAN10映射为VLAN100
port vlan-mapping vlan 20 map-vlan 200
#

注意:

  • 一个接口下接收到的帧携带的VLAN Tag的VLAN ID和映射后的VLAN Tag的VLAN ID不能相同。
  • 映射后的外层VLAN必须存在,且接口必须以Tagged方式加入映射前后的VLAN。
  • VLAN Stacking和VLAN Mapping功能可以同时生效,但是同时配置的多个CE的VLAN ID不能重复,映射前后的VLAN Tag的VLAN ID也不能与之重复。PE的VLAN ID配置要求也一样。
  • 二层以太网接口上只支持基于VLAN ID的VLAN Mapping功能,不支持基于802.1p或者VLAN ID+802.1p优先级的VLAN Mapping功能。
  • 接口下可以配置多条该命令,所有接口下一共可以配置最多128条VLAN Mapping。

LSW2的gi0/0/2收到LSW1的数据后,先把VLNA10.20
映射为100后才会检查接口是否允许该VLAN通过。

运营商与客户的VLAN ID一比一映射
否则在运营商出口都会被映射为第一条VLAN ID

多对一情景下的情况:

如下图,客户这边有多个属于不同VLAN的主机,运营商那边有一台服务器。PC5处于VLAN2,PC6处于VLAN3,在LSW5进行了VLAN-Mapping ,将VLAN2,3映射为VLAN300。LSW6可以接收VLAN300的数据,所以PC7可以收到数据。但是在通信过程中,只能客户机先主动访问服务器,在SW5中留下MAC-VLAN地址表后,以后服务器才可访问客户机,否则服务器不能直接访问客户机。

多对一情景

图:多对一的情景

在多对一这种场景下,只能客户机这边先主动访问服务器,才会在SW5中留下MAC-VLAN地址表,以后服务器才能访问客户机,否则服务器不能直接访问客户机


参考资料:华为HedEx文档


坚持原创技术分享,您的支持将鼓励我继续创作!