<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>MSS on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/mss/</link>
        <description>Recent content in MSS on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Thu, 23 Jul 2026 07:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/mss/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>一次跨机房 IPSec VPN 隧道大包不通导致业务间歇性卡死的排查记录</title>
            <link>https://blog.5772447.xyz/posts/6ef1b86a/</link>
            <pubDate>Thu, 23 Jul 2026 07:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/6ef1b86a/</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;我们两个机房（A 机房应用集群、B 机房数据库与文件存储）之间通过一条站点到站点的 IPSec VPN 隧道互联，跑了大半年一直平稳。某次业务扩容后，运维群里陆续冒出几条零散反馈：A 机房的备份任务往 B 机房的存储推文件时经常&amp;quot;卡住不动&amp;quot;，跨机房的 MySQL 主从同步偶尔中断重连，个别同事反映从 B 机房拉大的日志包会在中途&amp;quot;僵住&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;但奇怪的是，这些抱怨都不&amp;quot;稳定&amp;quot;——同一个人换个小文件、换个时间点又一切正常。网络监控上带宽、丢包、延迟三条曲线都健康得很，隧道状态 up，&lt;code&gt;ping&lt;/code&gt; 对端也是稳稳的 0 丢包。于是问题被当成&amp;quot;偶发抖动&amp;quot;拖了两天，直到一次跨机房的数据库全量同步在传到几百 MB 时彻底断掉、重试三次都失败，才被正式立项排查。&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;p&gt;把现象归拢后，特征异常清晰又诡异：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;小流量全通，大流量必卡&lt;/strong&gt;。&lt;code&gt;ping&lt;/code&gt;（默认 64 字节）0 丢包；SSH 登录、执行短命令、&lt;code&gt;curl&lt;/code&gt; 拉小页面都秒回。但只要是持续的大数据传输——&lt;code&gt;scp&lt;/code&gt; 大文件、&lt;code&gt;rsync&lt;/code&gt; 全量、&lt;code&gt;mysqldump&lt;/code&gt; 跨机房导入——传输曲线都会走到某个点后骤降为 0，连接不报错、就是永久挂起，直到超时。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;方向不对称&lt;/strong&gt;。从 A→B 推大文件几乎必卡；B→A 拉反而好一些，但也偶发。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;协议无关&lt;/strong&gt;。HTTP、MySQL、NFS 全中招，说明不是应用层的问题。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;同机房内部完全正常&lt;/strong&gt;。同样的传输在各自机房内部跑，速度拉满、毫无问题。问题只出现在&amp;quot;跨隧道 + 大数据量&amp;quot;这个交集上。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&amp;ldquo;ping 通但大文件传不动&amp;quot;这组症状，几乎是 MTU/分片类问题的教科书式指纹。方向立刻收敛到链路 MTU 上。&lt;/p&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;&lt;strong&gt;第一步：用带 DF 标志的大包探测路径 MTU。&lt;/strong&gt; 普通 &lt;code&gt;ping&lt;/code&gt; 用小包，掩盖了问题。我改用大包 + 禁止分片（DF）来探路。Linux 下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# -M do 设置 DF 位（不允许分片），-s 指定 ICMP 数据载荷大小&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ping -M &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; -s &lt;span style=&#34;color:#ae81ff&#34;&gt;1472&lt;/span&gt; 10.20.0.10   &lt;span style=&#34;color:#75715e&#34;&gt;# 1472 + 28(IP+ICMP头) = 1500&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ping -M &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; -s &lt;span style=&#34;color:#ae81ff&#34;&gt;1400&lt;/span&gt; 10.20.0.10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ping -M &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; -s &lt;span style=&#34;color:#ae81ff&#34;&gt;1300&lt;/span&gt; 10.20.0.10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;结果非常关键：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;-s 1472&lt;/code&gt;（整包 1500）：100% 丢失，&lt;strong&gt;且没有收到任何 &amp;ldquo;Frag needed&amp;rdquo; 的 ICMP 回包&lt;/strong&gt;，就是静默超时。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-s 1400&lt;/code&gt;（整包 1428）：依旧不通。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-s 1300&lt;/code&gt; 附近开始逐步能通，二分下去，实测隧道能稳定通过的整包上限在 &lt;strong&gt;1422 字节左右&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这解释了一切：隧道的实际可用 MTU 远小于以太网标准的 1500。IPSec 封装（ESP 头 + 认证 + 可能的 NAT-T UDP 封装）会给每个包额外增加几十字节开销，把有效载荷 MTU 压到了 1400 出头。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;第二步：确认这是&amp;quot;PMTUD 黑洞&amp;quot;而非普通 MTU 不匹配。&lt;/strong&gt; 正常情况下，当一个 1500 的 DF 包进不了小 MTU 的链路时，中间设备应该回一个 ICMP Type 3 Code 4（&lt;code&gt;Fragmentation Needed and DF set&lt;/code&gt;）告诉发送方&amp;quot;请把包改小到 1422&amp;rdquo;，这就是路径 MTU 发现（PMTUD）。发送方收到后会自动缩小该目的地的 MSS，传输就能恢复。&lt;/p&gt;&#xA;&lt;p&gt;但我们的探测里，大包是&lt;strong&gt;静默丢弃、没有任何 ICMP 反馈&lt;/strong&gt;。抓包印证了这一点：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 在 A 机房发送端抓，只见发出的大包，收不到任何 ICMP Type 3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tcpdump -ni any &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;icmp and icmp[icmptype]==3&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 长时间无输出&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;发送方永远等不到&amp;quot;包太大&amp;quot;的通知，就会一直用 1500 的大包硬发、永远被丢，同时因为 TCP 已经建连（三次握手是小包，能通），应用层只看到&amp;quot;传着传着就不动了&amp;quot;。这正是 &lt;strong&gt;PMTUD 黑洞（PMTUD Black Hole）&lt;/strong&gt;：ICMP 差错报文在路径某处被吞掉，导致路径 MTU 发现机制失效。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;第三步：定位 ICMP 被谁吃掉。&lt;/strong&gt; 沿着隧道两端逐跳排查防火墙策略，发现 B 机房出口防火墙上有一条几个月前为&amp;quot;防 ICMP 洪水&amp;quot;加的粗暴规则——直接 &lt;code&gt;deny&lt;/code&gt; 了所有入向 ICMP。这条规则把正常的 &lt;code&gt;echo&lt;/code&gt; 挡了（但因为大家平时 ping 的是内网网关、没走到这条规则，一直没暴露），更致命的是把 PMTUD 赖以工作的 Type 3 Code 4 差错报文也一并丢弃了。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;第四步：解释方向不对称。&lt;/strong&gt; A→B 更容易卡，是因为 A 机房应用发出的大包在进入隧道后触达小 MTU，而回程的 ICMP 差错又被 B 侧防火墙拦截；B→A 方向的差错报文路径不同、部分能漏回来，于是表现&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;p&gt;处理分两层：&lt;strong&gt;先恢复 PMTUD，再用 MSS 钳制兜底&lt;/strong&gt;，双保险。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;1. 放行 PMTUD 必需的 ICMP。&lt;/strong&gt; 在 B 机房出口防火墙上，把&amp;quot;一刀切 deny ICMP&amp;quot;改为精确放行差错类报文（尤其是 Type 3 Code 4），仅对 echo-request 做限速而非全禁：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 放行 destination-unreachable（含 fragmentation-needed）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;allow icmp type 3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# echo 改为限速，兼顾防洪与可运维&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;limit icmp echo-request rate 50/s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2. 在隧道网关上做 TCP MSS 钳制（MSS clamping）。&lt;/strong&gt; 这是应对 MTU 受限隧道最稳妥的通用手段——不依赖 ICMP 是否可达，直接在网关改写经过的 TCP SYN 包里的 MSS 选项，强制两端协商出一个不会超限的分段大小。按隧道实测 MTU 1422 计算，MSS = 1422 − 40（IP+TCP 头）= 1382，保守取整用 1360：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Linux/iptables 在 FORWARD 链对 SYN 包钳制 MSS&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -o tun0 -j TCPMSS --set-mss &lt;span style=&#34;color:#ae81ff&#34;&gt;1360&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 或让内核按出接口 MTU 自动算&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -o tun0 -j TCPMSS --clamp-mss-to-pmtu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;网络设备（如思科/华为）上对应的是 &lt;code&gt;ip tcp adjust-mss 1360&lt;/code&gt; 配到隧道接口。&lt;/p&gt;&#xA;&lt;p&gt;改完立刻复测：&lt;code&gt;scp&lt;/code&gt; 大文件、&lt;code&gt;rsync&lt;/code&gt; 全量、跨机房 MySQL 同步全部一次性跑通、速度稳定。之前必卡的几百 MB 全量导入顺畅完成。&lt;/p&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;根因是两个独立因素在&amp;quot;大包 + 跨隧道&amp;quot;场景下叠加：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;IPSec 封装开销压低了隧道有效 MTU&lt;/strong&gt;，1500 的标准以太网包进隧道后超限；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;B 侧防火墙一刀切禁用 ICMP，掐断了 PMTUD 的反馈通道&lt;/strong&gt;，让本可自愈的 MTU 问题恶化成静默黑洞。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;单独任一因素都不致命：只有封装开销，PMTUD 能自动降 MSS；只有禁 ICMP，若无小 MTU 链路也无害。两者相遇，才造出&amp;quot;ping 通、小包通、大包静默死&amp;quot;这种最难缠的间歇性故障。而 TCP 建连用小包能成功、真正的数据传输才触发大包，正是它伪装成&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;&lt;strong&gt;隧道/Overlay 网关默认配置 MSS 钳制&lt;/strong&gt;：凡是 IPSec、GRE、VXLAN、PPPoE 等有封装开销的链路，一律在网关上启用 &lt;code&gt;clamp-mss-to-pmtu&lt;/code&gt; 或按实测 MTU 固定 MSS，不要指望 PMTUD 一定可用。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ICMP 不要一刀切禁用&lt;/strong&gt;：Type 3（尤其 Code 4 fragmentation-needed）、Type 11（time-exceeded）必须放行，防洪应对 echo 用限速而非全禁。把这条写进防火墙基线评审清单。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;上线跨链路业务前做大包连通性验证&lt;/strong&gt;：用 &lt;code&gt;ping -M do -s &amp;lt;size&amp;gt;&lt;/code&gt; 二分探测真实路径 MTU，纳入变更验收，而不是只 &lt;code&gt;ping&lt;/code&gt; 一下就签字。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;监控补一条大包探针&lt;/strong&gt;：在跨机房链路上定时发 DF 大包做拨测，MTU 收缩能第一时间告警，而不是等业务传大文件才发现。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;变更留痕&lt;/strong&gt;：那条&amp;quot;防 ICMP 洪水&amp;quot;的规则加的时候没评估副作用。任何安全策略变更都应评估对 PMTUD/路径探测的影响。&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;ping 通&amp;quot;给人的虚假安全感——小包能过不代表链路健康，大包才是真正的试金石。排查的关键转折是改用带 DF 的大包探测，一眼看穿隧道 MTU 被压缩，再顺着&amp;quot;为何没有 ICMP 反馈&amp;quot;揪出被防火墙吞掉的 PMTUD 通道。对所有带封装的隧道链路，记住两条铁律：&lt;strong&gt;默认做 MSS 钳制&lt;/strong&gt;，&lt;strong&gt;永远不要一刀切禁 ICMP 差错报文&lt;/strong&gt;。把这两点固化进基线，这类&amp;quot;小包通、大包死&amp;quot;的幽灵故障就能从源头杜绝。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
