博文大纲:

  • vlan是什么?
  • 华为交换机的三种接口模式:
    1、access模式。
    2、trunk模式。
    3、hybrid模式。
  • hybrid接口的工作原理。
  • 华为设备的各种接口模式应用场景及配置。

一、什么是vlan?

vlan就是虚拟局域网,是在二层交换机上将一个物理的LAN在逻辑上划分成多个广播域(多个vlan)的通信技术。同一个vlan内的主机可以直接通信,而不同vlan之间进行通行的话,则需要依赖三层网络设备(三层交换机、路由器等)。

vlan具有灵活性和可扩展性等特点,使用vlan技术有以下好处:

  1. 控制广播,每个vlan都是独立的广播域,这样就减少了广播对网络带宽的占用,提高了网络传输效率,并且一个vlan出现了广播风暴不会影响其他vlan。
  2. 增强网络安全性,由于只能在同一vlan内的端口之间交换数据,不同vlan的端口之间不能直接访问,因此vlan可以限制不同部门之间的通信。从而提高了部门之间的安全性。
  3. 简化网络管理,对于交换式以太网,如果对某些用户重新进行网段分配,需要网络管理员对网络系统的物理结构重新进行调整,甚至需要追加网络设备,这样会增大网络管理的工作量,而对于采用vlan技术的网络来说,一个vlan可以根据部门职能,对象组或应用将不同地理位置的用户划分为一个逻辑网段,在不改动网络物理连接的情况下,可以任意地改变网段。

vlan分为动态vlan和静态vlan两种:

1、静态vlan:也称为基于端口的vlan,是目前最常见的vlan实现方式。静态vlan就是指明交换机的某个端口属于哪个vlan,需要手动配置,当主机连接到交换机端口上,主机就被分配到了对应vlan中。

2、动态vlan:动态vlan的实现方法很多,目前最普遍的实现方法是基于MAC地址的动态vlan。基于MAC地址的动态vlan,是根据主机的MAC地址自动将其指派到指定的vlan中,这种方式的vlan划分,最大的优点是,当用户物理位置移动时, 即从一个交换机移动到其他交换机时,所对应的vlan不会变,这种方法的缺点是初始化时所有的用户都必须进行配置,如果用户多的话,这种配置方法非常不方便,所以这种划分方法不适用于大型局域网。

vlan的范围参照:

Cisco和华为的交换机设备所支持的vlan范围(vlan ID)是一样的,下面是具体的vlan范围作用:

华为设备的交换机接口类型介绍及配置

交换机所有的接口默认都属于vlan 1,我们正常创建vlan时,使用的vlan ID取值范围在2~1001之间,这些ID号足够我们使用了。

关于vlan的介绍就不多叙述了,在vlan中还有一个概念,就是vlan标签,这里不解释了,可以理解为,交换机为了区分某一个数据帧属于哪个vlan而给数据帧本身打了一个标识,用于区分不同vlan的数据帧。

二、华为交换机的三种接口模式。

华为交换机的接口模式有三种:Access、Trunk和Hybrid。其中,Access、Trunk接口模式和Cisco交换机的接口模式一样,Hybrid接口是华为设备特有的接口模式,Hybrid接口和Trunk接口的相同之处是都可以允许多个vlan的流量通过并打标签,不同之处在于Hybrid接口可以允许多个vlan的报文发送时不打vlan标签。

华为交换机的三种接口模式功能介绍如下:

  • Access接口模式:Access接口必须加入某一vlan(这也是默认所有接口都属于vlan1的原因),对交换机而言,该接口只能允许一个vlan流量通行,且不打vlan标签,用于连接PC、服务器、路由器(非单臂路由)等设备。
  • Trunk接口模式:该接口默认允许所有vlan通行(用于承载多个vlan通行),且对每个vlan通过打不同标识加以区分,主要用于连接交换机等设备。
  • Hybrid接口模式:华为交换机接口默认为Hybrid模式(Cisco交换机默认为Access模式),既可以实现Access接口的功能,也可以实现Trunk接口的功能,可以在没有三层网络设备(路由器、三层交换机)的情况下实现跨vlan通信和访问控制(当然了,也有局限性,就是各个vlan中的IP地址都属于同一网段,否则,仍然需要通过三层网络设备来进行通信,)。相对于Access接口和Trunk接口具有更高的灵活性与可控性。

关于Access和Trunk接口模式是在Cisco设备中就有的概念,其作用于特性完全和华为设备一致,所以关于这两个接口模式就不说了,下面写一下Hybrid接口的作用。

Hybrid接口的作用体现为可以实现流量隔离与互通:

  • 流量隔离:Hybrid接口本身拥有强大的访问控制能力,通过对接口的配置可以隔离来自于同一个vlan的流量,也可以隔离来自于不同vlan的流量。
  • 流量互通:Hybrid接口可以使不同的vlan之间在二层实现通行。Cisco交换机设备需要借助三层网络设备才可以实现不同vlan之间的通信,总的来说,二层的解决方案永远比三层的解决方案要好,因为二层的效率要高于三层。所涉及的网络层次越高,效率越低。

hybrid接口的工作原理。

Hybrid接口能够灵活地控制一个接口上数据帧vlan标签的添加和移除。例如,在接口对端的设备是交换机的情况下,可以配置接口允许某一些vlan的数据帧携带vlan标签通过该接口,而另外一些vlan则不携带vlan标签发出。在接口对端是终端主机的情况下,可以配置发送到这些接口的数据帧不携带任何vlan标签。

Hybrid接口的工作原理涉及接口的三个属性,分别是untag列表、tag列表及PVID(port-base VLAN ID,基于端口的vlan ID)。

Hybrid接口的三个属性介绍:

  • untag列表:只在接口发送数据帧时起作用,如果需要发送的数据的vlan标签在接口的untag列表中,那么将去除标签发送数据。
  • tag列表:作用于接收被标记的数据帧和发送数据帧。其作用类似于一个允许的vlan标识列表,当接口收到带有vlan标签的数据帧时,该接口的tag列表相当于vlan的允许列表,不在列表中的数据帧将被丢弃;当接口发送数据帧时,数据的vlan标签在接口的tag列表中,将保持标签发送数据帧,否则丢弃数据帧。
  • PVID:接口的默认PVID为vlan 1,PVID只在接收没有标记帧时起作用,PVID用于在接收未标记数据帧时给数据帧打上当前的PVID标识(有没有觉得就是Cisco交换机把某个Access接口加入某个vlan后的特性?嗯,很相似,甚至就是这样,不同的是,Cisco交换机的Access接口给接收的数据帧打标签时,只能用于连接的是终端设备,而不能是交换机设备,而华为的交换机就不一样了,它可以给任何设备发送的数据帧进行打标签,包括交换机、路由器、终端设备等)。

从上面的三个接口属性可以看到,从功能特性上说,Hybrid接口中的untag列表和PVID列表,用于实现Access接口的特性,而tag列表用于实现Trunk特性,但又不局限于此,因为Hybrid接口相比于Access接口和Trunk接口可以更加灵活(同样原理上也不是太容易理解,我更觉得就Cisco设备的那两种接口类型就挺好,哈哈),适用于各种场景。

1、根据PVID封装802.1Q。

在网络通过vlan隔离的情况下,可以将流量分为两种类型,一种是标记流量(已经打过vlan标签了,交换机可以识别该数据帧属于哪个vlan);一种是未标记流量,也就是原始的数据帧(终端设备发送或接受的数据帧就是原始数据帧)。当交换机接收到一个标记流量时,将通过其802.1Q()标签来识别其vlan ID,但是当交换机接收到一个未标记流量时,将根据接口PVID对该流量进行802.1Q封装,在华为设备中,每种类型的接口都有默认的PVID,如下所示:

华为设备的交换机接口类型介绍及配置

任何进入交换机的流量都应该被标记,如果进入交换机的流量携带vlan标签,那么它本身是可以标识vlan信息的,如果进入交换机的流量未被标记(如终端设备发送到交换机的流量),将通过接口的PVID进行标记,而标记的目的则是为后续的转发做准备。Hybrid接口的PVID值默认是vlan 1,意味着所有接口默认都属于vlan1。

2、根据untag列表和tag列表进行转发

交换机的Hybrid接口基于untag列表和tag列表接收或发送数据,其工作原理如下:

  • 每个Hybrid接口都有一个默认的untag列表,其中包含一个或多个vlan编号,默认值为vlan 1。
  • 每个Hybrid接口都有一个tag列表,默认值为空,也可以设置包含一个或多个vlan编号。
  • Hybrid接口收到数据帧后,首先检查该数据帧是否携带标签,如果携带标签,则检查本接口的tag列表,若tag列表中存在数据帧封装的vlan ID,则接受,否则丢弃;如果不携带标签,那么根据Hybrid接口的PVID进行标记。
  • Hybrid接口发送数据帧之前,检查本接口的untag和tag列表,若数据帧封装的vlan ID存在untag列表中,则去掉802.1Q封装发送原始数据帧;若存在于tag列表中,则保留802.1Q封装并发送带标签的数据帧;若两个列表中都没有数据帧的vlan ID,则不发送该数据帧。

上述原理比较抽象,总的来说就是:

  • 数据包到达一个接口,若携带了vlan标签(一般出现在交换机与交换机互联的接口上),就只检查tag列表,tag列表中有这个vlan ID,那么就接收这个数据包,反之丢弃。可以理解为tag列表就是一个白名单,在白名单上的vlan ID都允许通过,不在白名单上,就不允许通过;如果没有携带vlan标签,这样就好办了,交换机给该数据包打上该接口本身的PVID,就OK了。
  • 数据包要从某个接口发送出去的话,那么需要检查本接口的untag和tag这两个列表。若数据包的vlan ID存在untag列表中,就给该数据去掉vlan ID,使其变成原始以太网数据帧(一般用于连接终端设备或路由器(单臂路由除外)时,相应的vlan ID会出现在untag列表,去掉vlan ID发送给终端设备或路由器,因为终端设备或路由器(单臂路由除外)不能识别vlan ID)。若存在tag列表,则直接放行,保留数据原有的vlan ID。

从上面可以得出结论,接口收到数据包后的处理方式,和Hybrid接口的tag列表、PVID这两个属性有关;接口发送数据包时的处理方式,与Hybrid接口的untag列表和tag列表有关。

上个图,来更直观的看一下Hybrid接口收发数据帧时的处理流程吧!

华为设备的交换机接口类型介绍及配置

Hybrid接口和Trunk接口都可以给多个vlan打标签,也可以传输多个vlan的流量;但是Hybrid接口可以允许多个不同vlan的报文发送时不打标签(把相应的vlan ID添加到untag列表中即可实现咯),而Trunk接口只允许默认vlan 的报文发送时不打标签。

三种类型的接口可以共同存在一台交换机上,但Trunk接口不能直接切换为Hybrid接口,只能先设为Access接口,再设置为Hybrid接口(Hybrid接口可以直接设置为Trunk接口,不管如何切换,都有一些限制,如Trunk接口切换至Access接口时,需要删除或更改一些接口配置,才可以更换为Access接口,牵扯原理比较多,举个栗子,华为交换机设置为Trunk接口时,需要手动允许所有vlan流量通过,才可以正常工作,否则默认只允许vlan1的流量通过Trunk接口,这样Trunk接口便没有存在的意义了,而Access只允许一个vlan的流量通过,所以,若想从Trunk改为Access,必须先更改原有的“允许所有vlan通过”相关的配置)。

啰嗦了这么多,举个栗子来配置一下吧,将理论应用到实际,才可以更好使用该技术。

环境如下(只是单纯的为了举栗子,不以生产环境来说):

华为设备的交换机接口类型介绍及配置

需要实现如下需求:

  • 生产部客户端和销售部客户端可以相互访问,而且只能访问服务器1。
  • 财务部客户端不能和任何部门通信,只能访问服务器2。

配置如下:
1、自行配置各个PC及服务器的IP地址,无须配置网关,因为各个vlan的IP地址处于同一网段。
2、配置交换机S1:

<S1>un ter mo            <!--关闭日志提示消息-->
<S1>sys           <!--进入系统视图-->
[S1]vlan ba 2 3 10           <!--创建相应vlan,vlan 1默认存在,不用创建-->
[S1]in g0/0/1           <!--进入该接口-->
[S1-GigabitEthernet0/0/1]port link-type hybrid           
<!--
         配置接口模式为Hybrid,默认就是这个模式,
这里只是为了将命令写下来,在以后的配置中将省略该步骤
                              -->
[S1-GigabitEthernet0/0/1]port hybrid pvid vlan 1           
<!--同上,默认所有接口的PVID为vlan 1,也是为了展示命令-->
[S1-GigabitEthernet0/0/1]port hybrid untagged vlan 1 to 2   <!--将vlan 1-2加入untag列表-->
[S1-GigabitEthernet0/0/1]in g0/0/2            <!--进入该接口-->
[S1-GigabitEthernet0/0/2]port hybrid untagged vlan 1 to 2  <!--将vlan 1-2加入untag列表-->
[S1-GigabitEthernet0/0/2]in g0/0/3           <!--进入该接口-->
[S1-GigabitEthernet0/0/3]port hybrid pvid vlan 10           <!--设置接口PVID为vlan 10-->
[S1-GigabitEthernet0/0/3]port hybrid untagged vlan 3 10  <!--将vlan 3和vlan 10加入untag列表-->
[S1-GigabitEthernet0/0/3]in g0/0/4            <!--进入该接口-->
[S1-GigabitEthernet0/0/4]port hybrid untagged vlan 1 to 2    <!--将vlan 1-2加入untag列表-->
[S1-GigabitEthernet0/0/4]port hybrid tagged vlan 3 10           <!--将vlan 3 10加入tag列表-->

2、配置交换机S2(所有配置命令字在S1的配置过程中都将注释写了下来,下面的配置自行对照S1的注释即可看懂,我犯懒癌了,就省略了):

<S2>un ter mo
[S2]vlan ba 2 3 10
[S2]in g0/0/1            
[S2-GigabitEthernet0/0/1]port hybrid untagged vlan 1 to 2
[S2-GigabitEthernet0/0/1]port hybrid tagged vlan 3 10
[S2-GigabitEthernet0/0/1]in g0/0/2           
[S2-GigabitEthernet0/0/2]port hybrid pvid vlan 2
[S2-GigabitEthernet0/0/2]port hybrid untagged vlan 1 to 2
[S2-GigabitEthernet0/0/2]in g0/0/3            
[S2-GigabitEthernet0/0/3]port hybrid pvid vlan 3
[S2-GigabitEthernet0/0/3]port hybrid untagged vlan 3 10
[S2-GigabitEthernet0/0/3]quit

3、至此,已经配置完成了,需要实现的需求已经实现了,再提示一下,这种方式仅限于各个vlan中的IP地址在同一网段上,若不属于同一网段,那么不同vlan之间的通信还需经过三层设备。

4、那么,现在若想要生产部和财务部可以通信呢?可以配置如下:

[S1]in g0/0/1
[S1-GigabitEthernet0/0/1]port hybrid untagged vlan 10
[S1-GigabitEthernet0/0/1]in g0/0/3
[S1-GigabitEthernet0/0/3]port hybrid untagged vlan 1

经过上面的简单配置,就又实现了生产部和财务部的通信,但也仅仅是实现了这两个部门的通信,销售部和生产部都处于vlan 1,但销售部和财务部依然无法通信,仍需设置相应接口。

其实,在上述需求中还有另一种比较简单,又不难理解的配置方法,我将思路说一下,有兴趣的话,自行配置试试吧,我通过这种方法实现过,就是把S1的G0/0/4接口和S2的G0/0/1接口都设置为Trunk接口模式,并且允许所有vlan流量通过,然后在需要通信的接口中设置为Hybrid接口模式,并且将需要通信的双方vlan ID加入到untag列表中,就可以通信了,比如,财务部需要和服务器1通信,它们分别属于vlan 10和vlan 2,那么,将交换机互联的接口设置为Trunk接口模式并且允许所有vlan流量通过后,在S1交换机连接财务部客户端的接口中,设置为Hybrid接口模式,并将vlan 10 和vlan 2添加到untag列表中,在S2交换机连接服务器1的接口中,将vlan 10 和vlan 2添加到untag列表中,即可实现这两个处于不同vlan中的终端设备进行通信,整个通信过程与tag列表无关(注意设置相应接口的PVID标签,以便将终端设备加入相应的vlan中)。

————本文至此结束,感谢阅读。