前言
在一个二层广播域中,随着接入设备数量的增加,带来的是网络安全以及垃圾流量等问题。例如一台终端设备发出的数据帧,广播域中所有的设备都可以接收到,那么原本不需要该数据帧的设备也能接收到,所以存在安全隐患。另一方面因为广播域中充斥的大量的数据帧,并且广播域越大数据帧越多,所造成的垃圾流量也就越多。我们可通过VLAN技术解决这一问题
一、VLAN的工作机制
VLAN(Virtual LAN 虚拟局域网)通过划分接口的方式将一个物理局域网从逻辑上分成多个逻辑局域网,实现隔离广播域的作用。交换机通过根据接口的VLAN配置,对报文实施打上或剥离vlan标签的动作,来控制报文的转发。以下介绍的是常用的基于接口的VLAN类型。其它的VLAN类型还有基于MAC地址、基于协议等等会在后面学习笔记中介绍。
1、二层通信与三层通信
二层通信
通信双方直接通过交换数据帧的方式来传递信息,计算机接收到的帧与源计算机发出的帧是一样的,如目的MAC、源MAC、类型值、载荷数据等没有发生任何变化。一般该通信过程中经过交换机进行二层转发,一定不会经过路由器或是带有三层转发功能的交换机。
在如上拓扑中,PC1向PC3发送信息,并在SW1的GE0/0/3口进行抓包,结果如下:
我们发现在同一广播域中PC1向PC3传递的数据帧的源地址与目的地址没有改变,二层通信不需要拆开三层IP报头。
三层通信
如果在拓扑中加入路由器或三层交换机,使PC1与PC2在不同的广播域,那么数据在传递过程中就会涉及拆开3层IP报头查找路由表,传递到PC2后数据帧的源MAC与PC1发出的源MAC一定不同,这就是三层通信。
PC1与PC2属于不同的广播域,PC1与PC2通信时因数据经过路由器R1,通过对R1接口GE0/0/1抓包,可以发现源MAC地址不是PC1的MAC地址,而是路由器接口GE0/0/1的MAC,说明数据帧在传递的过程当中发生了变化。
2、Access端口
工作机制
当Access端口收到无tag的报文时,打上PVID(端口默认VLAN,值为1,一个端口仅能有一个PVID)
当Access端口收到有tag的报文时,若tag等于PVID则剥离标签通过,若tag不等于PVID则丢弃(仅能允许一个vlan tag 通过)
实验配置
如上面拓扑中PC1与PC2处于VLAN10中,PC3处于VLAN20中。
使用命令vlan batch 10 20,在交换机中创建VLAN10和20。
使用命令port link-type access将交换机的端口GE0/0/1和端口GE0/0/2配置为Access端口。使用命令port default vlan 10配置默认VLAN为10。
使用命令port link-type access将交换机的端口GE0/0/3配置为Access端口,使用命令port default vlan 20配置默认VLAN为20。
PC1向PC2发送数据时:PC1发送不带VLAN标签的数据包经过交换机SW1的GE0/0/1口时,数据包会被打上PVID 10,当数据包经过GE0/0/2口时因该端口的PVID为10且数据包的VLAN为10,数据包会被剥离VLAN标签发送到PC2。
PC1向PC3发送数据时:PC1发送不带VLAN标签的数据包经过交换机SW1的GE0/0/1口时,数据包会被打上PVID 10,当数据包经过GE0/0/3口时因该端口的PVID为20,而数据包的VLAN为10,该端口会丢弃数据包。
3、Trunk端口
工作机制
当收到无tag报文,打上PVID。
当收到有tag报文,若tag等于PVID则剥离标签通过,若tag不等于PVID且在允许通过的VLAN列表中,则带标签通过,否则丢弃。(允许多个VLAN tag通过)
实验配置
如上拓扑中交换机SW1的GE0/01口和SW2的GE0/0/3口配置为Access端口,PVID10。SW1的GE0/0/2口和SW2的GE0/0/2口配置为Access端口,PVID20。
使用命令port link-type trunk将交换机SW1的端口GE0/0/3口和SW2的端口GE0/0/1口配置为Trunk口。使用命令port trunk allow-pass vlan 10 20,配置SW1与SW2之间允许通过的VLAN列表。
PC1向PC4发送数据时:
步骤1:PC1发送不带VLAN标签的数据包经过交换机SW1的GE0/0/1口时,数据包会被打上PVID 10。
步骤2:当数据包经过SW1的GE0/0/3口时(因Trunk口的PVID为1,命令port trunk pvid vlan xx 修改trunk端口类型的pvid),数据包VLAN标签不等于该Trunk口的PVID,且在允许通过的VLAN列表(10和20)中,带VLAN标签通过。
步骤3:数据包经过SW2的GE0/0/1时,数据包的VLAN标签不等于该端口PVID且在允许通过的列表中,带VLAN标签通过。
步骤4:数据包经过SW2的GE0/0/3时,数据包的VLAN标签等于该端口的PVID 10,剥离VLAN标签到达PC4。
4、Hybrid端口
工作机制
收到无tag报文,打上PVID(配置时pvid需要加入到tagged/untagged列表中才能生效)。
收到有tag报文,根据tag的值若对应tag模式则带标签通过,若对应untag模式则剥离标签通过,否则丢弃。
实验配置
如上拓扑中,要求PC1与PC2要与PC3互通,而PC1与PC2隔离。如果只是通过设置Access口或是Trunk口则无法实现,可通过配置Hybrid口灵活配置。
配置命令:port hybrid pvid vlan 10,配置SW1的GE0/0/1口的PVID为10。
配置命令:port hybrid untagged vlan 10 30 ,配置SW1的GE0/0/1口的untagged列表。pvid10需要加入untagged或tagged列表中才能生效。
GE0/0/2和GE0/0/3口按拓扑中相同方法配置。
PC1向PC3发送数据时:
步骤1:PC1发送不带VLAN标签的数据包经过SW1的GE0/0/1口,打上PVID10。
步骤2:数据包经过SW1的GE0/0/3口时,因vlan10在untagged列表中,剥离vlan标签到达PC3。
PC3向PC1发送数据时:
步骤1:PC3发送不带VLAN标签的数据包经过SW1的GE0/0/3口,打上PVID30。
步骤2:数据包经过SW1的GE0/0/1口时,因vlan30在untagged列表中,剥离vlan标签到达PC1。