<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>泛洪 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/%E6%B3%9B%E6%B4%AA/</link>
        <description>Recent content in 泛洪 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Mon, 05 Oct 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E6%B3%9B%E6%B4%AA/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>未知组播泛洪拖垮接入交换机：IGMP 侦听缺位</title>
            <link>https://blog.5772447.xyz/posts/cc171b18/</link>
            <pubDate>Mon, 05 Oct 2026 09:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/cc171b18/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;公司三楼是营销部门集中办公区，约 120 个信息点，由两台接入交换机汇聚上联。9 月底，IT 按业务需求在三楼部署了一套分布式视频分发系统：6 间会议室各装一台视频终端，用于播放总部推送的培训与晨会直播流，视频源以组播方式(239.x.x.x 段)发送，设计意图是&amp;quot;一路流、全网订阅、节省骨干带宽&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;设备上线第一天下午，三楼陆续有员工反馈网络卡顿;两小时后，两台接入交换机的管理 IP 开始间歇 ping 丢，部分桌面终端掉线重连。网管平台告警显示两台接入交换机 CPU 利用率从常态的 5% 飙到 95% 以上——一个按&amp;quot;省带宽&amp;quot;设计的方案，第一天就把接入层打瘫了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;两台接入交换机 CPU 持续 90%+,&lt;code&gt;show processes cpu&lt;/code&gt; 里流量复制相关进程占大头；管理平面响应迟缓，SSH 经常超时。&lt;/li&gt;&#xA;&lt;li&gt;三楼终端(有线+无线)集体症状：网页转圈、视频会议卡花屏、ping 网关丢包 30%~70%,越靠近视频终端的端口越严重。&lt;/li&gt;&#xA;&lt;li&gt;上联口出向流量异常巨大：一台接入交换机的上联口持续 700Mbps+ 出流量，而三楼正常业务出向总和不超过 100Mbps。&lt;/li&gt;&#xA;&lt;li&gt;视频本身反而&amp;quot;能播&amp;quot;——会议室画面正常，牺牲的是同交换机上其他所有人的流量。&lt;/li&gt;&#xA;&lt;li&gt;抓包确认视频流目的地址是 239.255.0.100~103(组播段)，并非广播地址——排除了&amp;quot;广播风暴&amp;quot;的第一直觉。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;第一步先解释 CPU 飙高的去向。登录交换机看 CPU 排布，高耗进程是组播复制与 VLAN 泛洪相关任务；再对上联口抓包统计，发现同一路 239.255.0.100 的视频流，在&lt;strong&gt;每一个接入端口上都有副本&lt;/strong&gt;——包括根本没有任何设备加入该组播组的空端口。这就是&amp;quot;泛洪&amp;quot;的直接证据：交换机把组播当成来者不拒的流量，从 VLAN 内所有端口复制出去。&lt;/p&gt;&#xA;&lt;p&gt;第二步定位为什么会被泛洪。组播要&amp;quot;按需转发&amp;quot;依赖 IGMP 侦听(IGMP snooping):交换机监听终端的 IGMP join 报文，只向&amp;quot;声明过要看的端口&amp;quot;转发。检查配置，这两台接入交换机的 &lt;code&gt;ip igmp snooping&lt;/code&gt; 处于启用状态(默认开启)，但 VLAN 里&lt;strong&gt;没有 IGMP 查询器(querier)&lt;/strong&gt;——没有设备周期性发 IGMP General Query,视频终端发出的 join 没有被维护成组成员表项，超时后表项清空，交换机对该组退化为&amp;quot;未知组播&amp;quot;处理；而默认行为下未知组播在 VLAN 内泛洪。视频终端为了保活持续重发 join,但查询器缺位使表项始终建不起来，泛洪就 permanent 化了。&lt;/p&gt;&#xA;&lt;p&gt;第三步核实 querier 缺位的原因。该网络的组播路由规划中，核心三层交换机本应启用 PIM 充当 querier,但视频系统设计文档里写的是&amp;quot;二层直连即可，无需三层组播路由&amp;quot;——实施时核心交换机的 PIM 没开，接入 VLAN 里也没有手动指定 IGMP querier,整条组播链路从设计起就缺了&amp;quot;管理者&amp;quot;这一环。三楼只是第一个受害者，四楼会议室挂着同一 VLAN 的另一台测试终端，只是流量小还没触发感知。&lt;/p&gt;&#xA;&lt;p&gt;第四步排除其他嫌疑：终端 ARP 表正常无环路；STP 稳定无拓扑变更风暴；端口广播抑制阈值未触发(因为流量是组播不是广播)——这也是为什么传统的&amp;quot;广播风暴&amp;quot;排查思路在这里全数落空。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;立即止血&lt;/strong&gt;：在两台接入交换机上对视频 VLAN 配置 &lt;code&gt;ip igmp snooping querier&lt;/code&gt;(交换机自身担任查询器，地址用 VLAN SVI),并启用 &lt;code&gt;ip igmp snooping&lt;/code&gt; 的未知组播抑制(&lt;code&gt;unknown-multicast&lt;/code&gt; 转发改为丢弃+向 querier 汇报)。生效后 CPU 五分钟内回落到 15%,掉线终端全部自愈。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;架构补位&lt;/strong&gt;：核心三层交换机为视频 VLAN 启用 PIM Sparse-Mode,由核心担任正式 querier 与 RP,接入层配置固定 &lt;code&gt;ip pim query-interval&lt;/code&gt;;视频源所在 VLAN 与接收 VLAN 间打通组播路由，保证日后跨楼层扩展不再依赖&amp;quot;碰运气&amp;quot;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;防御性配置&lt;/strong&gt;：接入端口启用风暴控制，把&lt;strong&gt;组播&lt;/strong&gt;也纳入抑制阈值(此前只配了广播)；对未知组播统一配置丢弃策略，白名单只放行经审批的组播段。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;流程修正&lt;/strong&gt;：组播类应用上线 checklist 增加三项——querier 归属确认、未知组播处置策略确认、接入层 snooping 状态确认；视频系统的设计文档同步更正&amp;quot;无需三层组播路由&amp;quot;的错误结论。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;直接根因是&lt;strong&gt;组播链路缺少 IGMP 查询器，组成员表项无法建立，视频流退化为未知组播被交换机在 VLAN 内全端口泛洪，接入交换机 CPU 被流量复制打满&lt;/strong&gt;。深层根因是设计文档里&amp;quot;二层直连即可&amp;quot;的错误假设贯穿了实施与验收——组播不是&amp;quot;发出去就完&amp;quot;的单向流量，它依赖查询器、成员报告、表项维护这套持续运转的订阅机制；这套机制里缺任何一环，流量模型就从&amp;quot;精准投递&amp;quot;退化为&amp;quot;全楼广播&amp;quot;，而且退化得悄无声息：视频播得越好，泛洪越严重。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;全网交换机审计：核对每个 VLAN 的 IGMP snooping 与 querier 状态，输出基线报表入监控；&lt;/li&gt;&#xA;&lt;li&gt;风暴控制阈值覆盖组播维度，未知组播默认丢弃；&lt;/li&gt;&#xA;&lt;li&gt;组播应用上线必过三项检查(querier/未知组播策略/snooping 状态)，写入变更评审单；&lt;/li&gt;&#xA;&lt;li&gt;与视频系统的厂商确认保活与 join 周期参数，避免终端行为放大表项老化问题。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;这次故障最容易误判的地方在于&amp;quot;视频明明能播&amp;quot;。组播的可怕之处恰恰在此：订阅机制失效时，它不报错、不中断，只是把&amp;quot;精准投递&amp;quot;静默降级成&amp;quot;全员广播&amp;quot;，用接入层的 CPU 和带宽为设计缺陷买单。排查二层流量问题时，广播风暴之外还要多问一句——组播的 querier 在哪、未知组播去哪，这两个问题答不上来，下一个被打瘫的接入交换机只是时间问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;延伸阅读&#34;&gt;&lt;a href=&#34;#%e5%bb%b6%e4%bc%b8%e9%98%85%e8%af%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;延伸阅读&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/a3490d86/&#34; &gt;记一次交换机物理环路引发的整栋楼广播风暴&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/bea8d60d/&#34; &gt;核心交换机 STP 风暴，全楼网络为何瘫痪？&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/460eac0e/&#34; &gt;记一次无线 AP 信道干扰致高层半层网络瘫痪&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
