本节将讨论两个问题交换机形成的环路问题的原因和解决方法。

1.什么是环路问题

就是两个交换机连接的网络形成了一个环,比如图中的情况:

电脑A发了一个广播的数据包,数据包从网络1出来的广播包从交换机A出去走了一圈,从交换机B走回来了,同时这个包也可以从交换机B走出去,然后又从交换机A走回来。

vlan环路是什么意思 vlan1为什么会环路_网络

2.出现环路会怎么样

这会带来两个问题:

  1. 给交换机的学习带来困难,甚至无法学习到准确的结果
  2. 交换机无法学习导致,或者学习结果不准确会导致这个包要一直在网络上广播,太多包在广播了就会导致性能问题。

所以根源是给交换机的学习带来太多困难,为什么会导致这个问题,我们可以从图中分析交换机的学习步骤

  • 从LAN1出来的广播包,从绿色的线走到交换机A,此时交换机A看MAC地址就知道了,电脑是在LAN1里面的
  • 与此同时LAN1出来的广播包从红色的线走到了交换机B,交换机B看MAC地址也可以知道电脑是在LAN1里面的
  • 数据包过了交换机A,在LAN2中广播,沿着绿色的线继续走,走到了交换机B,交换机B看了MAC地址,发现这个MAC地址从别的网络过来了,就以为电脑换位置了,于是更新自己的转发表,电脑在LAN2厘米
  • 同样的,交换机A收到了从交换机B过来的数据包,也会以为电脑换位置了,电脑换成LAN2了

如果电脑A再次发一个广播包,两个交换机又会再次重复这个过程,一会儿以为是电脑在LAN1,一会儿以为电脑在LAN2。
因此,由于环路的双向性,会导致从一个点出发,可能会从两个方向通过交换机,造成交换机学习出错。

3.如何解决环路问题

很简单,不要让交换机之间连成环。这就涉及到了一个算法,最小生成树算法STA(Spanning-Tree Algorithm),使用这个算法的协议叫做STP(Spanning-Tree Protocal),这个协议可以打破环,解决环路问题。
具体的算法细节日后再补充。