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

案例拓扑:
拓扑描述:
服务器有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.pswp.cn/news/905216.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/905216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试高频问题(36-37)

三十六、服务网格核心能力与设计模式 服务网格架构分层模型 mermaid graph TB subgraph 数据平面 ASidecar代理 -->拦截流量 BEnvoy B -->协议转换 CHTTP/gRPC B -->策略执行 D熔断/限流 end subgraph 控制平面 E配置中心 -->下发策略 Fistiod F -->证书管理 …

redis数据结构-02(INCR、DECR、APPEND)

字符串操作:INCR、DECR、APPEND Redis 字符串不仅仅是简单的文本,它们还可以表示数字。此功能使我们能够直接对存储在 Redis 中的字符串值执行原子的递增和递减操作。此外,Redis 还提供了一种附加到现有字符串的方法,从而可以轻松…

Spring MVC 中Model, ModelMap, ModelAndView 之间有什么关系和区别?

在 Spring MVC 中,Model, ModelMap, 和 ModelAndView 都是用来在 Controller 和 View 之间传递数据的,但它们在使用方式和功能上有所不同。 它们的核心在于:Spring MVC 需要知道两件事来渲染视图:① 数据 (Model) ② 视图名称 (V…

配置Hadoop集群-免密登录

在 Hadoop 集群中配置免密登录是确保各节点间高效通信的关键步骤。以下是基于 SSH 密钥认证的免密登录配置方案,支持主节点(NameNode)到所有从节点(DataNode)的无密码访问: 1. 环境准备 集群规划&#xff…

C++类与对象(二):六个默认构造函数(一)

在学C语言时,实现栈和队列时容易忘记初始化和销毁,就会造成内存泄漏。而在C的类中我们忘记写初始化和销毁函数时,编译器会自动生成构造函数和析构函数,对应的初始化和在对象生命周期结束时清理资源。那是什么是默认构造函数呢&…

嵌入式培训之数据结构学习(一)数据结构的基础概念、线性表

一、基础概念 1、数据结构:相互之间存在一种或多种特定关系的数据元素的集合。(特定关系有逻辑关系与线性关系) (1)逻辑结构 集合,所有数据在同一个集合中,关系平等(数组&#xff…

Android Exoplayer 实现多个音视频文件混合播放以及音轨切换

在之前的文章ExoPlayer中常见MediaSource子类的区别和使用场景中介绍了Exoplayer中各种子MediaSource的使用场景,这篇我们着重详细介绍下实现多路流混合播放的用法。常见的使用场景有:视频文件电影字幕、正片视频广告视频、背景视频背景音乐等。 初始化…

推特逆向算法,推特爬虫,数据分析,推特关键词搜索

祝大家五一假期快乐! 最近推特加了逆向,频繁出现404,无法正常抓取数据,这里给出推特逆向的思路及代码,供大家参考学习! 本文将介绍如何使用 Python 模拟请求 Twitter 的 GraphQL 接口,结合 re…

图形化编程平台的破局之道:从工具同质化到生态差异化

一、同质化困局的底层逻辑剖析 在全球图形化编程市场中,工具功能趋同已成为行业共识。据 Statista 2024 年数据显示,主流平台的基础功能重合度高达 78%,核心模块(如条件判断、循环结构)的实现方式高度相似。这种现象的…

【Rust】枚举和模式匹配

目录 枚举和模式匹配枚举的定义Option 枚举控制流运算符 match简洁控制流 if let 枚举和模式匹配 枚举的定义 结构体给予你将字段和数据聚合在一起的方法,像 Rectangle 结构体有 width 和 height 两个字段。而枚举给予你一个途径去声明某个值是一个集合中的一员。…

应急响应靶机——WhereIS?

用户名及密码:zgsf/zgsf 下载资源还有个解题.exe: 1、攻击者的两个ip地址 2、flag1和flag2 3、后门程序进程名称 4、攻击者的提权方式(输入程序名称即可) 之前的命令: 1、攻击者的两个ip地址 先获得root权限,查看一下历史命令记录&#x…

变量函数实战:高保真APP原型“发票页面”动态交互教程

变量函数是高保真交互原型设计中常见的高级交互功能,能够避免重复复制与手动修改页面元素和逻辑标注,让演示更有真实体验感。本文分享一个高保真APP交互原型页面的实操案例,结合原型设计工具中的变量函数与逻辑判断功能,手把手教你…

量子加密通信:守护信息安全的未来之盾

摘要 在数字化时代,信息安全成为全球关注的焦点。传统加密技术面临着被量子计算破解的风险,而量子加密通信作为一种基于量子力学原理的新型加密技术,提供了理论上无条件安全的通信保障。本文将详细介绍量子加密通信的基本原理、技术实现、应用…

《Vue.js》阅读之响应式数据与副作用函数

Vue.js 《Vue.js设计与实现》(霍春阳) 适合:从零手写Vue3响应式系统,大厂面试源码题直接覆盖。重点章节:第4章(响应式)、第5章(渲染器)、第8章(编译器&…

数据处理专题(十三)

学会基本的图像处理技术。‍ OpenCV 基础 实践:使用 OpenCV 进行图像读取、显示和基本处理‍ 03 代码示例 1. 导入必要的库 import cv2import numpy as npimport matplotlib.pyplot as plt 2. 图像读取 # 读取图像image_path path_to_your_image.jpg # 替换…

springboot旅游小程序-计算机毕业设计源码76696

目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统…

P1874 快速求和

目录 题目算法标签: 动态规划, 线性 d p dp dp思路代码 题目 P1874 快速求和 算法标签: 动态规划, 线性 d p dp dp 思路 求的是最少组成 n n n的加法次数, 对于当前数字序列可以设计状态表示 f [ i ] [ j ] f[i][j] f[i][j]表示考虑前 i i i个字符, 并且和是 j j j的所有方…

知名人工智能AI培训公开课内训课程培训师培训老师专家咨询顾问唐兴通AI在金融零售制造业医药服务业创新实践应用

AI赋能未来工作:引爆效率与价值创造的实战营 AI驱动的工作革命:从效率提升到价值共创 培训时长: 本课程不仅是AI工具的操作指南,更是面向未来的工作方式升级罗盘。旨在帮助学员系统掌握AI(特别是生成式AI/大语言模型…

Linux 内核参数

文章目录 什么是内核参数参数种类配置方式1. 编译内核时配置2. 内核启动时配置3. 内核运行时配置4. 加载内核模块时配置总结 什么是内核参数 内核参数是 Linux 系统中用于控制和调整内核行为的可配置选项。这些参数影响系统的性能、安全性和各种功能特性。 参数种类 大部分参…

pythonocc 拉伸特征

micromamba install -c conda-forge pythonocc-core opencascade.js安装不起来,ai用pythonocc练个手 拉伸线框 线成面 from OCC.Core.gp import gp_Pnt, gp_Dir, gp_Vec from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeWire f…