别再把防火墙当“透明盒子”了,它可是丢包重灾区!

前阵子一个业务系统频繁超时,从客户端到服务器全程 ping 通、路由正常,TCP 连接却总卡在 SYN。

查到最后,竟是防火墙的会话表满了,新连接直接被静默丢弃!运维说:“防火墙没告警啊?”我说:“它不说话,不代表没吞包。”

80% 的“诡异丢包”,根源不在链路,而在安全设备——它们默默过滤、限速、拒绝,却不留痕迹

今天,我不讲功能,专扒防火墙“丢包”的五大暗门。

01

会话表溢出

  • 原理

    防火墙为每个连接(如 TCP 会话)创建状态条目,存储源/目的 IP+端口、协议、状态等。

  • 问题
    • 设备规格有限(如低端墙仅支持 1 万会话)
    • DDoS 攻击、爬虫、P2P 应用可瞬间耗尽会话表
    • 新连接无法建立,SYN 包被静默丢弃(无 RST,无 ICMP)
  • 表现
    • 客户端卡在 “Connecting…”
    • 服务器根本收不到 SYN
    • 防火墙 CPU/内存看似正常

 排查命令(以华为 USG 为例)

display firewall session statistics

若 Current sessions 接近 Max sessions → 确认溢出。

02

安全策略未放行(或顺序错误)

  • 典型场景
    • 策略只放行了 80 端口,但应用实际用 8080
    • 策略顺序靠后,被前面的“deny all”拦截
    • 未放行 ICMP,导致 ping 不通(误判为网络故障)
  • 关键特性

    防火墙默认拒绝所有未明确允许的流量(与交换机/路由器相反)

  • 隐蔽性

    大多数防火墙默认不记录 deny 日志(为性能考虑),导致“丢得无声无息”

 对策

  • 在策略末尾加一条 log-enabled deny rule 用于调试
  • 使用 packet capture 或 flow trace 功能追踪包路径

03

深度检测(DPI/IPS/AV)性能过载

  • 原理

    启用 IPS、防病毒、URL 过滤等功能后,每个包需解码、比对特征库、重组流。

  • 后果
    • CPU 使用率飙升
    • 突发流量下处理不过来,直接丢包
    • 即使带宽未打满,也会出现高延迟或连接失败
  • 误区

    “千兆防火墙 = 能跑满千兆” → 实际开启 DPI 后,吞吐可能只剩 200Mbps

 验证方法
临时关闭高级安全功能,测试业务是否恢复。若恢复 → 性能瓶颈在 DPI。

04

MTU/分片处理异常

  • 场景
    • 防火墙接口 MTU=1500,但中间链路有 GRE/IPsec 封装(额外开销 24~50 字节)
    • 终端发 1500 字节包 → 到防火墙需分片
  • 问题
    • 某些防火墙默认丢弃分片包(防碎片攻击)
    • 或重组超时,导致大包丢失
  • 表现
    • ping -l 1472 通,ping -l 1473 不通(Windows)
    • HTTPS 能建连,但文件上传失败

 解决

  • 调整终端 MSS(ip tcp adjust-mss 1400
  • 或在防火墙上启用分片重组(谨慎,有安全风险)

05

连接速率/并发限制(DoS 防护误伤)

  • 功能本意

    防止单 IP 发起过多连接(如每秒 100 个 SYN)

  • 现实问题
    • 业务系统本身是高并发(如 API 网关、微服务)
    • 被防火墙 DoS 策略误判为攻击
    • SYN 包被限速或丢弃
  • 日志线索

    查看 DoS 防护日志,常见关键词:syn-flood, connection-limit, rate-exceed

 建议
对可信业务 IP 设置白名单,豁免 DoS 检测。

06

结语

防火墙不是管道,而是安检门——它要开箱、查证、比对黑名单。每一道检查都可能成为阻塞点。

真正专业的排障,不是绕过防火墙,而是学会看它的“安检记录”和“排队人数”

下次再遇“通而不通”,别只盯着路由表——答案往往藏在会话表和策略日志里。

上一篇 【转载】HCIE R&S 备考笔记 Qos令牌桶技术原理
下一篇 《统信UOS》电脑开机之后进入emergency mode/“journalctl -xb”