首页/安全/安全设备配置速查/先路由后 NAT 的验证方法
NAT 与发布75 条

先路由后 NAT 的验证方法

设备先查路由确定出接口与下一跳,再执行 NAT;验证这一顺序能解释「NAT 配了但源地址没变」这类现象。

安全设备配置速查安全更新于 2026-10-13

先路由后 NAT 是什么

主流防火墙与路由设备的转发顺序是先查路由确定出接口与下一跳,再按策略执行目的 NAT 与源 NAT,最后发出报文。理解这个顺序能解释一大类「NAT 配了但地址没变」的现象:目的地址在路由表里不可达,或者命中了指向错误接口的路由,NAT 环节根本不会执行到。把路由作为排查的第一步,可以避免在 NAT 配置上反复无效尝试。

基本信息

典型顺序路由查找 → 目的 NAT → 源 NAT → 转发出接口
关键推论路由不可达时 NAT 不执行,报文本就被丢弃
验证手段会话表查询 + 出入接口抓包对比转换前后
差异说明厂商实现细节不同,个别设备的 NAT 判定时机有差别
影响范围多默认路由、策略路由共存时表现更复杂

典型使用场景

  • 上网异常排查:内网能 ping 通网关但访问不了外网,判断是路由还是 NAT 问题
  • 新增发布映射:验证目的 NAT 是否生效,需要先确认目的地址路由可达
  • 多出口选路:确认流量实际从哪个接口出去,再判断源 NAT 用的是哪个地址池
  • 策略路由与 NAT 叠加场景:策略牵引改变了出接口,源 NAT 随接口变化而改变
  • 返回流量不对称问题:确认出向与回向路径是否经过同一台设备
  • 地址池规划核对:确认会话表中记录的转换后地址与规划一致

验证步骤

验证步骤
# 1. 查路由表确认目的地址可达,且下一跳与出接口符合预期
# 2. 建立一条测试连接(如 curl 或 telnet 到目标端口)
# 3. 查会话表,读出原始地址与转换后地址
# 4. 在出接口抓包,确认实际发出的源地址与端口
# 5. 核对返回报文是否回到同一台设备与同一会话
# 6. 记录结论:是路由问题、NAT 问题,还是回程路径问题

现象与结论对照

现象更可能的环节下一步验证
连接超时且会话表无记录路由不可达或策略未放行查路由表与策略命中计数
会话表有记录但源地址未转换源 NAT 条件未命中核对源 NAT 的匹配条件与应用位置
会话表正确但出口抓包无包出接口或链路问题查接口状态与下一跳可达性
有出无回回程路径或上游未放行在入接口抓包确认返回报文
多默认路由或策略路由场景下,同一目的地址可能因源地址不同而从不同出口转发,源 NAT 转换后的地址也随之不同,排查时要带上源地址一起看。
会话表是这类问题最直接的证据:一条会话同时记录原始与转换后的地址端口,比逐条核对配置快得多。

易错点

  • 没查路由就怀疑 NAT 配置,是这类故障最常见的排查方向错误
  • 只改 NAT 规则不确认出接口,策略路由改变出口后源 NAT 地址池同时变了
  • 存在多条默认路由时未明确选路依据,流量出口随机变化难以复现问题
  • 改完配置立即测试,老会话仍按旧路径运行,得出错误结论
  • 只验证去程不验证回程,单向可达被误判为完全正常

数据来源与参考

  • 华为 USG6000 产品文档:NAT 处理流程
  • H3C SecPath NAT 处理流程说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌