前言git
上一章节咱们介绍了DHCP协议的工做原理 你知道你的电脑IP地址是如何获取的吗?一文带你搞懂DHCP动态主机配置协议。安全
今天来介绍下一个二层的隔离技术——VLAN。那么为何会出现这种技术呢?网络
咱们知道一个企业随着业务发展网络中的计算机愈来愈多,全部的主机在一个二层的以太网中会形成如下问题:ide
网络中的全部主机属于同一个广播域,容易形成广播报文泛滥,浪费网络带宽,形成链路拥塞;学习
VLAN技术能够隔离广播域,缩小广播域的范围,从而解决了上述问题。测试
正文code
1 什么是VLAN?orm
VLAN(Virtual Local Area Network)即虚拟局域网,能够将一个物理局域网在逻辑上划分红多个广播域,也就是多个VLAN。blog
VLAN做用:接口
VLAN技术部署在数据链路层,用于隔离二层流量。
VLAN的通讯原则:
同一个VLAN内的主机共享同一个广播域,它们之间能够直接进行二层通讯;
VLAN优势:
既可以隔离广播域,又可以提高网络的安全性。
如上图所示:
本来属于同一广播域的主机被划分到了两个VLAN中,即,VLAN2和VLAN3。因为PC1和PC4同属于VLAN3,所以二层能够互相通讯;PC1和PC2属于不一样的VLAN,不可以二层通讯。
2 VLAN报文格式:
带有VLAN的数据帧比正常以太网数据帧多了Tag字段,VLAN Tag长4个字节,直接添加在以太网帧头中。
Tag字段组成:
一、TPID:Tag Protocol Identifier,2字节,固定取值,0x8100,是IEEE定义的新类型,代表这是一个携带802.1Q标签的帧。若是不支持802.1Q的设备收到这样的帧,会将其丢弃。
二、TCI:Tag Control Information,2字节。帧的控制信息,详细说明以下:
Priority:3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。当交换机阻塞时,优先发送优先级高的数据帧。
CFI:Canonical Format Indicator,1比特。CFI表示MAC地址是不是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
在Tag字段中,主要关注的就是VLAN Identifier, 这个字段表示该数据帧带的vlan id是多少。
3 PVID
PVID即Port VLAN ID,表明端口的缺省VLAN。
为何须要PVID?
交换机从对端设备收到的帧有多是Untagged的数据帧,但全部以太网帧在交换机中都是以Tagged的形式来被处理和转发的,所以交换机必须给端口收到的Untagged数据帧添加上Tag。
为了实现此目的,必须为交换机配置端口的缺省VLAN。
交换机收到Untagged数据帧的处理方式:
当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。
缺省状况下,交换机每一个端口的PVID是1。
以下图所示:经过dis int g0/0/3能够查看交换机二层端口的PVID为1。
4 VLAN的划分
咱们知道vlan能够隔离广播域,那么如何去划分vlan呢?下面介绍下5种vlan的划分方法,重点关注基于端口的VLAN划分方式。
经过为交换机的每一个端口配置不一样的PVID,来将不一样端口划分到VLAN中。初始状况下,交换机的端口处于VLAN1中。
优势:此方法配置简单,可是当主机移动位置时,须要从新配置VLAN。
此划分方法须要网络管理员提早配置网络中的主机MAC地址和VLAN ID的映射关系。若是交换机收到不带标签的数据帧,会查找以前配置的MAC地址和VLAN映射表,根据数据帧中携带的MAC地址来添加相应的VLAN标签。
优势:在使用此方法配置VLAN时,即便主机移动位置也不须要从新配置VLAN。
基于IP子网划分:交换机在收到不带标签的数据帧时,根据报文携带的IP地址给数据帧添加VLAN标签。
网络管理员须要首先配置协议类型和VLAN ID之间的映射关系。
5 VLAN工做原理:
在介绍VLAN工做原理以前,咱们先看下VLAN的2种链路类型和3种端口类型。
2种链路类型
VLAN链路分为两种类型:Access链路和Trunk链路。
接入链路(Access Link):链接用户主机和交换机的链路称为接入链路。如本例所示,图中主机和交换机之间的链路都是接入链路。
3种端口类型
学习了vlan的概念,咱们知道网络中的数据帧要么是没有加上VLAN标记的标准以太网帧(untagged frame),要么是带有VLAN标记的以太网帧(tagged frame)。
那么不一样类型的接口是如何发送和接收带有vlan标记的以太网数据帧的呢?
Access接口:
Access端口是交换机上用来链接用户主机的端口,它只能链接接入链路,而且只能容许惟一的VLAN ID经过本端口。
Access端口收发数据帧的规则以下:
若是该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID与该端口的PVID相同时,接收该报文。当VLAN ID与该端口的PVID不一样时,丢弃该报文。
Trunk端口:
Trunk端口是交换机上用来和其余交换机链接的端口,它只能链接干道链路。Trunk端口容许多个VLAN的帧(带Tag标记)经过。
Trunk端口收发数据帧的规则以下:
接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在容许经过的VLAN ID列表中。若是VLAN ID在接口容许经过的VLAN ID列表中,则接收该报文。不然丢弃该报文。
当VLAN ID与端口的PVID不一样,且是该端口容许经过的VLAN ID时,保持原有Tag,发送该报文。
Hybrid端口:
Access端口发往其余设备的报文,都是Untagged数据帧,而Trunk端口仅在一种特定状况下才能发出untagged数据帧,其它状况发出的都是Tagged数据帧。
Hybrid端口是交换机上既能够链接用户主机,又能够链接其余交换机的端口。
Hybrid端口既能够链接接入链路又能够链接干道链路。Hybrid端口容许多个VLAN的帧经过,并能够在出端口方向将某些VLAN帧的Tag剥掉。华为设备默认的端口类型是Hybrid。
Hybrid端口收发数据帧的规则以下:
当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在容许经过的VLAN ID列表中。若是VLAN ID在接口容许经过的VLAN ID列表中,则接收该报文,不然丢弃该报文。
VLAN的工做原理:
下一章节咱们一块儿介绍下VLAN的工做原理:
结合VLAN的链路类型和端口类型,根据PC2和PC3互相通讯的过程介绍下VLAN的工做原理。
阶段一:PC2 ARP广播获取PC3的MAC地址
一、咱们知道主机间是基于MAC地址进行二层通讯的,PC2和PC3因为是首次通讯,PC2不知道PC3的MAC地址,所以会在广播域中发送ARP广播报文,询问有谁知道PC3的MAC地址。
二、LSW1从接口g0/0/2 收到PC2发送的ARP广播报文,因为接口g0/0/2是access接口,端口属于vlan 2,首先会在MAC地址表项中记录下PC2 mac地址、所属VLAN二、g0/0/2三者的对应关系,而后会给数据帧打上vlan2的标签,并在vlan 2中泛洪该广播报文。
三、LSW1将带有vlan2标签的广播报文发送给LSW2。
四、LSW2从接口g0/0/1 收到PC2发送的ARP广播报文,首先在MAC地址表项中记录下PC2 mac地址、VLAN二、g0/0/1三者的对应关系,并在vlan 2中泛洪该广播报文。
五、LSW2在发送广播报文给PC3时会剥除vlan2的标签。
六、PC3收到从LSW2发送的ARP广播报文,会进行ARP单播回应。
回应的报文转发流程和上述类型,不作讲解。
阶段二:数据转发过程
一、PC2发送源MAC是PC2,目的MAC是PC3的以太网数据帧。
二、LSW1从接口g0/0/2 收到PC2发送的数据帧,因为接口g0/0/2是access接口,端口属于vlan 2,首先会给数据帧打上vlan2的标签,而后在对应vlan中根据目的mac查找mac地址表,能够找到PC3 MAC地址对应的接口是g0/0/1。
三、LSW1的g0/0/1端口类型是trunk,放通了vlan 2 和3,所以LSW1将带有vlan2标签的数据帧从g0/0/1发送给LSW2。
四、LSW1从接口g0/0/1 收到PC2发送的数据帧,因为g0/0/1端口类型是trunk,放通了vlan 2 和3,所以接收该数据帧,在对应vlan中根据目的mac查找mac地址表,能够找到PC3 MAC地址对应的接口是g0/0/2。
五、LSW2的g0/0/1端口类型是access接口,端口属于vlan 2,所以LSW2剥除vlan2标签将数据帧从g0/0/2发送给PC3。
六、PC3收到数据帧查看目的mac是发送给本身的接收下该数据帧。
6 VLAN配置:
建立VLAN:
VLAN ID的取值范围是1到4094。在交换机上划分VLAN时,须要首先建立VLAN。在交换机上执行vlan <vlan-id>命令,建立VLAN。
例如:执行vlan 10命令后,就建立了VLAN 10,并进入了VLAN 10视图。
如需建立多个VLAN:
能够在交换机上执行vlan batch { vlan-id1 [ to vlan-id2 ] }命令,以建立多个连续的VLAN。
VLAN端口类型的配置:
华为系列交换机上,默认的端口类型是hybrid。
配置端口类型的命令是port link-type <type>,type能够配置为Access,Trunk或Hybrid。
配置Access
一、使用port link-type access命令修改端口的类型为Access;
二、添加端口到VLAN:可使用两种方法把端口加入到VLAN。
第一种方法是进入到VLAN视图,执行port <interface>命令,把端口加入VLAN。
配置Trunk
一、使用port link-type trunk命令修改端口的类型为Trunk;
二、配置Trunk端口容许哪些VLAN的数据帧经过。执行port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }命令,能够配置端口容许的VLAN,all表示容许全部VLAN的数据帧经过。
三、执行port trunk pvid vlan vlan-id命令,能够修改Trunk端口的PVID。
修改Trunk端口的PVID以后,须要注意:
缺省VLAN不必定是端口容许经过的VLAN。只有使用命令port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }容许缺省VLAN数据经过,才能转发缺省VLAN的数据帧。
配置Hybrid
一、port link-type hybrid命令的做用是将端口的类型配置为Hybrid。默认状况下,交换机的端口类型是Hybrid。所以,只有在把Access口或Trunk口配置成Hybrid时,才须要执行此命令。
二、port hybrid tagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }命令用来配置容许哪些VLAN的数据帧以Tagged方式经过该端口。
三、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间不能够通讯。
分别在LSW1的G0/0/3和G0/0/1抓取报文:
在G0/0/3抓取的报文是不带标签的
G0/0/1抓取报文是带标签的:
根据type取值0x8100,代表这是一个携带802.1Q标签的帧。能够获得如下信息:
Priority为0,优先级最低。
CFI的值为0代表是以太网