正常来说外网访问内网会建立会话表,从1口进来的流量,应该也会从1口出去,为啥抓包显示从3口出去的,导致ping不通呢?1口和3口是不同的运营商
(0)
最佳答案
(0)
防火墙回包的话,不是匹配会话表就行吗?还会匹配策略路由和路由表吗?RBM都是正常的,防火墙没做nat,防火墙下面的两个接口配的有策略路由下一跳是两个外网出口
(0)
你遇到的这个问题,在RBM(远程备份组)主备模式的防火墙中很典型。从1口进、3口出的现象叫做流量路径不对称,这正是导致Ping不通的直接原因。
简单来说,外网访问的请求报文从1口进入了防火墙,但防火墙在处理后,从3口将回应报文发出。这会导致TCP等有状态协议无法正常建立连接,从而通信失败。
根据你的描述“防火墙下面的两个接口配的有策略路由下一跳是两个外网出口”,这正是问题的关键。
当防火墙收到一个报文并创建会话时,会记录报文的入接口(1口)。按照正常逻辑,同一条会话的回应报文应该从同一个接口返回,这依赖于会话表的指引。
但是,在H3C的防火墙中,回应报文会优先查找会话表,但最终决定从哪个接口出去,还会受到策略路由(PBR)和普通路由表的影响。
你的环境正是因为这个机制导致了问题:
请求方向(入):外网流量到达防火墙1口,防火墙查路由,发现目标内网服务器可达,于是创建会话,并将报文从内网接口转发给服务器。
回应方向(出):服务器回应报文到达防火墙。防火墙查找会话表,理论上应该从1口出去。但是,因为你配置了策略路由(并且它可能优先级更高),防火墙在执行会话表转发前,被策略路由强制匹配,将报文的出接口指向了3口。
这样就造成了“从哪进,不从哪出”的不对称路径。这个问题在RBM主备切换后尤其容易出现,因为路由可能会发生变化。
你可以按照以下步骤来定位问题:
1. 检查会话表
这是第一步,用于确认问题的表象。
查看输出的会话信息,重点看 In interface(入接口)和 Out interface(出接口)。如果出接口显示为3口,就验证了问题所在。
2. 检查策略路由(PBR)
这是最可能的原因。你需要检查是否配置了策略路由,将特定流量强制指向了3口。
或者查看更详细的匹配信息:
3. 检查普通路由表
如果没有策略路由影响,那么检查普通路由表。
查看去往“外网”或“对端”的路由,其下一跳是否指向了3口所在的链路。
4. 检查RBM状态
确保RBM主备状态是正常的,没有发生异常切换或“双主”问题。
找到原因后,可以根据情况调整:
(0)
一、现象根因总结(H3C SecPath RBM 主备、双运营商外网接口场景)
现象:外网用户流量从1 口(运营商 A)进入防火墙访问内网 NAT Server,ICMP 回程报文防火墙选择从3 口(运营商 B)发出 → ping 不通。
根本原理
外网访问内网服务器(NAT Server / 目的 NAT):
正向报文:外网 IP → 公网 VIP → 防火墙 1 口入,DNAT 转换,转发内网服务器;防火墙生成会话表。
服务器回程报文:内网服务器 → 外网客户端公网 IP。
此时防火墙不会优先参考会话表记录的入接口,而是独立查询路由 / 链路负载均衡 / 策略路由决定出接口。
你环境匹配路由 / 负载均衡规则,判定去往该外网客户端应当走 3 口运营商,于是回包从 3 口发出。
为什么直接导致 ping 不通?
运营商有源 IP 校验机制:
客户端从运营商 A(1 口)发起访问,应答报文源 IP 是运营商 A 的公网地址,却从运营商 B(3 口)线路发出,运营商 B 骨干网直接丢弃该报文。
关键点:防火墙会话表只能完成 NAT 地址还原,不会天然强制 “原路返回”!
二、最高优先级解决方案(H3C Comware V7 防火墙,RBM 主备)
方案 1:开启 ip last-hop hold【源进源出,最优方案】
功能作用:记录报文入接口信息,同一个会话的回程流量强制从原始入接口转发,解决多出口 NAT Server 来回路径不一致。
配置命令(主备两台防火墙都配置)
plaintext
interface GigabitEthernet 1/0/1 //运营商A接口
ip last-hop hold
interface GigabitEthernet 1/0/3 //运营商B接口
ip last-hop hold
⚠️ 重要约束:
RBM 主备两台防火墙都必须部署;
配置完成保存,不需要重启;
该命令只对穿越防火墙转发流量生效,设备本机产生流量不生效。
三、其他诱因排查(先配置上面命令,无效再逐项核对)
1)是否配置了【链路负载均衡】(最高发诱因)
如果开启多出口链路负载均衡,负载均衡会根据目的 IP 归属运营商选路:
移动用户访问电信线路进来的服务器,回程被负载均衡调度到移动出口(3 口)。
修复补充:
链路负载均衡策略里增加排除规则:内网服务器网段访问外网流量,不参与链路负载均衡调度,直接转发。
2)是否存在策略路由 PBR 干扰
内网接口下策略路由匹配内网服务器回程流量,强制指定出接口为 3 口。
排查命令:
plaintext
display ip policy-based-route configuration
3)RBM 主备额外注意事项
确认开启会话同步:hrp mirror session enable,保证主备会话实时同步;
NAT Server 公网地址建议绑定对应 VRRP 备份组,避免 ARP 跨设备漂移;
不要同时在主备设备双活发布同一段公网 IP NAT Server。
4)临时验证手段(定位问题)
防火墙内抓包:
debugging packet filter 观察回程报文选路逻辑;
查看会话表详细信息:
plaintext
display firewall session table verbose destination global 【你的公网VIP】
观察会话表In-Interface与预期一致,回程报文Out-Interface异常。
四、不推荐的临时应急方案(尽量不要使用)
plaintext
session state-machine mode loose
宽松会话模式仅解决防火墙是否放行报文,无法解决运营商丢弃跨线路回包,治标不治本,并且降低防火墙安全检测能力,仅测试临时启用。
五、完整排查操作顺序
在 1 口、3 口外网接口配置 ip last-hop hold(主备两台防火墙全部配置);
清除防火墙原有会话表 reset firewall session table,重新测试 ping;
如果依旧异常:检查链路负载均衡、策略路由是否对内网服务器回程流量造成错误调度;
确认内网服务器默认网关正确指向防火墙,服务器侧不会出现流量旁路。
最简总结
你当前故障是多运营商出口典型非对称路由问题,防火墙没有强制 “源进源出”,回程流量被路由 / 负载均衡调度到另外一条运营商线路。
✅ 标准根治配置:外网接口下部署 ip last-hop hold。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
防火墙回包的话,不是匹配会话表就行吗?还会匹配策略路由和路由表吗?RBM都是正常的,防火墙没做nat,防火墙下面的两个接口配的有策略路由下一跳是两个外网出口