38

图文并茂深入了解VLAN工作原理,不能错过干货

 4 years ago
source link: http://network.51cto.com/art/201910/605101.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

图文并茂深入了解VLAN工作原理,不能错过干货

了解了VLAN的划分的几种方法和配置,我非常好奇VLAN是一个怎样的工作过程呢?它是如何做到隔离的功能,带着这些疑问,今天一起来看看吧。

了解了VLAN的划分的几种方法和配置,我非常好奇VLAN是一个怎样的工作过程呢?它是如何做到隔离的功能,带着这些疑问,今天一起来看看吧。

VLAN基本通信原理

为了提高处理效率,交换机内部的数据帧一律都带有VLAN Tag,已统一方式处理。当一个数据进入交换机接口时,如果没有带VLAN Tag标签,且该接口上配置了PVID,那么,该数据帧就会被标记上接口的PVID。如果数据帧已经带有VLAN Tag,那么,即使接口已经配置了PVID,交换机不会再给数据帧标记VLAN Tag。

由于接口类型不同,交换机对数据帧的处理过程也不同,下面通过两个案例来说明一下VLAN的工作原理:

同一交换机不同VLAN情况

图文并茂深入了解VLAN工作原理,不能错过干货

上图交换机分别配置了VLAN 10 20,同时把相应的PC加入不同的VLAN中,通过在交换机上GE0/01和GE0/0/3抓包,发现GE0/0/1能抓取数据包,而GE0/0/3没有数据包经过。这也证实了VLAN的一个特性,隔离广播风暴。

图文并茂深入了解VLAN工作原理,不能错过干货

正常的情况先,PC1在和PC2的第一次通信,先广播一个ARP请求,在交换机的所有端口,除了自己发送数据端口之外,其他端口都能正常收到的。但是上述拓扑由于划分了VLAN,所以ARP广播被GE0/0/3端口丢弃。所以导致PC1不能获取PC2的MAC地址,导致无法通信。

小伙伴们看到这里,可能会说,我们能不能提前把PC2的MAC地址告诉PC1,这样PC1就不用再发ARP广播包去请求MAC地址啦。

通过在PC1和PC2中相互把对方的MAC地址进行添加,执行如下命令:



  1. PC1>arp -s 192.168.1.3 54-89-98-C1-58-5A 
  2. PC2>arp -s 192.168.1.2 54-89-98-05-20-B9 

添加完之后,重新在交换机GE0/0/1和GE0/0/3端口进行抓包,如下图,GE0/0/3还是没有数据抓取到,这次GE0/0/1端口到ICMP包的请求超时。

图文并茂深入了解VLAN工作原理,不能错过干货

通过提前绑定MAC地址信息,但是,依然PC1和PC2不能相互访问。那么VLAN数据包是如何工作的呢?先来看Access端口在接收和发送数据包的是都做了什么操作。

  • Access接口对接收不带Tag的报文处理:接收该报文,并打上缺省的VLAN ID
  • Access接口对接收带Tag的报文处理:当VLAN ID 与缺省VLAN ID相同时,接收该报文;当VLAN ID与缺省VLAN ID不同时,丢弃该报文;
  • 发送帧处理过程:先剥离帧的PVID Tag,然后再转发。

注意:如果端口为access类型,并加入了一个vlan ,那么这端口的PVID属性值变成和VID值一样;缺省VLAN ID 就是当前加入的VLAN ID

从以上access端口接收发送数据包,可以大致推测出PC1和PC2的通信过程如下:

  • 当PC1发送数据包时,数据包是不带Tag标签的。进入交换机GE0/0/1端口后,则被带上VLAN 10 的标签。
  • 当交换机GE0/0/3端口接收到GE0/0/1端口发来的数据包,然后检查发现是带上Tag标签的,进一步比较与自己的缺省VLAN是否一致,结果发现不一致,直接发数据包丢弃了。

同一交换机相同VLAN情况

图文并茂深入了解VLAN工作原理,不能错过干货

上图两台交换机通过GE0/0/24端口互联,并把GE0/0/24配置成trunk口模式,允许VLAN 10、20通过。那么垮交换机的VLAN又是怎么一个流程呢?

先分别在SW1和SW2的GE0/0/24端口抓包,看看什么样的数据包经过GE0/0/24。

图文并茂深入了解VLAN工作原理,不能错过干货

从上图看到通过SW1和SW2的G0/0/24端口数据包都是一样的,携带了Tag标签。再来看看trunk收发数包的流程。

trunk端口对不带Tag的报文处理:

  • 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表时,接收该报文。
  • 当缺省VLAN ID不在允许通过的VLAN ID列表时,丢弃该报文。

trunk端口对带Tag的报文处理:

  • 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文;
  • 当VLAN ID不在接口允许通过的VLAN ID列表时,丢弃报文。

发送帧处理过程:

  • 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文;
  • 当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。

从以上Trunk端口收发数据包的处理过程,大致可以推测出PC1和PC3的过程如下:

  • 当PC1发送数据包到SW1端口(数据包不带Tag标签),进入SW1交换机的GE0/0/1端口后,被加上该端口VLAN ID 20进行转发。
  • 进行ARP广播请求PC3端MAC地址,数据包进入SW1的GE0/0/24端口,由于SW1的GE0/0/24端口为trunk模式,允许VLAN 10 和20通过,并根据trunk端口发送帧处理过程。数据包顺利到达SW2的G0/0/24端口。
  • 由于ARP广播包携带了Tag标签,只有对应的端口对此广播进行处理,并相应。
  • PC1得到PC3的MAC地址,进行数据包封装转发,进行通信。

【编辑推荐】

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK