<?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/%E5%87%BA%E5%8F%A3%E9%98%B2%E7%81%AB%E5%A2%99%E4%BC%9A%E8%AF%9D%E8%A1%A8/</link>
        <description>Recent content in 出口防火墙会话表 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Thu, 06 Aug 2020 07:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E5%87%BA%E5%8F%A3%E9%98%B2%E7%81%AB%E5%A2%99%E4%BC%9A%E8%AF%9D%E8%A1%A8/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>出口防火墙会话表打满后为何ping通却打开不了网页？一次新建会话被静默丢弃的排查记录</title>
            <link>https://blog.5772447.xyz/posts/b5711efe/</link>
            <pubDate>Thu, 06 Aug 2020 07:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/b5711efe/</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;办公出口与机房边界几乎都经过状态化防火墙：无论策略放行还是 NAT，真正决定「这条流还能不能建」的，往往不是五元组规则本身，而是&lt;strong&gt;会话表（Session / Conntrack / State table）还剩多少坑位&lt;/strong&gt;。会话表是有限的硬件/软件资源，每一条 TCP/UDP/ICMP 流都要占一项，直到超时老化或被主动拆除。&lt;/p&gt;&#xA;&lt;p&gt;日常监控如果只看 CPU、内存、接口带宽和丢包率，很容易放过「表快满了」这一层。运维群最常见的投诉组合是：&lt;strong&gt;外网能 ping 通，网页打不开 / 企业微信间歇进不去 / 个别 SaaS 登录一直转圈&lt;/strong&gt;——现象落在应用层，根因却在边界设备新建会话被静默拒绝。本篇复盘一次早高峰会话表打满事故：区别于本站已写的「本机 TIME_WAIT 占满临时端口」「conntrack 在 K8s 节点打满」，这一次故障点在&lt;strong&gt;出口防火墙上的会话容量与超时策略&lt;/strong&gt;，属于边界状态表容量型问题。&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;周二 08:50 起，服务台工单量在 15 分钟内从个位数爬到上百：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;外网 ICMP 大多正常&lt;/strong&gt;：&lt;code&gt;ping www.baidu.com&lt;/code&gt;、&lt;code&gt;ping 8.8.8.8&lt;/code&gt; 延迟与丢包正常；部分同事甚至用手机热点对比「只有公司网有问题」。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HTTP/HTTPS 建连失败或不稳定&lt;/strong&gt;：浏览器报 &lt;code&gt;ERR_CONNECTION_TIMED_OUT&lt;/code&gt; / &lt;code&gt;ERR_CONNECTION_RESET&lt;/code&gt;；同一站点刷新几次偶尔又能打开，呈现强随机性。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;已建立长连接相对幸存&lt;/strong&gt;：早 8 点前就挂着的 VPN、远程桌面、部分 SSH 隧道多数还能用；&lt;strong&gt;新开&lt;/strong&gt;的浏览器标签、新登企业微信、新发起的 Windows Update 检查大批失败。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;内外表现不对称&lt;/strong&gt;：访问机房内网业务基本正常；故障集中在&lt;strong&gt;出办公网、经出口防火墙 SNAT 上公网&lt;/strong&gt;的流量。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;监控看起来「很健康」&lt;/strong&gt;：出口链路利用率 40% 左右，CPU 60% 未触顶，接口无 CRC/runts；链路层告警沉默，应用层已经炸锅。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;这种「老会话还活着、新会话建不起来 + ICMP 仍通」的组合，强烈指向状态表类故障，而不是线路中断或 DNS 全挂。&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;h3 id=&#34;1-先排除-dns-与客户端侧假象&#34;&gt;&lt;a href=&#34;#1-%e5%85%88%e6%8e%92%e9%99%a4-dns-%e4%b8%8e%e5%ae%a2%e6%88%b7%e7%ab%af%e4%be%a7%e5%81%87%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 先排除 DNS 与客户端侧假象&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;抽 3 台故障终端：&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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nslookup www.example.com 内网DNS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nslookup www.example.com 8.8.8.8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -v --connect-timeout 5 https://www.example.com/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Test-NetConnection www.example.com -Port 443&#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;Test-NetConnection&lt;/code&gt; 到 443 大量 &lt;strong&gt;TcpTestSucceeded : False&lt;/strong&gt;；偶发 SYN 重传。说明不是「解析错了」，而是 &lt;strong&gt;TCP 握手阶段出不了门或回不来&lt;/strong&gt;。再对比走 4G 热点一切正常，确认问题在公司出口路径。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-沿着路径看哪一跳开始丢新流&#34;&gt;&lt;a href=&#34;#2-%e6%b2%bf%e7%9d%80%e8%b7%af%e5%be%84%e7%9c%8b%e5%93%aa%e4%b8%80%e8%b7%b3%e5%bc%80%e5%a7%8b%e4%b8%a2%e6%96%b0%e6%b5%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. 沿着路径看「哪一跳开始丢新流」&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;在汇聚交换机镜像一台故障 PC 的流量，同时在出口防火墙启用包捕获（过滤源 IP = 该 PC 的 NAT 前地址）：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PC 侧：SYN 连续重传，几乎看不到 SYN-ACK。&lt;/li&gt;&#xA;&lt;li&gt;防火墙 inbound：能看到内网进来的 SYN。&lt;/li&gt;&#xA;&lt;li&gt;防火墙 outbound / 会话查询：大量「policy allow」但 &lt;strong&gt;create session failed / table full&lt;/strong&gt; 类计数在爬升（不同厂商文案不同，本质是分配会话槽失败）。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&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;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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 概念命令，厂商各异&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;get system performance status&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose sys session full-stat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 或&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;show asp drop&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;show conn count&#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;98%～100%&lt;/strong&gt;，新建成功率为 0 附近抖动；&lt;code&gt;drop&lt;/code&gt; 计数里 session / conn 相关项与投诉时间轴吻合。至此定位：&lt;strong&gt;出口防火墙会话表打满，新 TCP 无法建状态，被静默丢掉&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-为什么-ping-还通老连接还活着&#34;&gt;&lt;a href=&#34;#3-%e4%b8%ba%e4%bb%80%e4%b9%88-ping-%e8%bf%98%e9%80%9a%e8%80%81%e8%bf%9e%e6%8e%a5%e8%bf%98%e6%b4%bb%e7%9d%80&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 为什么 ping 还通、老连接还活着？&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;拆三层机制：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;ICMP 回显占用会话极短、条目少&lt;/strong&gt;：即便表紧张，偶发 ping 仍可能挤进去或命中已有短时缓存；用户主观上「网是通的」。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;已建立会话继续命中表项&lt;/strong&gt;：状态化设备对 ESTABLISHED 流按已有 session 转发，不占用「新建」配额；所以 8 点前连上的业务「看起来还行」。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;浏览器/App 一次打开会开多条并发连接&lt;/strong&gt;：HTTP/2、静态资源、鉴权跳转会同时建十几条流，表一满就表现为「打开网页特别惨」。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;4-谁把表吃满了容量--超时--流量模型&#34;&gt;&lt;a href=&#34;#4-%e8%b0%81%e6%8a%8a%e8%a1%a8%e5%90%83%e6%bb%a1%e4%ba%86%e5%ae%b9%e9%87%8f--%e8%b6%85%e6%97%b6--%e6%b5%81%e9%87%8f%e6%a8%a1%e5%9e%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. 谁把表吃满了？——容量 × 超时 × 流量模型&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;会话表满很少是「今天突然多了相同用户」，更多是三者乘积：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;因素&lt;/th&gt;&#xA;          &lt;th&gt;本例观察&lt;/th&gt;&#xA;          &lt;th&gt;影响&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;硬件/许可上限&lt;/td&gt;&#xA;          &lt;td&gt;会话容量规格约 50 万，早高峰 used 顶满&lt;/td&gt;&#xA;          &lt;td&gt;硬天花板&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;超时过长&lt;/td&gt;&#xA;          &lt;td&gt;TCP 会话默认 timeout 达 3600s 量级；UDP/DNS 也偏长&lt;/td&gt;&#xA;          &lt;td&gt;死亡连接迟迟不回收&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;无业务识别的粗放 SNAT&lt;/td&gt;&#xA;          &lt;td&gt;办公 + 访客 + 扫码枪云同步 + Windows 更新同一出口&lt;/td&gt;&#xA;          &lt;td&gt;短连接风暴放大占用&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;应用侧&lt;/td&gt;&#xA;          &lt;td&gt;部分胖客户端异常重试、杀毒云查杀高峰、自动更新窗口与上班重叠&lt;/td&gt;&#xA;          &lt;td&gt;短生命周期流暴涨&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;进一步抽样 top talker：某楼层测试网段一台用于压测的客户端在循环拉取外网 API（脚本忘记关）；同时访客 Wi-Fi 未做独立出口/会话配额，早高峰手机推送与视频预加载占了大量短 UDP/TCP。把压测源熔断后，表占用从 100% 缓慢降到 85%，新建开始恢复——证实是&lt;strong&gt;容量被异常 + 正常高峰叠加打穿&lt;/strong&gt;，而不是单条规则写错。&lt;/p&gt;&#xA;&lt;h3 id=&#34;5-和本机端口耗尽如何区分&#34;&gt;&lt;a href=&#34;#5-%e5%92%8c%e6%9c%ac%e6%9c%ba%e7%ab%af%e5%8f%a3%e8%80%97%e5%b0%bd%e5%a6%82%e4%bd%95%e5%8c%ba%e5%88%86&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;5. 和「本机端口耗尽」如何区分？&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;本站有一篇「&lt;code&gt;Cannot assign requested address&lt;/code&gt; / 本地临时端口耗尽」：那是&lt;strong&gt;主机&lt;/strong&gt; &lt;code&gt;ss -s&lt;/code&gt; 里 TIME_WAIT 爆、源端口耗尽。本例终端 &lt;code&gt;netstat&lt;/code&gt;/&lt;code&gt;ss&lt;/code&gt; 正常，问题在&lt;strong&gt;路径中间设备的 session 计数&lt;/strong&gt;。排障口诀：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;终端报本地端口类错误 → 先看主机；&lt;/li&gt;&#xA;&lt;li&gt;终端只是超时/重置，中间盒 &lt;code&gt;session full&lt;/code&gt;/&lt;code&gt;conntrack table full&lt;/code&gt; → 先看防火墙/NAT 设备。&lt;/li&gt;&#xA;&lt;/ul&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;h3 id=&#34;止血分钟级&#34;&gt;&lt;a href=&#34;#%e6%ad%a2%e8%a1%80%e5%88%86%e9%92%9f%e7%ba%a7&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;止血（分钟级）&#xD;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;立刻掐异常源&lt;/strong&gt;：定位并断掉压测脚本、中招的外联病毒主机、无限制的爬虫。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;临时抬升或释放会话&lt;/strong&gt;：在许可允许下扩会话规格；对可识别的低价值网段做更短 timeout 或临时限新建速率。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;业务分流&lt;/strong&gt;：让 Windows Update / 云盘同步走独立代理或错峰策略，减少与交互式上网争抢同一张表。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;必要时主备切换&lt;/strong&gt;：仅当备机会话表健康且同步策略不会把满表状态一起带过去时才切；盲目 failover 可能把备机一并打满。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;本例通过熔断压测源 + 将访客网超时从 3600s 降到 300s，10 分钟内会话占用降到 70% 以下，网页访问全面恢复。&lt;/p&gt;&#xA;&lt;h3 id=&#34;根治配置与架构&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e6%b2%bb%e9%85%8d%e7%bd%ae%e4%b8%8e%e6%9e%b6%e6%9e%84&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根治（配置与架构）&#xD;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;按业务分超时&lt;/strong&gt;：TCP 业务长连接、HTTP 代理、DNS/UDP、半开连接分别设 timeout；半开（SYN-sent）必须短（数十秒级），防止扫描与失败重试长期占坑。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;会话表与新建速率监控&lt;/strong&gt;：对 &lt;code&gt;session used%&lt;/code&gt;、&lt;code&gt;session setup rate&lt;/code&gt;、&lt;code&gt;session deny/full&lt;/code&gt; 做阈值告警（建议 70%/85%/95% 三级），与链路利用率同等重要。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;出口拆分与配额&lt;/strong&gt;：办公生产、访客、终端更新、IDC 出网尽量分防火墙虚拟系统/多出口或至少分策略与超时档案；对访客做连接数/新建速率限速。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SNAT 池与哈希&lt;/strong&gt;：多公网 IP 时确认未因过小 SNAT 池引发额外碰撞与异常重传（重传会叠加会话压力）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;变更门禁&lt;/strong&gt;：上线会大批量建短连接的系统（扫描器、同步工具、压测平台）必须评估会话容量与错峰窗口。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&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;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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 半开会话尽快回收&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set session timeout tcp-halfclose 10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set session timeout tcp-timewait 30&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set session timeout udp 60&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 访客区更短&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set session timeout tcp 300 from zone guest&#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;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;早高峰正常上网 + 访客短连接 + 一台遗忘的压测脚本&lt;/strong&gt;，在「会话超时偏长、无分级配额、只有链路监控没有会话监控」的前提下，把出口防火墙会话表推到 100%。表满后新建 TCP 无法创建状态项，被设备静默丢弃，于是出现「ping 通、老连接还在、新网页打不开」的经典假通网。&lt;/p&gt;&#xA;&lt;p&gt;深层原因有三条：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;度量错位&lt;/strong&gt;：把带宽和 CPU 当出口健康的充分条件，忽略状态表这一真实瓶颈；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;超时一套用工&lt;/strong&gt;：办公 ERP 长连接与访客短视频推送共用超长 TCP timeout，表项周转极慢；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;平面未隔离&lt;/strong&gt;：测试/访客/办公共用同一会话资源池，局部异常可以打穿全局上网。&lt;/li&gt;&#xA;&lt;/ol&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;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;把会话表纳入日常容量管理&lt;/strong&gt;：周报里除了链路 95 峰值，增加会话峰值与新建速率；接近规格 70% 启动扩容或拆分评估。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;超时基线标准化&lt;/strong&gt;：按 zone/策略档案固化 timeout，禁止「全局 3600s 一刀切」上生产。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;异常新建检测&lt;/strong&gt;：对单 IP 新建会话速率做基线；突刺自动限速或隔离，覆盖压测遗忘、蠕虫扫描、被黑外联。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;变更与演练&lt;/strong&gt;：防火墙升级、策略大改后做「会话占用回归」；压测平台默认绑定独立出口与低配额策略。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;投诉话术与一线手册&lt;/strong&gt;：服务台遇到「能 ping 不能上网」优先收：是否仅新业务失败、是否仅出公网失败，并升级网络看 session used，而不是先重装浏览器。&lt;/li&gt;&#xA;&lt;/ol&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;这次故障没有烧板卡、没有环路、也没有 DNS 雪崩，就是出口防火墙一张会话表在早高峰被撑满。状态化网络里，&lt;strong&gt;连通性的真相往往藏在「还能不能新建状态」&lt;/strong&gt;，而不是 ICMP 是否还有回复。处理路径很清晰：用「新流失败 + 老流幸存」锁状态表问题 → 读 full-stat/drop 计数坐实 → 熔断异常源止血 → 用超时分级、配额隔离、会话监控与出口拆分做根治。下次再听到「网是通的但打不开网页」，请先问一句：防火墙的会话表，今天用到百分之几了？&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
