标签:否则 trunk 允许 初始化 特性 mac 连接服务器 抽象 sys
一、什么是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接口的三个属性介绍:
交换机的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的配置过程中都将注释写了下来):
<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中)。
标签:否则 trunk 允许 初始化 特性 mac 连接服务器 抽象 sys
原文地址:https://blog.51cto.com/14227204/2444703