二层网络中的环路是怎么产生的?

一、什么是“环路”?

简单说:

当一个数据包,在网络中永远绕圈转,出不去,也没人丢,就成了“环路”。

二层网络中的环路是怎么产生的?

常见后果:

  • 网络广播风暴(Broadcast Storm)
  • CPU 被打满,设备控制面失联
  • MAC 表不断刷新,出现 MAC 抖动
  • 网速慢、丢包、页面打不开、ARP 无法建立
  • 严重时网关“假死”,整个园区瘫痪

二、什么是二层环路?

关键字:交换机、广播包、MAC 学习、没有TTL机制

二层网络中的环路是怎么产生的?

场景特征:

  • 全都是交换机(L2设备)连接
  • 没有路由器参与
  • 使用的是广播或泛洪(如 ARP)
  • 设备没有 TTL 机制(不像IP那样能“跳数”自动丢弃)

数据成环过程(图示):

我们假设网络结构如下:

二层网络中的环路是怎么产生的?

上面三台交换机构成了一个物理环

假如一台 PC1 发了一个 ARP 请求(广播包),如下流程会发生:

  1. PC1 → Switch1:广播ARP
  2. Switch1 → Switch2、Switch3:泛洪ARP
  3. Switch2 → Switch3:也泛洪ARP
  4. Switch3 → Switch1:继续广播

结果:一个包在网络中不断转圈,没人丢它。

这就是二层环路

典型二层环路现象:

  • 网络周期性掉线、突然卡死
  • ARP 表不稳定
  • MAC 表跳来跳去,学习不稳定
  • Ping 通,但网页打不开 / 服务访问中断
  • 打开 display mac-address / display arp,发现一堆漂移现象

三、那什么是三层环路?

关键字:路由、IP包、策略路由/静态路由/OSPF不收敛

二层网络中的环路是怎么产生的?

场景特征:

  • 有三层设备(L3交换、路由器)参与
  • 出现了IP包在路由表中不断跳转的现象
  • 一般不会造成广播风暴,但会造成性能问题或路由震荡

示例结构:

+---------+ +---------+
| RouterA |--------| RouterB |
+---------+ +---------+
\ /
\ /
\ /
\+--------+/
|RouterC|
+--------+

三个三层设备组成了一个逻辑路由环。

如果出现以下配置失误:

  • RouterA → 到10.1.1.0/24 走 RouterB
  • RouterB → 到10.1.1.0/24 走 RouterC
  • RouterC → 到10.1.1.0/24 走 RouterA

则 IP 包会这样循环:

→ A → B → C → A → B → C…

但因为 IP 层是有 TTL 的,跳够 255 次后,最终会被丢弃。 所以三层环路不会导致广播风暴,但会带来:

  • Ping 丢包
  • Tracert 显示跳来跳去
  • 路由表不稳定
  • OSPF/BGP 等协议疯狂更新 / flap
  • 用户访问缓慢或失败

四、物理成环就一定有环路吗?

不是!关键是有没有“逻辑环路”。

举例:堆叠、链路聚合、LACPIRF 这些结构在物理上是“环”,但控制平面能识别这些链路并形成单一逻辑路径,就不会发生数据环路。

另外,STP 等防环协议正常运行时,哪怕物理成环,也不会数据成环。

五、谁的影响更大?二层 or 三层?

★二层环路的影响更致命更难查

原因:

  1. 二层广播包无法被 TTL 控制,一旦开始转圈,只能靠人为断链或 STP/环路检测阻断
  2. 无法定位入口点:抓包发现全网泛洪,往往查不出是谁发起的
  3. 会拖垮整网,包括核心交换机、DHCP、网关、ARP 全部异常
  4. 三层环路大多因配置错误,能通过 Tracert 定位,影响范围受限,TTL能兜底

六、防环机制有哪些?

我们分别说二层、三层的应对手段。

二层防环机制:

二层网络中的环路是怎么产生的?

三层防环机制:

二层网络中的环路是怎么产生的?

阅读剩余
THE END