学习记录:二层网络环路相关
Posted 河边小咸鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录:二层网络环路相关相关的知识,希望对你有一定的参考价值。
学习记录
- 上周实习过程中由于对此相关内容不熟悉,造成了事故。由此对相关内容加强学习,特此记录。
一、交换机相关
总的来说,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。
在实习中,我接触到的应该都是第二层交换机(数据链路层)。其内部存在着一个映射表,记录着设备MAC地址与交换机端口之间的关系。
当交换机从某端口收到一个数据包,它首先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的。随后它再去读取包头中的目的MAC地址,并在地址表中查找相应的端口,如果表中有与这目的MAC地址对应的端口,则把数据包通过该端口进行传输;如果在表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以记录目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
- 总结
交换机内维护了一张表,其中记录了MAC地址与端口的对应关系。当交换机收到包时,会首先更新包源MAC地址与端口的关系。随后读取包的目标MAC地址,接着在映射表内进行查询,此时有两种结果:
1.如果目标MAC地址已经被记录,则直接通过对应的端口进行转发。
2.如果目标MAC地址未被记录,则所有的端口都进行发包操作即广播(即泛洪),来确保包能被交换机转发出去。
而当目标MAC地址的设备收到包进行回应时,则回到流程第一步的“当交换机收到包时”,此时会更新映射表,添加该MAC地址与端口的对应关系。今后这两台设备进行通信时,交换机则不会再进行广播操作而是直接找到相应端口进行转发。
二、网络环路的产生
环路大概就是:A交换机网络从B交换机网络收到了要发给X的消息,随后再次转发给B交换机网络(其中A和B网络所属可能是同一台交换机),这样该消息就会在A和B网络中不断被转发,造成环路问题。
原因大多是因为线路连接问题或是硬件设备自身的问题。
三、网络环路的影响
首先的影响就是MAC地址表震荡。因为交换机收到包时会进行表的更新,即交换机在收到包时会更新该包源端口与设备MAC之间的映射关系。但是如果构成环路的话,则代表该路由器会在不同的端口收到同一个包,该包源MAC地址是相同的,则MAC地址表中的映射关系会一直发生“跳跃”,即表内同一个MAC地址在不同的端口上进行“跳跃”,这便是MAC地址表的震荡。
随后最大的影响便是广播风暴。因为造成了环路,且在二层交换机中是没有TTL机制来约束包的转发的,所以数据包会在环路内被无限次的转发,由此造成广播风暴。更严重的是可能数据包在环路内不是单播而是广播(比如说该包的源和目的相同,则由于MAC地址表震荡造成泛洪),由此对相关资源的消耗更为巨大。
同时网络环路也可能造成重复数据帧。当拓扑关系出现问题时,可能会出现多端口可致目的MAC地址,则数据可能会在广播中被复制转发,目的地则会收到相同的两份数据。当出现环路时,这两份数据会转发给初始交换机,重复上述操作,造成数据不断的被复制,从而占用越来越多的资源。
四、如何避免网络环路
最简单的方法就是设定生存时间值TTL,来避免无限次的转发从而避免环路带来的广播风暴等影响。但是二层交换机不支持该内容,且这样是治标不治本,环路并没有被解决。
随后我们可以引入一些算法和破坏协议来避免网络环路,使可以及时发现并切断网络环路。
当然在日常接线中,也要注意,从根本上避免网络环路的产生。例如:
- 例如A与B已连接交换机C,则A与B之间不可再连线。
- 不可用网线连接同一交换机的两个端口。
- 假如A连接了B,B连接了C,则A不可连接C。
- 等等…
五、二层环路的直观异常情况
以上是关于学习记录:二层网络环路相关的主要内容,如果未能解决你的问题,请参考以下文章