当前位置: 首页 > backend >正文

防火墙来回路径不一致导致的业务异常

案例拓扑:
拓扑描述:
服务器有2块网卡,内网网卡2.2.2.1/24 网关2.2.254 提供内网用户访问;
外网网卡1.1.1.1/24,外网网关1.1.1.254 80端口映射到公网
这个时候服务器有2条默认路由,分布是0.0.0.0 0.0.0.0 1.1.1254 以及 0.0.0.0 0.0.0.0 2.2.2.254 走负载均衡
用户通过1.1.1.1 公网地址访问服务器,服务器有一定的几率通过2.2.2.254这条默认路由回复,这个时候就导致了流量来回路径在同一台设备上不一致。
在这里插入图片描述
此次设备是一台奇安信防火墙,给出如下提示:未命中会话丢包数显著增加
在这里插入图片描述
会话是绑定接口的,那么很显然来回路径不一致会导致匹配不到接口下观察到的会话,导致随机的丢包。
当服务器将内网网卡的默认网关删除,并采用明细路由后故障解除。

其他厂家也有一些说法比如:

  1. ‌问题定义与表现‌
    ‌来回路径不一致‌:指数据包进入和离开防火墙时经过不同路径(如流量从接口1出、接口2回),导致防火墙无法正确匹配会话状态。
    ‌半会话问题‌:当路径不一致时,防火墙仅记录单向会话(如仅记录请求方向),回程数据因未匹配会话表被丢弃,表现为TCP连接异常(如第三次握手失败)、ICMP部分丢包或应用访问缓慢。
    半会话问题一般常见于2台防火墙,分别串联在2条二层聚合链路上做HA的情况。
  2. ‌主要原因‌
    ‌路由规划不合理‌:网络中存在多路径但未配置对称路由,导致往返路径分离。
    ‌防火墙严格模式限制‌:默认状态下,防火墙要求会话状态严格匹配(如华为需检查会话链路状态,华三默认严格模式),非对称路径触发丢包。
    ‌安全策略缺陷‌:回程方向未配置匹配策略(防火墙优先依赖会话表,但半会话无法生成完整会话记录)。
  3. ‌解决方案‌
    ‌调整防火墙模式‌:
    华为设备:关闭会话状态检测(undo firewall session link-state check)。
    华三设备:切换为宽松模式(session state-machine mode loose),允许非对称路径通过。
    ‌注意‌:宽松模式可能降低安全性,建议优先优化组网。
    ‌临时策略调整‌:手动放行回程方向的安全策略,确保数据包不被阻断。
    ‌原进原出功能‌:若使用接口地址做SNAT或DNAT,需在接口启用原进原出(华为设备)。
  4. ‌诊断方法‌
    ‌基础测试‌:通过ping和traceroute检查路径对称性,但需注意ICMP可能被放行而掩盖问题。
    ‌高级工具‌:抓包分析TCP握手过程,或通过telnet测试应用端口连通性,结合防火墙会话表排查半会话记录。
  5. ‌长期优化建议‌
    ‌规范组网设计‌:避免多路径冗余导致非对称路由,确保往返路径一致。
    ‌会话持久化配置‌:部分设备支持会话绑定(如固定下一跳),减少路径波动影响。
    ‌关键总结‌:半会话问题本质是防火墙状态检测机制与路径不对称的冲突,需权衡安全性与可用性选择解决方案。优先通过路由优化根治,次选防火墙模式调整。
http://www.xdnf.cn/news/5750.html

相关文章:

  • 当用户在浏览器输入一个 URL 并访问服务器时, 这个请求是如何到达对应的 Servlet 的?
  • 基于大模型预测的吉兰 - 巴雷综合征综合诊疗方案研究报告大纲
  • 5.11 - 5.12 JDBC+Mybatis+StringBoot项目配置文件
  • 【NextPilot日志移植】日志写入流程
  • windows 在安装 Ubuntu-20.04 显示操作超时解决办法
  • PDM采集数字麦克风数据
  • linux CUDA与CUDNN安装教程
  • OrangePi Zero 3学习笔记(Android篇)7 - ftdi_sio
  • Spring框架(二)
  • 2025年渗透测试面试题总结-渗透测试红队面试八(题目+回答)
  • 使用 Kyverno 验证 Kubernetes 容器镜像:实用指南
  • AUTOSAR图解==>AUTOSAR_TR_AIMeasurementCalibrationDiagnostics
  • 软考 系统架构设计师系列知识点之杂项集萃(57)
  • IIS URL静态化 伪静态组件ISAPI_Rewrite安装配置 伪静态不生效解决办法 避坑版
  • 音视频学习:使用NDK编译FFmpeg动态库
  • 【002】renPy android端启动流程分析
  • 主播美颜API常见问题解析:兼容性、性能与SDK效果调优
  • 【MCP】其他MCP服务((GitHub)
  • 001大模型-认识大模型以及大模型应用场景
  • docker gaussdb常用命令
  • 从MCU到SoC的开发思维转变
  • 【Python】杂乱-转义字符
  • 安装 NVIDIA 驱动 570.133.20 的自动化脚本
  • 鲁滨逊归结原理详解:期末考点+解题指南
  • 【AI论文】HunyuanCustom:一种多模态驱动的定制视频生成架构
  • 自适应蒙特卡洛定位-AMCL
  • HomeBank:免费且强大的个人财务管理软件
  • 【MySQL】牛客网sql语句简单例题,sql入门
  • 使用Daemonset部署日志收集守护进程
  • snoop操作怎么维护一致性?