新路由器接入交换机后几分钟全断?二层环路与广播风暴排查指南
上次遇到这个故障是在一个朋友公司的机房里。他们刚把一台新采购的企业级路由器接到核心交换机上现场测试一切正常内外网都能通大家正准备收工结果不到几分钟整层楼的电脑、门禁、无线AP全部断网连交换机都登不进去了。这种刚接上正常几分钟后全挂的现象很多人第一反应是路由器坏了但实际排查下来真正的问题往往藏在拓扑和配置细节里。本文就围绕这个高发故障场景拆解背后的原理、排查方法以及一劳永逸的预防措施。这个问题的典型特征是物理链路正常、设备刚启动或手动重启后能坚持一小段时间然后整个二层网络被拖垮。适合网络运维、弱电工程师、以及刚入门做企业网络组网的朋友收藏参考。下面我把整个排查思路、根因分析和实操命令全部展开讲清楚。1. 现象复现与第一反应先把正常拆开看1.1 前几分钟能上网到底说明什么很多人会把能上网和网络配置没问题划等号这是排障里最容易误判的一点。路由器刚接到核心交换机时一切正常说明几个基本条件是满足的物理链路是通的网线、光模块、端口协商都没有硬件级故障路由器WAN口到运营商或上级网络的连通性正常路由器LAN口到核心交换机的VLAN配置至少在初始时刻能转发。设备能获得IP地址或已有静态IP可达说明DHCP或网关配置在初始状态下可用。但能上网只代表当时的数据转发路径是通的不代表网络是健康的。这里要特别留意一个容易被忽略的细节很多交换机在端口刚刚up的几十秒内会经历STP生成树协议的收敛、MAC地址表的重新学习、ARP缓存的重新建立。换句话说前几分钟的正常很可能是设备还没完全进入稳定工作状态时的假象。1.2 断网是全断还是部分断决定了排查方向接到这类故障报告时我建议先不问为什么断网而是问三个关键问题问题全断特征部分断特征是所有设备都无法上网还是部分电脑可以交换机所有端口几乎同时瘫痪连管理都困难部分终端能上网另一部分反复掉线是间歇性恢复还是彻底不通彻底不通拔线重插后短暂恢复又断时好时坏看看视频会卡、ping会丢包路由器本身能不能ping通外网路由器管理界面也卡负载极高路由器正常但下连交换机上的设备不通如果是全断优先级最高的怀疑对象是二层环路和广播风暴如果是部分断则优先考虑DHCP冲突、ARP欺骗或某个VLAN配置异常。我当时的现场情况就是典型的全断核心交换机上的所有VLAN几乎同时瘫痪连SSH登录都超时。这基本就是把怀疑范围锁定在了二层环路和广播泛洪上。1.3 先做一次拔线实验最原始的定位手段在拿到诊断命令之前最快的定位方式是物理隔离。具体做法是先把路由器与核心交换机之间的连线拔掉观察网络是否恢复如果恢复说明问题出在路由器这一侧再单独接回路由器的一个LAN口观察是否再次引发断网如果单口接入正常继续把第二个、第三个LAN口依次接回直到故障被触发。这种二分法式的排查可以帮助你在没有控制台权限时快速判断故障范围。我那次就是通过这个办法确认故障只在路由器LAN口与核心交换机之间存在多链路连接时才会出现。2. 核心原理拆解环路不是立刻断网而是几分钟后爆发2.1 广播风暴为什么有延迟很多新手不理解如果存在二层环路为什么不是一接上就断而是要等几分钟这就要理解广播帧在环路中的累积过程。交换机会把未知目的MAC地址的帧、广播帧、组播帧从所有同VLAN端口泛洪出去。当拓扑中存在物理环路且STP没有将其阻塞时广播帧会在环路中不断被复制、转发、再复制形成指数级增长的数据洪流。但这个过程不是瞬间打满所有带宽的原因在于交换机端口的缓冲区、MAC地址表的失效需要时间部分端口还在进行STP状态迁移从Listening到Learning再到Forwarding需要时间广播帧的洪泛需要先触发足够多的未知目的MAC请求。所以实际情况往往是接上后的1-3分钟内网络还能勉强转发但广播帧已经在环路里像滚雪球一样翻倍增长。等到广播流量占满上联带宽、交换机CPU被中断风暴打满时所有端口的数据转发都会阻塞表现为突然全断。2.2 环路为什么会拖垮核心交换机这里要用一个生活化的类比想象在一条环形高速公路上一辆车广播帧永远找不到出口于是每经过一个收费站交换机端口就会复制一次几分钟后整条高速公路上全是这种循环车辆真正的用户流量自然进不去。从技术指标看环路会带来三个连锁反应广播/组播/未知单播帧反复复制放大最终耗尽链路带宽MAC地址表震荡交换机在多个端口之间反复学习同一个MAC地址导致正常终端的流量被错误转发甚至丢弃CPU过载交换机CPU需要处理大量中断和协议报文日志刷新都困难管理面同步瘫痪。当你发现连交换机都登不进去时说明CPU已经被灌满这基本是环路或广播风暴的实锤。2.3 定位环路的两条核心命令在华为交换机上可以这样定位display stp brief查看各端口的STP角色和状态。正常情况应该存在一个端口处于Blocking/Discarding状态如果所有端口都是Forwarding说明环路存在。display mac-address检查MAC地址表如果发现同一MAC地址在两个或以上端口之间频繁跳变基本可以确定存在环路。思科交换机对应命令show spanning-tree summary show mac address-table我当时的现场输出里路由器的网关MAC地址在GigabitEthernet0/0/1和GigabitEthernet0/0/2之间来回漂移这就直接暴露了问题路由器两个LAN口同时接在了核心交换机的同一个VLAN里形成了二层环路。2.4 华为、H3C与思科在STP默认行为上的差异这里插一个重要经验不同厂商交换机的STP默认模式不同直接影响故障表现。华为交换机默认运行MSTP且部分版本的默认forward-delay是15秒max-age是20秒拓扑收敛相对较慢思科默认运行PVST或Rapid PVST按VLAN分别计算生成树收敛更快H3C默认也启用MSTP。这意味着如果核心交换机是思科路由器接入后STP可能在几十秒内完成阻塞故障延后会短一些如果是华为某些情况下生成树计算时间更长可能表现为多撑了几分钟才彻底断。理解这点就能解释为什么有些现场是3分钟断有些是10分钟断。3. 接口配置暗坑Access口与Trunk口的VLAN逻辑3.1 路由器接到核心交换机应该用Access还是Trunk这是第二个极容易踩坑的地方。很多人认为核心交换机就得上联口配Trunk结果把路由器当交换机用把所有VLAN都透传过去引发广播泛洪和管理混乱。从设计角度讲路由器LAN口接到核心交换机通常应该这样规划路由器作为出口网关其LAN口连接核心交换机时一般使用Access口绑定一个明确的业务VLAN如果存在多个业务网段需要通过路由器做VLAN间路由也就是热词里常说的单臂路由此时才用Trunk口并且要允许指定的VLAN列表通过路由器与核心交换机之间不建议把Native VLAN混用否则容易出现VLAN标签处理不一致。如果错误地把路由器的LAN口配置成Trunk口并且允许了所有VLAN那么路由器发出的DHCP Discover、ARP请求等广播报文会被交换机打上各个VLAN的标签后泛洪到所有端口。这不仅是风暴隐患还会让不同VLAN的终端收到本不该收到的广播包导致某些设备获取到错误网关信息。3.2 单臂路由场景下的特殊注意事项热词里提到ensp 基于华为路由器的单臂路由这在实际工程里也很常见。单臂路由的拓扑是路由器只有一个物理接口通过Trunk透传多个VLAN子接口实现不同VLAN间的互通。在这个场景下有一个典型的过了几分钟断网故障子接口VLAN封装配置正确但路由器的ARP表项在多个子接口之间反复刷新加上核心交换机上对应Trunk口的STP边缘端口未开启每次拓扑变化都会触发整个VLAN的重收敛。实操建议路由器子接口的VLAN编号要对应交换机上实际创建的VLAN不要为了图省事默认vlan 1核心交换机连接路由器的端口如果确认下行只有路由器一台设备建议开启边缘端口stp edged-port enable这样既保留生成树保护又能加速端口进入转发状态。3.3 VLAN不匹配导致的假通真断还有一种情况需要特别提醒路由器LAN口协商为Access口、VLAN为10但核心交换机的端口配置为Trunk且Native VLAN是10此时流量可能刚开始是通的因为Native VLAN不打标签。但过几分钟后当路由器有机会发送带VLAN标签的帧时交换机就会因标签不匹配而丢弃。这类问题很难通过ping网关发现最好的排查方式是抓包看帧的VLAN标识。现场可以用Wireshark抓包观察路由器LAN口发出的帧如果所有帧都无标签但交换机端口是Access且PVID就是路由器所在VLAN配置正确如果帧带802.1Q标签但交换机端口是Access通常会被直接丢弃表现为时通时断。4. DHCP与网关配置的隐性冲突几分钟后新设备连不上4.1 两个DHCP服务器抢答的后果路由器刚接到核心交换机时一切正常能上网这种表述往往意味着路由器开启了DHCP功能给终端下发地址。但如果核心交换机上原本就存在DHCP服务器或者网络里还有其他路由器/防火墙在跑DHCP就会出现两个甚至多个DHCP服务器抢答的情况。最初几分钟终端还可能使用之前缓存的租约继续工作等到DHCP租约更新或新设备接入时分到了不同网段的地址路由就乱了表现就是突然所有设备无法上网。典型场景原有网络中核心交换机充当网关DHCP Server在内网服务器上新接入的路由器WAN口拨号LAN口开启了默认的DHCP Server地址池是192.168.1.x原有DHCP分配的是192.168.10.x。终端如果先收到路由器的DHCP Offer就会拿到192.168.1.x地址但网关还是旧的192.168.10.1自然上不了网。4.2 排查DHCP冲突的三个快速命令在路由器上查看DHCP绑定情况display dhcp server statistics在核心交换机上查看DHCP Snooping绑定表如果启用display dhcp snooping user-binding在测试电脑上确认当前地址和网关ipconfig /all如果发现终端拿到的网关与路由器LAN口地址不一致基本就是DHCP冲突。4.3 网关就是路由器吗这个问题顺带说清楚热词里出现网关就是路由器吗其实和本文场景强相关。在很多人的认知里网关路由器但在企业网络里不总是这样。网关可以是三层交换机上的VLANIF接口地址也可以是路由器或防火墙的接口地址。对于终端而言网关就是下一跳IP但网关背后数据转发可能由交换机硬件完成也可能由路由器软件路由完成。在故障场景里如果终端配置的网关是核心交换机但路由器LAN口也配置了同网段的IP就会产生网关冲突。某些终端可能通过ARP解析到路由器的MAC地址把流量发给路由器而路由器并不清楚内网拓扑又把流量扔回交换机形成三层环路。排查方式登录交换机检查VLANIF接口地址与直连路由器地址是否冲突display ip interface brief5. 几分钟这个时间窗口从老化时间反推故障链5.1 三个关键时间参数为什么不是几十秒也不是几个小时而是几分钟这是因为网络设备里的三个老化计时器刚好在这个量级。计时器典型默认值故障表现ARP动态表项老化时间1200秒华为/ 300秒部分版本表项刷新失败导致转发间歇中断MAC地址表老化时间300秒MAC表震荡流量被错误转发STP Forward Delay15秒/端口加上收敛时间端口状态迁移期间流量不通以MAC地址表老化为例交换机学习到一个MAC地址在端口1老化时间一般为300秒。如果环路存在同一MAC地址会在端口1和端口2之间反复出现交换机会不断刷新表项最终导致该MAC对应的终端完全不可达。这个过程从环路形成到故障爆发正好在几分钟量级。5.2 最典型的三个故障链结合时间窗口和现象我总结了三种最常见的故障链故障链A二层环路广播风暴触发路由器多个LAN口同时接入同一VLAN时间线0-1分钟物理通1-3分钟广播帧指数增长3~5分钟交换机CPU过载全网瘫痪确认手段display cpu-usagedisplay mac-address。故障链BSTP收敛后阻塞触发核心交换机上原有STP根桥与新增路由器端口抢占角色时间线接入后短暂转发STP在50秒左右完成收敛部分端口被阻塞确认手段display stp brief观察端口角色变化。故障链C双DHCP引发地址风暴触发路由器和原有DHCP服务器同时下发地址时间线最初终端沿用旧租约几分钟后租约更新/新终端接入开始出现IP冲突、网关错误确认手段查看终端IP地址对比DHCP分配记录。5.3 如何快速判断是哪种链条一个简单的方法在断网瞬间用笔记本直连核心交换机的一个普通业务口手动配置一个可用IP然后ping网关。如果ping不通网关或者时通时断优先怀疑二层环路/广播风暴如果ping通网关但上不了外网优先怀疑路由器WAN口、NAT或静态路由问题如果终端IP地址在断网前后发生明显变化比如自动变成了169.254.x.x或者异常网段优先怀疑DHCP冲突。6. 实操现场排查的命令序列与恢复顺序6.1 核心交换机侧排查命令登录核心交换机后建议按以下顺序操作# 查看CPU占用率确认是否存在风暴 display cpu-usage # 查看STP端口状态确认是否有阻塞口 display stp brief # 查看MAC地址表确认是否有漂移 display mac-address # 查看端口统计确认广播包数量 display interface brief display interface GigabitEthernet0/0/1 counters如果在某个端口下发现广播包数量在几十秒内呈现爆炸式增长且MAC地址表不停刷新基本坐实环路。6.2 路由器侧排查命令在华为AR系列路由器上# 查看LAN口状态和IP地址 display ip interface brief # 查看ARP表项 display arp # 查看NAT会话 display nat session all # 查看CPU display cpu-usage通过ARP表项可以直观看到路由器学习到了哪些终端的MAC地址。如果发现大量终端的出接口是同一个下联口但下联口又连接着交换机的多个VLAN就要反思VLAN配置是否正确。6.3 快速恢复的现场操作顺序在找不到根因、业务又不能长时间中断的情况下建议按以下顺序恢复物理拔掉路由器与核心交换机的所有连接线网络通常会在几十秒内自行恢复恢复后登录核心交换机清空MAC地址表reset mac-address在路由器侧关闭不必要的DHCP Server或者将DHCP池改为与原有网络一致重新规划路由器下联口的VLAN模式原则上只保留一个Access口进业务VLAN观察10分钟左右如果稳定再逐步接回其他链路。6.4 风暴抑制的永久配置不要指望每一次都能靠人工拔线救火核心交换机上应该提前配好风暴抑制华为# 在连接路由器的接口下限制广播流量 interface GigabitEthernet0/0/1 broadcast-suppression 20 multicast-suppression 20 unicast-suppression 20思科interface GigabitEthernet0/1 storm-control broadcast level 20 storm-control multicast level 20 storm-control unicast level 20风暴抑制的本质是给流量设置一个熔断器当广播、组播或未知单播流量超过带宽阈值时交换机自动丢弃多余的报文避免CPU被拖垮。这对防止环路瞬间瘫痪全网非常实用。7. 经验沉淀接新设备前做对这几件事能少很多麻烦7.1 接路由器前先在交换机上做的三项检查确认端口模式把连接路由器的交换机端口明确设置为Access或Trunk不依赖Auto协商确认VLAN Isolation路由器属于网关设备它的LAN口应该对接网关VLAN而不是把所有VLAN都透传过去确认STP信任关系如果路由器下联口直连的是终端而非交换机建议配置边缘端口让端口快速转发。7.2 路由器侧的三项默认修改关闭路由器上不需要的DHCP Server功能统一由内网核心设备管理地址下发如果路由器必须用多个LAN口用端口隔离或者不同VLAN / 子接口方式避免多个口在同一广播域检查NAT策略确保内网流量不会从多个WAN口同时出去导致不对称路由。7.3 从设计层面讲网关和路由器不要混为一谈回到开头说的场景最稳妥的企业网络设计是把出口路由和内网网关分开核心交换机做VLAN网关承担内网高速转发路由器/防火墙做出口NAT和路由策略连接运营商三层交换机与路由器之间走互联地址段不把业务VLAN直接压在路由器LAN口上。这样即使路由器故障内网照样可以通信即使内网有环路也不容易把出口设备拖死。用一句话总结我的体会网络里的大部分灵异故障拆开看都是二层拓扑、MAC表、STP和DHCP这几件基础事没理顺。排查这种问题不要急着怀疑设备质量先把拓扑画清楚把接入方式确认好再上命令基本都能在半小时内找到根因。最后分享一个小技巧每次改完网络配置尤其新接入路由器、三层交换机这类设备时提前把核心交换机的配置文件备份一份并把console线插好。真到几分钟全断的时候你还能直接进设备看display cpu-usage而不是被卡在登录界面干瞪眼。这套方法我用了很多年从几十人的办公室到几百台设备的厂房都靠它稳住过局面。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →