图7-2中的备份链路可以解决单点故障问题,但是也带来了一个新问题:当4台交换机正常工作时组成了一个环路结构,这个结构会引起广播风暴、多帧复制和MAC地址表抖动等。
图7-3所示是最小的一个交换机环路结构,由两台交换机组成,PC1与PC2分别连接一个交换机。为了验证交换机环路结构引起的问题,在两台PC上配置图中的IP地址,并都启动Wireshark软件捕获本地网卡的数据包,交换机A与交换机B之间暂时只连接一根线路,即不构成环路结构,在PC1和PC2的命令提示符中输入命令“arp–d *”清空ARP缓存,然后PC1端输入“ping-n11.1.1.2”测试与PC2的连通性,“-n 1”说明只发送一次ICMP回送请求数据包。观察PC1和PC2中Wireshark软件捕获到的数据包,如图7-4和图7-5所示。
图7-3 两台交换机组成的环路结构
观察图7-4和图7-5中的数据包,不难理解PC1与PC2之间的数据流。因为清空了ARP缓存,所以PC1首先广播一个ARP请求,尝试获取地址1.1.1.2对应的MAC地址,经两台交换机转发后,广播数据包到达PC2,PC2单播发送ARP应答,PC1成功接收并更新本地ARP缓存后构造ICMP回显请求报文发出,PC2收到后也使用ARP协议查询PC1的MAC地址后发送ICMP回显应答报文。在两台交换机之间只有一条链路(无环)时的数据流非常清晰。
图7-4 PC1捕获的数据包
图7-5 PC2捕获的数据包(www.xing528.com)
现在连接两台交换机之间的第二条链路,构成环状拓扑,再次重复上述步骤,即清空两台PC的ARP缓存,两台PC启动Wireshark软件捕获数据包,PC1端输入“ping-n 1 1.1.1.2”测试与PC2的连通性。观察两台PC捕获的数据包,如图7-6和图7-7所示。
图7-6 PC1捕获的数据包
图7-6中PC1在1 s内捕获了4000多条ARP请求报文,为什么会这样呢?借助图7-7中PC2捕获数据包示意图不难理解,交换机A将PC1发出的ARP请求数据包向f0/3和f0/4两个端口转发,交换机B从f0/3和f0/4两个端口各收到一个ARP请求数据包。它的处理方式也是分别向另外两个端口转发,即f0/3端口收到后向f0/2和f0/4转发,f0/4端口收到后向f0/2和f0/3转发。因此,交换机B的f0/2端口将转发出两个ARP请求数据包,PC2将收到两个ARP请求数据包,图7-7中第3和第4个数据包是PC2针对收到的两个ARP请求数据包做出的应答。因为两个交换机之间环路的存在,使用广播方式传输的ARP请求数据包就变成了“不死”数据包,始终在环路间循环转发,图7-6中PC1短时间内收到大量ARP请求报文就是这样形成的。这个例子说明了广播风暴和多帧复制的现象。在实验时仔细观察环路结构中交换机端口的指示灯,闪烁得越快说明这个端口传输的数据越连续。
图7-7 PC2捕获的数据包
MAC地址表抖动是指交换机中的MAC地址表不稳定。因为环路的存在,交换机会在不同的端口收到相同的数据包,按照交换机的转发原理,它会在自己的MAC地址表中记录下收到数据帧的端口与数据帧中源MAC地址的对应关系。例如,交换机B从端口f0/3收到PC1发出的数据包时,它会将端口f0/3与PC1的对应关系写入MAC地址表,而当交换机B随后又从f0/4收到同样的数据包时,会将MAC地址表中PC1对应的端口改为f0/4,这就造成了MAC地址表的抖动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。