首页 > 范文大全 > 正文

交换机冗余链路引起的网络拥塞问题

开篇:润墨网以专业的文秘视角,为您筛选了一篇交换机冗余链路引起的网络拥塞问题范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:网络中,冗余链路可以保障网络的高可用性,但它也会引起数据帧在网路中不停地兜圈,导致广播风暴、MAC地址表不稳定、重复帧等,从而引起网络拥塞。该文结合模拟实验探讨了交换机的工作原理及数据转发流程,及如何避免数据帧的兜圈引起网络拥塞,为网络设备的高可用性配置提供了实践指导。

关键词:交换机的工作原理;冗余链路;兜圈子

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)21-5092-02

Switch Circle Problems Caused by Redundant Link

TANG Guo-liang, LI Hao-jie

(School of Information Technology, Henan University of Traditional Chinese Medicine, Zhengzhou 450008, Henan)

Abstract: In the network, redundant links can ensure network higher availability, but it can also cause that data frame go around in circles ceaselessly in network, leading to a series of problems, such as broadcast storm, unstable MAC table and repeat frames,resulting in Network congestion. Based on the simulation experiment, the working principle of the switch and the data forwarding process mainly is discussed, which provides the basis for the configuration, management, maintenance work of network devices.

Key words: working principle of the switch; redundant link; circling

交换式以太网取代共享总线以太网,大大提高了交换速率和链路带宽,成为当前局域网的一项关键技术[1]。单一链路一旦出现故障,将会出现网络中断。尽管从原则上讲,冗余链路能够很好的解决单一链路引起的网络问题,但是其自身又带来了诸如广播风暴、MAC地址表的不稳定、重复帧等问题。

1 二层交换技术

第二层交换技术是工作在OSI七层网路模型中的第二层,即数据链路层。它按照所接收到的数据包的源MAC地址进行学习、目的MAC地址来进行转发,对于网络层或者高层协议来说是透明的。它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,它只处理数据包的物理地址即MAC地址,数据交换是靠硬件来实现的,其处理速度相当快,这是二层交换的一个显著优点。

1.1 交换机工作原理[2]

交换机的二层转发涉及到两个关键进程:学习和转发。在学习进程中,交换机根据收到数据帧中的源MAC地址在MAC地址表中建立该MAC地址与相应端口的映射。在转发进程中,交换机根据帧的目的MAC地址进行转发。当交换机收到某个数据帧时,交换机在MAC地址表中查找该数据帧的目的MAC地址,如果交换机已经有了这个MAC地址,数据帧将被转发到该MAC地址对应的端口,否则将泛洪到除接收端口以外的其它所有的端口。

1.2 交换机工作流程

二层交换机的工作流程具体由以下4步:

1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连接在哪个端口上的;

2)再去读取包头中的目的MAC地址,并在MAC地址表中查找相应的端口;

3)若表中有与该数据包中目的MAC地址对应的端口,则把数据包直接复制到这端口上;

4)若表中找不到与之对应的端口,则把数据包广播到除接受端口以外的其余端口上,当目的PC对源PC回应时,交换机又可以学习到回应PC的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。

只要有数据包通过,交换机就不断的循环这个过程,对二层的MAC地址进行学习和转发,二层交换机就是这样建立和维护它自己的MAC地址表。

2 冗余链路分析[3-4]

各PC的地址如表1所示。

图1显示的是在Packet Tracer V5.3中组建的局域网拓扑图,在默认情况下,交换机的STP(Spanning Tree Protocol,生成树协议)是开启的,拓扑图中SW2的Fa0/8端口指示灯是橙色的,表示数据包不会从此端口进行转发。对交换机SW1和SW2,在全局配置模式下,用命令“no spanning-tree vlan 1”关闭交换机的STP生成树协议,拓扑的变化结果如图2所示,交换机的各端口的指示灯都成为绿色。图3显示的是正在兜圈子的数据包。

2.1 广播风暴的形成(以PC2 ping PC3为例)

对图3进行分析:在”Simulation Mode”下,点击”Edit Filters”按钮,勾选ARP和ICMP复选框,选择右边工具栏中的”Add Simple PDU”,然后点击PC2和PC3,接着一步一步点击按钮“Capture/Forward”,模拟PC2和PC3间的数据通信。之后,可以通过点击“Event List”中的“Info”表项,能够清楚的查看到数据包在各设备的入端口和出端口的各层中数据的封装信息。具体如下:

PC2中运行ARP协议的ARP进程首先向目的IP构建ARP广播查询包(PC2发送的数据包在数据链路层封装的时候,需要知道对方PC3的MAC地址。刚开始的时候,PC2的ARP cache是空的,但是PC2向PC3发送的ping数据包又必须要知道PC3的MAC地址,因此首先需要通过ARP查询数据包获得PC3的MAC地址)。封装的数据包中源IP为192.168.1.2,目的IP为192.168.1.3,源MAC地址是0050.0F4C.B035,目的MAC地址是FFFF.FFFF.FFFF,经过封装后广播到以太网中。

1)SW1从Fa0/2端口接收到该数据包,然后发送一个有效的LACP(Link Aggregation Control Protocol,链路汇聚控制协议)交付给更高进程处理,由于此时SW1的MAC地址表是空的,于是SW1就在MAC地址表中建立起MAC地址0050.0F4C.B035与端口Fa0/2之间的映射;SW1解封装该PDU,知道该帧是ARP帧,于是SW1就交付ARP进程处理。目的地址FFFF.FFFF.FFFF是广播地址,于是SW1的ARP进程就将该ARP广播报文从除接收端口以外的其余所有端口转发出去,即从端口Fa0/1、Fa0/5和Fa0/7发送出去。

2)SW1广播收到的ARP查询包

①PC1接收该PDU,经过解封装,发现是ARP帧,就交付ARP进程处理,ARP进程发现该帧是ARP查询包,其目标IP与PC1的IP不匹配,于是就丢弃该数据帧。

②假设SW2先从Fa0/6端口接收到该帧,然后发送一个有效的LACP交付更高进程处理,该帧的源MAC在SW2的MAC地址表中不存在,于是SW2就在MAC地址表中建立起0050.0F4C.B035与Fa0/6之间的映射;SW2解封装该PDU,知道该帧是ARP广播查询包,于是SW2就交付ARP进程处理。目的地址FFFF.FFFF.FFFF是广播地址,于是SW2的ARP进程就将该ARP广播报文从除接收端口以外的Fa0/3、Fa0/4和Fa0/8发送出去。

③于此同时,SW2从Fa0/8端口接收到该帧,然后发送一个有效的LACP交付更高进程处理,结果发现该帧的源MAC在SW2的MAC地址表中已存在,但是其对应的端口是Fa0/6,而不是Fa0/8,于是SW2就将之前的条目删除掉而添加一条新的条目来反映最新的变化。即在MAC地址表中建立起0050.0F4C.B035与Fa0/8之间的映射;SW2解封装该PDU,知道该帧是ARP广播查询包,于是SW2就交付ARP进程处理。目的地址FFFF.FFFF.FFFF是广播地址,于是SW2就将该ARP广播报文从接收端口以外的其余所有端口转发出去,而此时Fa0/3和Fa0/4已有数据正在发送,于是就将刚收到的ARP查询报文放在cache中,等待发送。先从端口Fa0/6将该帧发送出去。

3)SW2广播收到的ARP查询包

①SW2从cache中取出该ARP查询包,从Fa0/3端口发送出去。

②PC3收到SW2从Fa0/6端口收到的ARP包的转发帧,然后解封装,知道是ARP帧,交付ARP进程处理。ARP进程发现该帧是ARP查询包,且其目的IP与自己的IP相同,于是ARP进程用接收到的信息更新自己的ARP表。即建立起IP地址192.168.1.2与MAC地址0050.0F4C.B035之间的映射。之后ARP进程发送ARP回应包。源IP是192.168.1.3,目的IP是192.168.1.2。源MAC是0001.978C.73B1,目的MAC是0050.0F4C.B035。

③PC4接收该PDU,经过解封装,发现该帧是ARP查询报文,就交付ARP进程处理,ARP进程发现其目标IP与PC4的IP不匹配,于是就丢弃该帧。

4)同理,SW1对从Fa0/5和Fa0/7端口收到的SW2转发过来的广播帧,从除接收端口以外的其余所有端口转发出去。对于PC3回应的ARP单播帧,就查看MAC地址表进行转发,由于环路引起的MAC地址表的不稳定,使得同一个广播帧和单播帧就在SW1和SW2之间无休止地兜圈子。PC1、PC2、PC3和PC4也不停地接收广播帧,根据广播帧的内容丢弃或处理广播帧。

一个广播帧和单播帧,在SW1和SW2间不停地被转发,永无止境,极大的消耗链路带宽和硬件资源,最终造成网络拥塞或瘫痪。

2.2 MAC地址表不稳定

广播风暴危害巨大,除了产生大量的流量,占用大量带宽,还会造成交换机的MAC地址表不稳定。在广播风暴的形成过程中:

①SW1从Fa0/2端口接收到PC2的广播帧,SW1根据帧的源MAC地址进行学习,记录下PC2的MAC地址在Fa0/2端口。SW1把广播帧转发给SW2。

②假设SW2先从Fa0/6端口收到广播帧,SW2记录下PC2的MAC地址在Fa0/6端口,然后SW2从Fa0/8端口也收到这个广播帧,SW2更新PC2的MAC地址在Fa0/8端口。SW2再把收到的广播数据帧再转发到SW1。

③SW1先后从Fa0/5和Fa0/7端口接收SW2转发过来的广播帧,依次更新PC2的MAC地址在Fa0/5和Fa0/7端口。可真正的PC2在Fa0/2端口。

SW1和SW2随着广播帧不停地被转发而不停地更换MAC地址表,造成CPU使用率过高,影响交换机的性能。

2.3 重复帧的拷贝

冗余拓扑除了带来广播风暴和MAC地址表不稳定外,还会引起重复帧的拷贝问题

①PC2发出的ARP广播帧,目标是PC3,SW1收到这个广播帧,可SW1在MAC地址表中没有找到目标PC3的MAC地址,SW1从除接收端口以外的所有端口把这个广播帧转发出去。

②SW2从Fa0/6接收到SW1转发过来的广播帧,可SW2在MAC地址表中没有找到目标PC3的MAC地址,SW2从除接收端口以外的所有端口把这个广播帧转发出去。PC3从Fa0/3端口接收到这个广播帧。

③于此同时,SW2从Fa0/8接收到SW1转发过来的广播帧,可SW2在MAC地址表中没有找到目标PC3的MAC地址,SW2从除接收端口以外的所有端口把这个广播帧转发出去。PC3从Fa0/3端口接收到这个广播帧。PC3再次接收到这个广播帧。

PC2仅发送一次广播帧,PC3却收到两次,造成不必要的重复。

3 总结

交换网络出于高可用性的考虑,一般都有链路冗余;如果没有相应的避免技术,就会出现广播风暴、MAC地址表不稳定、重复帧等,从而引起网络拥塞。广播风暴是“路径回路”的结果,使得交换网络无穷尽地发送和复制广播包,最终使网络瘫痪。在冗余的环境下,“相同帧的拷贝”指的是同一个帧到达主机两次或多次,可能会引起不可预知的后果。MAC地址表不稳定导致地址学习的翻动,严重干扰正常分组的转发,出现大量的传递错误,最终使网络瘫痪。本文结合模拟实验探讨了交换机的工作原理及数据转发流程,及如何避免数据帧的兜圈引起网络拥塞,为网络设备的高可用性配置提供了实践指导。

参考文献:

[1] 刘向东.以太网交换机原理实验设计[J].实验室研究与探索,2011,30(1):48-50.

[2] 谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008.

[3] 崔北亮.CCNA认证指南(640-802)[M].北京:电子工业出版社,2009.

[4] 郭彦伟,郑建德.生成树协议与交换网络环路研究[J].厦门大学校报,2006(45):301-304.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文