Access、Trunk、Hybrid模式详解

华为交换机转发VLAN数据时的行为详解

华为交换机与思科交换机的接口工作模式略有不同,华为多了一个Hybrid,且默认情况下使用的就是Hybrid(混杂)模式

前言

在这篇Blog下,有些同学对VLAN的tag、untag有疑惑,此篇将刨根解牛,详细对VLAN流量的转发进行一个阐述

HUAWEI交换机的Hybrid接口(混杂模式)详解与实验配置演示

参考阅读

VLAN间通信(多臂路由、单臂路由、三层交换、VLAN聚合)
交换机高级特性之Port-isolate(端口隔离)
交换机高级特性之MUX-VLAN(多路VLAN)

一、交换机的行为

  • 交换机的行为无非分为接收数据、转发数据
  • 任何流量在一个交换机内部转发时必须携带标签
  • PC接收到的流量必须为正常流量,不识别携带标签的流量

1.1 接收数据

流量进入一个接口时,先看该流量是否携带标签:

1、若未携带标签将压入该接口的PVID,之后先查看本接口的允许列表是否允许该vlan,若允许将在交换机上寻找出口,否则丢弃;

2、若携带标签,直接查询本接口的允许列表知否允许该VLAN

注:在流量进入接口时,仅关注vlan允许列表中的数字,不关注是否标记,即Tag、Untag

1.2 转发数据

流量从一个接口出时,查询该接口的vlan允许列表,关注是否标记

1、查看允许列表的U、T
2、若为U,即剥离标签进行转发
3、若为T,即携带标签进行转发

二、工作模式横向对比

Huawei交换机存在三种工作模式

  • Access,介入模式
  • Trunk,中继模式
  • Hybrid,混杂模式

2.1 接入模式

接入模式: 该接口的pvid和允许列表必须为同一个vlan,且允许列表中只能为允许一个vlan,必然是不标记;这就很明显,因为同一个VLAN间是可以直接二层互通的,所以带有相同VLAN的流量从交换机下来时,要剥离VLAN标签;详见下面的实验

使用场景:常用于连接PC、终端设备、路由器等不能识别VLAN标记的流量的

2.2 中继模式

中继模式: 该接口的允许列表可以在存在多个,但是不能自主定义该接口允许列表中,是否对某个vlan的流量进行标记;永久规则为PVID对应vlan不标记,其他vlan全部标记;

使用场景:常用于两台交换机之间相连的链路,用于承载所有的VLAN流量的

2.3 混杂模式

**混杂模式:**该接口的允许列表可以在存在多个,可以自主定义对各个vlan的是否标记;

使用场景:任意场景,前提是会用;Hybrid的灵活性很高的

以上,是理论部分,下面开始进行实验详解


三、实验详解

实验拓扑如下:

在这里插入图片描述
说明:此实验作为验证演示,不做需求的设定,即详细演示前面的理论部分

3.1 几种模式的配置

对于PC连接交换机的接口,常配置为接入模式,配置实现

1、首先先创建VLAN,然后将接口划分至vlan2内

[SW2]vlan batch 2 3
[SW2-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 2
#
return

2、查看vlan的活跃端口

在这里插入图片描述
解释:

PVID: PC流量来到交换机上打上PVID为2的标签,PVID就是VLAN
VLAN List中的数字: 当交换机收到这个流量后,需要转发出去,看看允许列表有没有这个PVID,此时是有的,即此交换机可以发出这个流量
VLAN List中的字母: 交换机从这个接口发出流量是剥离VLAN标签为2的流量,即同一VLAN的流量可以二层互通

给VLAN2内添加一台设备,测试同意VLAN内的数据通信过程

在这里插入图片描述
配置这个PC6连接交换机的接口为access模式

[SW2-GigabitEthernet0/0/5]di th
#
interface GigabitEthernet0/0/5
 port link-type access
 port default vlan 2
#
return

在这里插入图片描述
分析此时PC1pingPC6的流量走势:

在这里插入图片描述

将G0/0/5口修改为Hybrid模式

[SW2]int g0/0/5
[SW2-GigabitEthernet0/0/5]di th
#
interface GigabitEthernet0/0/5
 port hybrid pvid vlan 2  #对于不带标签的流量来到这个接口对其打上VLAN2的标签
 port hybrid untagged vlan 2  #这个接口发出数据时,剥离VLAN2的标签
#
return

在这里插入图片描述
这样一来,PC1发出的流量到SW2上后,其希望找到一个U:2的接口,即G0/0/5,转发出去即可

给PC机配置IP并测试,可见,与预期相符

在这里插入图片描述

验证若接口发送出数据的时候不剥离标签会怎么样;即在G0/0/5接口上不Untagged VLAN 2

[SW2-GigabitEthernet0/0/5]di th
#
interface GigabitEthernet0/0/5
 port hybrid pvid vlan 2
 port hybrid tagged vlan 2
#
return

在这里插入图片描述
PC机测试:

在这里插入图片描述

抓包(ARP的包)可见,二层过后有一个802.1Q的封装,所以PC6并不能识别这个带标签的流量

在这里插入图片描述
交换机之间连接的链路需要为Trunk,你有没有想过为什么是Trunk?

Trunk作为承载所有VLAN流量的一种工作模式,在上面的理论篇就可以得出,Trunk模式本质上允许了所有VLAN,即对所有的VLAN打上了标签;那Hybrid能不能实现呢?
如果看到这里你还没有答案,心里还没有数,翻回去重新看看吧

配置交换机之间的链路的工作模式

在这里插入图片描述

[SW2-GigabitEthernet0/0/2]di th
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 2 to 3
#
return

查看其端口的活跃状态,可见Trunk就是对接口通过的所有VLAN打上标签

在这里插入图片描述
其实Trunk模式也可以对PVID进行修改,这里请思考一下,为什么一般不做修改?

在这里插入图片描述
使用Hybrid来实现Trunk的配置

[SW2-GigabitEthernet0/0/2]di th
#
interface GigabitEthernet0/0/2
 port hybrid tagged vlan 2 to 3
#
return

在这里插入图片描述
注意:Huawei的Trunk是需要交换机对端都进行配置,而Cisco只需要在一端进行配置

简单验证一下,同网段下的不同VLAN的二层互通,当然要使用Hybrid,思考一下为什么只能使用Hybrid?

在这里插入图片描述
需求:VLAN2中的PC1能ping通VLAN3中的PC2,二者都处于10.0.10.0/24网段内

如果我们使用的是Access模式,那么配置如下

[SW2-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 2
#
return

[SW2-GigabitEthernet0/0/4]di th
#
interface GigabitEthernet0/0/4
 port link-type access
 port default vlan 3
#
return

在这里插入图片描述
此时,就是两PC处于同一网段,但是由于VLAN的天然隔离,肯定是不能互通的,抓包甚至都看不到ARP的报文,因为根本上就不处于同一个广播域

在这里插入图片描述
解决:
使用Hybrid模式

[SW2-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port hybrid pvid vlan 2
 port hybrid tagged vlan 2
 port hybrid untagged vlan 3
#
return

[SW2-GigabitEthernet0/0/4]di th
#
interface GigabitEthernet0/0/4
 port hybrid pvid vlan 3
 port hybrid tagged vlan 3
 port hybrid untagged vlan 2
#
return

在这里插入图片描述
PC机测试,可见使用Hybrid模式完成了不同VLAN间的通信

在这里插入图片描述

以上就是对三种模式做了配置以及流量走势的分析,简单总结以下就是:你Trunk、Access能做的,我Hybrid都能做,并且我Hybrid还能定义untagged


3.2 DHCP分配地址时对于native vlan的处理方式

实验拓扑如下:

在这里插入图片描述

接口的配置不做过多赘述,配置如下

[SW2]int g0/0/1
[SW2-GigabitEthernet0/0/1]di th
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 2 to 3
#
return
[SW2-GigabitEthernet0/0/1]int g0/0/2
[SW2-GigabitEthernet0/0/2]di th     
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 2 to 3
#
return
[SW2-GigabitEthernet0/0/2]int g0/0/3
[SW2-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 2
#
return
[SW2-GigabitEthernet0/0/3]int g0/0/4
[SW2-GigabitEthernet0/0/4]di th
#
interface GigabitEthernet0/0/4
 port link-type access
 port default vlan 3
#
return
[SW2]int g0/0/1 
[SW2-GigabitEthernet0/0/1]di th
#
interface GigabitEthernet0/0/1
 port hybrid tagged vlan 2 to 3
#
return
[SW2-GigabitEthernet0/0/1]int g0/0/2
[SW2-GigabitEthernet0/0/2]di th
#
interface GigabitEthernet0/0/2
 port hybrid tagged vlan 2 to 3
#
return
[SW2-GigabitEthernet0/0/2]int g0/0/3
[SW2-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 2
#
return
[SW2-GigabitEthernet0/0/3]int g0/0/4
[SW2-GigabitEthernet0/0/4]di th
#
interface GigabitEthernet0/0/4
 port hybrid pvid vlan 3
 port hybrid untagged vlan 3
#
return
[SW2-GigabitEthernet0/0/4]int g0/0/5
[SW2-GigabitEthernet0/0/5]di th
#
interface GigabitEthernet0/0/5
#
return
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]di th
#
interface GigabitEthernet0/0/2
 port hybrid tagged vlan 2 to 3
#
return
[SW1-GigabitEthernet0/0/2]int g0/0/3
[SW1-GigabitEthernet0/0/3]di th
#
interface GigabitEthernet0/0/3
 port hybrid tagged vlan 2 to 3
#
return
[SW1-GigabitEthernet0/0/3]int g0/0/1
[SW1-GigabitEthernet0/0/1]di th
#
interface GigabitEthernet0/0/1
 port hybrid tagged vlan 2 to 3
#
return

路由器的配置如下

[R1-Ethernet0/0/0.1]di th
#
interface Ethernet0/0/0.1
 dot1q termination vid 1
 ip address 192.168.1.1 255.255.255.192
 arp broadcast enable
 dhcp select global
#
return
[R1-Ethernet0/0/0.1]int e0/0/0.2
[R1-Ethernet0/0/0.2]di th
#
interface Ethernet0/0/0.2
 dot1q termination vid 2
 ip address 192.168.1.65 255.255.255.192
 arp broadcast enable
 dhcp select global
#
return
[R1-Ethernet0/0/0.2]int e0/0/0.3
[R1-Ethernet0/0/0.3]di th
#
interface Ethernet0/0/0.3
 dot1q termination vid 3
 ip address 192.168.1.129 255.255.255.192
 arp broadcast enable
 dhcp select global
#
return

DHCP池塘的配置划分

[R1]dhcp enable
[R1]ip pool a
[R1-ip-pool-a]di th
#
ip pool a
 gateway-list 192.168.1.1
 network 192.168.1.0 mask 255.255.255.192
 dns-list 8.8.8.8
#
return
[R1-ip-pool-a]ip pool b
[R1-ip-pool-b]di th
#
ip pool b
 gateway-list 192.168.1.65
 network 192.168.1.64 mask 255.255.255.192
 dns-list 8.8.8.8
#
return
[R1-ip-pool-b]ip pool c
[R1-ip-pool-c]di th
#
ip pool c
 gateway-list 192.168.1.129
 network 192.168.1.128 mask 255.255.255.192
 dns-list 8.8.8.8
#
return 

PC获取地址进行测试:

  • VLAN2的PC

在这里插入图片描述
在这里插入图片描述

  • VLAN3的PC

在这里插入图片描述
在这里插入图片描述

  • VLAN1的PC,可见并没有获取到IP

在这里插入图片描述

请思考这是为什么?

  • Cisco的Trunk也可以配置规则,默认允许所有VLAN通过,并且给除native vlan以外所有VLAN打上标签,Cisco的Trunk可以称为VLAN的允许列表,可以修改哪些VLAN可以过,哪些VLAN不可以过

  • Cisco中的VLAN 1 是native vlan;路由器的子接口也是可以为他服务的

  • Huawei中的VLAN 1 如果没有被标记,上面的路由器的子接口不能为其服务,所以要标明其所属VLAN

综上所属,要在连接路由器的交换机上的接口上配置对VLAN1 打上标签,这样路由器就可以使用自己的子接口对这个VLAN下的PC进行地址分配了

[SW1-GigabitEthernet0/0/1]di th
#
interface GigabitEthernet0/0/1
 port hybrid tagged vlan 1 to 3
#
return

此时,VLAN1下的PC就可以愉快的获取到IP地址了

在这里插入图片描述

至此,理论+实验完成,你学废了吗?

猜你喜欢

转载自blog.csdn.net/qq_41959899/article/details/109774790