二层环路 与stp(ensp 附含stp实验)

一、二层环路的简单介绍

二层环路(Layer 2 loop)是指在数据链路层(OSI模型的第二层)出现的网络环路。在网络中,环路可能会导致以下几个主要问题

  1. 广播风暴(Broadcast Storm): 当一个设备发送广播帧时,如果网络中存在环路,这个广播帧会在环路中无限循环,导致广播风暴。广播风暴会消耗大量的网络带宽,影响网络性能。

  2. 多份拷贝的帧(Frame Duplication): 在环路网络中,同一个帧可能会在环路中循环多次,导致接收设备收到多个相同的帧。这不仅浪费带宽,还可能导致设备处理重复帧,从而影响应用程序的性能。

  3. MAC地址表不稳定(MAC Address Table Instability): 由于环路导致的帧不断循环,交换机的MAC地址表会不断更新,导致MAC地址表不稳定,影响交换机的正常工作。

  4. 网络拥塞(Network Congestion): 环路引起的广播风暴和帧复制会占用大量的网络资源,导致网络拥塞,增加传输延迟,降低网络的整体性能。

  5. 服务中断(Service Outage): 严重的环路问题可能会导致网络设备过载,甚至崩溃,从而导致服务中断。

为了避免二层环路的危害,通常会在设计网络时采用一些措施,如使用生成树协议(Spanning Tree Protocol, STP)或其变体来防止环路的形成,或者在网络设计中避免物理环路的存在。生成树协议可以在交换机之间通信,选择一个根桥(Root Bridge),并确定到根桥的最佳路径,同时将不必要的冗余链路置于阻塞状态,从而避免环路的产生。

在早期的网络设计中,为了提高可靠性和容错能力,网络工程师可能会在多个交换机之间建立冗余链路,从而形成了物理或逻辑上的环路。这样的设计可以在一条路径发生故障时,通过另一条路径保证网络的连通性。

然而,如果在数据链路层(OSI模型的第二层)没有适当的机制来防止环路的形成,那么数据包就会在环路中无限循环,导致上文提到的广播风暴、帧复制等问题。这些问题会严重影响网络的性能和稳定性。

二、防止二层环路的方法

防止二层环路通常采用以下几种方法:

  1. 使用生成树协议(STP):这是最常用的防止二层环路的方法。STP通过算法选择一个根桥(Root Bridge),并在交换机之间选择一个路径作为转发路径,其他冗余的路径则被阻塞,从而避免环路的产生。
  2. 实施快速生成树协议(RSTP):作为STP的改进版,RSTP在网络拓扑发生变化时能够更快地重新计算生成树,减少了网络恢复的时间。
  3. 配置多生成树协议(MSTP):MSTP允许在网络中同时存在多个生成树实例,这样可以根据需要将流量分配到不同的生成树上,提高了网络的负载均衡能力和容错性。
  4. 进行人工干预:在网络设计阶段,可以通过合理的网络规划和设计来避免形成环路,例如通过合理布局和规划链路连接。
  5. 利用环路保护功能:某些设备可能支持STP的环路保护功能,这可以在链路拥塞或单向链路故障时防止生成树协议失效,从而提高网络的稳定性。
  6. 采用现代网络技术:随着网络技术的发展,一些新的网络技术如以太网Fabric等也可以提供环路预防机制。
  7. 定期维护和监控:定期对网络进行维护和监控,及时发现潜在的环路问题并进行处理。
  8. 使用网络管理工具:使用网络管理工具可以帮助识别和管理网络中的环路问题,例如通过监控工具检测广播风暴等异常现象。
  9. 遵循最佳实践:遵循行业最佳实践和标准,例如在配置交换机时正确设置STP参数,确保所有设备都按照相同的规则运行。

例如,PC1发送了一个未知的单播包,LSW2接收到后查看mac地址表发现没有找到就会进行广播出去,LSW1接收到后发现没有也进行广播,LSW3接收到也没有找到也开始广播,这样就会一直循环下去,这就是二层环路。为此stp也因此产生。

三、实验测试

在设置STP前的二层环路拓扑图:

现在的设备如华为、华三、Cisco网管交换机都会默认开启生成树,来防止环路。
要进行二层环路实验要先关闭STP。关闭STP命令是:undo stp enable

下面是一个二层环路的抓包图:

简单分析:LSW2接收到广播包或未知单播包,进行广播出去,LSW1接收到后进行广播,LSW3接收到后进行广播,一直重复。

设置STP后的拓扑图并且未手动设置主根网桥:

开启stp的命令为是:stp enable

在设置完下面的stp内容后要记得输入stp enable,也可以在设置stp前输入,否则无法成功

LSW1的命令:

<Huawei>system-view

[Huawei]undo info-center enable

[Huawei]sysname LSW1

[LSW1]STP mode stp          //开启stp模式,stp的模式为stp,默认为mstp

[LSW1]display stp    //查看stp的状态

LSW2的命令:

<Huawei>system-view

[Huawei]undo info-center enable

[Huawei]sysname LSW2

[LSW2]stp mode stp

LSW3的命令:

<Huawei>sys

[Huawei]undo info-center enable

[Huawei]sysname LSW3

[LSW3]stp mode stp

查看端口状态:

将LSW1设置成根网桥 LSW3设置成备用网桥

[LSW1]stp root primary        //把LSW1的优先级改成0,变成主根网桥

[LSW3]stp root secondary    //把LSW3的优先级改为4096,变成备用网桥

然后查看LSW2的端口状态可以发现变化

LSW2从原来的主根变成了非根

拓扑图也从原来变成了现在

开启stp的抓包拓扑图

四、总结:

二层环路的由来主要是因为:

  1. 设计冗余:为了提高网络的可靠性和容错能力,网络设计中可能会包含物理或逻辑上的冗余链路。

  2. 缺乏环路预防机制:在没有使用STP或其他环路预防协议的情况下,冗余链路会导致数据在网络中形成环路。

  3. 配置错误:网络管理员在配置网络设备时的错误也可能导致环路的形成。

  4. 协议不兼容:在使用不同厂商的网络设备时,如果它们的STP实现不兼容,也可能导致环路问题。

因此,为了避免二层环路的危害,现代网络设计通常会结合使用冗余链路和环路预防协议,以确保网络的高可用性和稳定性。

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值