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

news2025/7/19 7:23:23

案例拓扑:
拓扑描述:
服务器有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.coloradmin.cn/o/2375048.html

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

相关文章

WTK6900C-48L:离线语音芯片重构玩具DNA,从“按键操控”到“声控陪伴”的交互跃迁

一:开发背景 随着消费升级和AI技术进步,传统玩具的机械式互动已难以满足市场需求。语音控制芯片的引入使玩具实现了从被动玩耍到智能交互的跨越式发展。通过集成高性价比的语音识别芯片,现代智能玩具不仅能精准响应儿童指令,还能实…

Python 数据分析与可视化:开启数据洞察之旅(5/10)

一、Python 数据分析与可视化简介 在当今数字化时代,数据就像一座蕴藏无限价值的宝藏,等待着我们去挖掘和探索。而 Python,作为数据科学领域的明星语言,凭借其丰富的库和强大的功能,成为了开启这座宝藏的关键钥匙&…

gitkraken 使用教程

一、安装教程 安装6.5.3,之后是收费的,Windows版免安装 二、使用教程 0. 软件说明 gitkraken是一个git本地仓库管理软件,可以管理多个仓库,并且仓库可以属于多个网站多个账户。 1. 克隆仓库 选择要克隆到什么位置&#xff0…

【LeetCode 热题 100】二叉树 系列

📁 104. 二叉树的最大深度 深度就是树的高度,即只要左右子树其中有一个不为空,就继续往下递归,知道节点为空,向上返回。 int maxDepth(TreeNode* root) {if(root nullptr)return 0;return max(maxDepth(root->lef…

用drawdb.app可视化创建mysql关系表

平时自己建表,没有可视化图形参考 为了便于理解,用drwadb画mysql关系表 drawDB | Online database diagram editor and SQL generator

火绒互联网安全软件:自主引擎,精准防御

在数字时代,网络安全是每一个用户都必须重视的问题。无论是个人用户还是企业用户,都需要一款高效、可靠的反病毒软件来保护设备免受恶意软件的侵害。今天,我们要介绍的 火绒互联网安全软件,就是这样一款由资深工程师主导研发并拥有…

【前端基础】8、CSS的选择器

一、什么是选择器? 根据一定的规则选出符合条件的HTML元素,从而为他们添加各种特定的样式。 二、选择器分类 通用选择器元素选择器类选择器id选择器属性选择器后代选择器兄弟选择器选择器组伪类 三、通用选择器(*) 作用&…

Gitee Team:关键领域行业DevSecOps落地的项目管理引擎

在全球数字化转型浪潮下,关键领域行业的软件研发正面临前所未有的挑战与机遇。国产化进程的加速推进与国防装备的智能化转型,对软件研发效能和质量提出了更高要求。在这样的背景下,Gitee Team作为国内领先的研发协作平台,正在为关…

网址为 http://xxx:xxxx/的网页可能暂时无法连接,或者它已永久性地移动到了新网址

这是由于浏览器默认的非安全端口所导致的,所谓非安全端口,就是浏览器出于安全问题,会禁止一些网络浏览向外的端口。 避免使用6000,6666这样的端口 6000-7000有很多都不行,所以尽量避免使用这个区间 还有在云服务器中&#xff0c…

鸿蒙跨平台开发教程之Uniapp布局基础

前两天的文章内容对uniapp开发鸿蒙应用做了一些详细的介绍,包括配置开发环境和项目结构目录解读,今天我们正式开始写代码。 入门新的开发语言往往从Hello World开始,Uniapp的初始化项目中已经写好了一个简单的demo,这里就不再赘述…

uniapp使用npm下载

uniapp的项目在使用HBuilder X创建时是不会有node_modules文件夹的,如下图所示: 但是uni-app不管基于哪个框架,它内部一定是有node.js的,否则没有办法去实现框架层面的一些东西,只是说它略微有点差异。具体差异表现在…

C# 的异步任务中, 如何暂停, 继续,停止任务

namespace taskTest {using System;using System.Threading;using System.Threading.Tasks;public class MyService{private Task? workTask;private readonly SemaphoreSlim semaphore new SemaphoreSlim(0, 1); // 初始为 0,Start() 启动时手动放行private read…

2025年AI工程师认证深度解析:AAIA认证体系全景指南与实战策略

一、IAAAI认证体系演进与价值定位 1.1 国际人工智能认证发展现状 全球人工智能认证市场呈现显著分化态势。据Gartner 2025Q1报告显示,北美市场以IEEE/ACM双认证体系为主导(市占率38%),欧盟区推行AI Act合规认证(强制…

统计服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息

文章目录 一、背景二、说明三、页面四、代码 前端 MonitorServiceProcessPage.vueMonitorServiceProcessTable.vueMonitorServiceProcessTableButton.vueaddMonitorTask.vueproductOperation.vueshowMonitorTask.vueMonitorSystemLog.vueMonitorTask.vueMonitorTaskLog.vueReal…

-MAC桢-

MAC桢和IP的关系: 主机A想跨网络和B通信需要IP地址进行路由选择,但一个局域网,比如路由器进行路由选择之前,首先要将数据包发送给路由器B,也就是局域网通信也就是同一个网段的主机进行通信,所以必须通过mac…

安装:Kali2025+Docker

安装:Kali2025Docker Kali2025安装 直接官网下载WMware版本 https://www.kali.org/get-kali/#kali-virtual-machines 直接打开运行 初始用户密码 kali/kali sudo -i 命令切换到root 更换镜像 切换到其他可用的 Kali Linux 镜像源可能会解决问题,可以使用国内的镜像源&…

Linux云计算训练营笔记day04[Rocky Linux中的命令:mv、cp、grep(^$)、tar、重定向>和>>]

mv 移动(剪切) 源数据会消失 格式: mv 源文件 目标路径 touch /opt/a.txt 创建文件 mv /opt/a.txt /root 移动文件,没有改名 mkdir gongli 创建目录 mv gongli /opt/ 移动目录,没有改名 mv /opt/gongli tedu 移动目录,改名了 …

AbMole Olaparib:打破常规,用PARP抑制重塑肿瘤研究

在当今的生物医学研究领域,Olaparib(AZD2281,AbMole,M1664)作为一种重要的PARP(聚腺苷二磷酸核糖聚合酶)抑制剂,受到了广泛关注。Olaparib可干扰 DNA 单链断裂的修复,从而…

Windows重置网络,刷新缓存

同时按键盘上的【Windows】键和【S】键,弹出搜索框,输入 命令提示符 在“最佳匹配”下的【命令提示符】上右键,点击【以管理员身份运行】 1弹出一个窗口,在光标闪烁的位置,直接输入【netsh winsock reset】&#xff0…

OpenHarmony平台驱动开发(十),MMC

OpenHarmony平台驱动开发(十) MMC 概述 功能简介 MMC(MultiMedia Card)即多媒体卡,是一种用于固态非易失性存储的小体积大容量的快闪存储卡。 MMC后续泛指一个接口协定(一种卡式)&#xff0…