来源 https://zhuanlan.zhihu.com/p/151853557
我们知道一个企业随着业务发展网络中的计算机越来越多,所有的主机在一个二层的以太网中会造成以下问题:
VLAN技术可以隔离广播域,缩小广播域的范围,从而解决了上述问题。
正文
1:什么是VLAN?
VLAN(Virtual Local Area Network)即虚拟局域网,可以将一个物理局域网在逻辑上划分成多个广播域,也就是多个VLAN。
VLAN技术部署在数据链路层,用于隔离二层流量。
既能够隔离广播域,又能够提升网络的安全性。
如上图所示:
原本属于同一广播域的主机被划分到了两个VLAN中,即,VLAN2和VLAN3。由于PC1和PC4同属于VLAN3,因此二层可以互相通信;PC1和PC2属于不同的VLAN,不能够二层通信。
2:VLAN报文格式:
带有VLAN的数据帧比正常以太网数据帧多了Tag字段,VLAN Tag长4个字节,直接添加在以太网帧头中。
Tag字段组成:
1、TPID:Tag Protocol Identifier,2字节,固定取值,0x8100,是IEEE定义的新类型,表明这是一个携带802.1Q标签的帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
2、TCI:Tag Control Information,2字节。帧的控制信息,详细说明如下:
在Tag字段中,主要关注的就是VLAN Identifier, 这个字段表示该数据帧带的vlan id是多少。
3:PVID
PVID即Port VLAN ID,代表端口的缺省VLAN。
交换机从对端设备收到的帧有可能是Untagged的数据帧,但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的,因此交换机必须给端口收到的Untagged数据帧添加上Tag。
为了实现此目的,必须为交换机配置端口的缺省VLAN。
当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。
缺省情况下,交换机每个端口的PVID是1。
如下图所示:通过dis int g0/0/3可以查看交换机二层端口的PVID为1。
4:VLAN的划分
我们知道vlan可以隔离广播域,那么如何去划分vlan呢?下面介绍下5种vlan的划分方法,重点关注基于端口的VLAN划分方式。
5:VLAN工作原理:
在介绍VLAN工作原理之前,我们先看下VLAN的2种链路类型和3种端口类型。
2种链路类型
VLAN链路分为两种类型:Access链路和Trunk链路。
3种端口类型
学习了vlan的概念,我们知道网络中的数据帧要么是没有加上VLAN标记的标准以太网帧(untagged frame),要么是带有VLAN标记的以太网帧(tagged frame)。
那么不同类型的接口是如何发送和接收带有vlan标记的以太网数据帧的呢?
Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。
Access端口收发数据帧的规则如下:
Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。
Trunk端口收发数据帧的规则如下:
Access端口发往其他设备的报文,都是Untagged数据帧,而Trunk端口仅在一种特定情况下才能发出untagged数据帧,其它情况发出的都是Tagged数据帧。
Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。
Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。华为设备默认的端口类型是Hybrid。
Hybrid端口收发数据帧的规则如下:
VLAN的工作原理:
下一章节我们一起介绍下VLAN的工作原理:
结合VLAN的链路类型和端口类型,根据PC2和PC3互相通信的过程介绍下VLAN的工作原理。
阶段一:PC2 ARP广播获取PC3的MAC地址
1、我们知道主机间是基于MAC地址进行二层通信的,PC2和PC3由于是首次通信,PC2不知道PC3的MAC地址,因此会在广播域中发送ARP广播报文,询问有谁知道PC3的MAC地址。
2、LSW1从接口g0/0/2 收到PC2发送的ARP广播报文,由于接口g0/0/2是access接口,端口属于vlan 2,首先会在MAC地址表项中记录下PC2 mac地址、所属VLAN2、g0/0/2三者的对应关系,然后会给数据帧打上vlan2的标签,并在vlan 2中泛洪该广播报文。
3、LSW1将带有vlan2标签的广播报文发送给LSW2。
4、LSW2从接口g0/0/1 收到PC2发送的ARP广播报文,首先在MAC地址表项中记录下PC2 mac地址、VLAN2、g0/0/1三者的对应关系,并在vlan 2中泛洪该广播报文。
5、LSW2在发送广播报文给PC3时会剥除vlan2的标签。
6、PC3收到从LSW2发送的ARP广播报文,会进行ARP单播回应。
回应的报文转发流程和上述类型,不做讲解。
阶段二:数据转发过程
1、PC2发送源MAC是PC2,目的MAC是PC3的以太网数据帧。
2、LSW1从接口g0/0/2 收到PC2发送的数据帧,由于接口g0/0/2是access接口,端口属于vlan 2,首先会给数据帧打上vlan2的标签,然后在对应vlan中根据目的mac查找mac地址表,可以找到PC3 MAC地址对应的接口是g0/0/1。
3、LSW1的g0/0/1端口类型是trunk,放通了vlan 2 和3,因此LSW1将带有vlan2标签的数据帧从g0/0/1发送给LSW2。
4、LSW1从接口g0/0/1 收到PC2发送的数据帧,由于g0/0/1端口类型是trunk,放通了vlan 2 和3,因此接收该数据帧,在对应vlan中根据目的mac查找mac地址表,可以找到PC3 MAC地址对应的接口是g0/0/2。
5、LSW2的g0/0/1端口类型是access接口,端口属于vlan 2,因此LSW2剥除vlan2标签将数据帧从g0/0/2发送给PC3。
6、PC3收到数据帧查看目的mac是发送给自己的接收下该数据帧。
6: VLAN配置:
VLAN ID的取值范围是1到4094。在交换机上划分VLAN时,需要首先创建VLAN。在交换机上执行vlan <vlan-id>命令,创建VLAN。
例如:执行vlan 10命令后,就创建了VLAN 10,并进入了VLAN 10视图。
如需创建多个VLAN:
华为系列交换机上,默认的端口类型是hybrid。
配置端口类型的命令是port link-type <type>,type可以配置为Access,Trunk或Hybrid。
配置Access
1、使用port link-type access命令修改端口的类型为Access;
2、添加端口到VLAN:可以使用两种方法把端口加入到VLAN。
配置Trunk
1、使用port link-type trunk命令修改端口的类型为Trunk;
2、配置Trunk端口允许哪些VLAN的数据帧通过。执行port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }命令,可以配置端口允许的VLAN,all表示允许所有VLAN的数据帧通过。
3、执行port trunk pvid vlan vlan-id命令,可以修改Trunk端口的PVID。
修改Trunk端口的PVID之后,需要注意:
配置Hybrid
1、port link-type hybrid命令的作用是将端口的类型配置为Hybrid。默认情况下,交换机的端口类型是Hybrid。因此,只有在把Access口或Trunk口配置成Hybrid时,才需要执行此命令。
2、port hybrid tagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }命令用来配置允许哪些VLAN的数据帧以Tagged方式通过该端口。
3、port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }命令用来配置允许哪些VLAN的数据帧以Untagged方式通过该端口。
配置检查
执行display vlan命令,可以确认端口是否已经加入到VLAN中。
7:实战——vlan配置实例
如图所示:PC1和PC4属于vlan3,PC2和PC3属于vlan2。通过配置实现PC1和PC4能够互通,PC1和PC2相互隔离;
配置如下:
[LSW1]
#
sysname LSW1
#
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 2
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 3
[LSW2]
#
sysname LSW2
#
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 2
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 3
#
在LSW1上查看:
在PC1上ping测试PC4和PC2,可以发现相同vlan之间可以通信,不同vlan间不可以通信。
在G0/0/3抓取的报文是不带标签的
G0/0/1抓取报文是带标签的:
根据type取值0x8100,表明这是一个携带802.1Q标签的帧。可以得到以下信息:
============== End
原文:https://www.cnblogs.com/lsgxeva/p/13935650.html