NAT 问题先查三件事
NAT 转发依赖一条有状态的转换表项:出方向建立表项,回方向必须命中同一条表项才能还原地址。因此排查顺序是——转换表里到底有没有这条表项、接口的 inside 与 outside 方向标注是否与真实拓扑一致、回程流量能否匹配上同一条表项。除此之外,老化时间是被低估的因素:TCP 与 UDP 的表项生存期不同,设置过短会让长连接被静默清理,表现为每到固定时间就断一次,而日志里看不到明显错误。
基本信息
| Cisco 查看表项 | show ip nat translations |
|---|---|
| Cisco 统计 | show ip nat statistics,看命中与丢弃计数 |
| 华为查看 | display nat session all |
| 方向标注 | 接口需明确 inside 或 outside,标注错误会导致不转换或反向转换 |
| 老化时间 | TCP 与 UDP 可分别设置,长连接场景需要加长 |
典型使用场景
- 内网访问外网异常:确认转换表项是否建立
- 服务器映射对外不可用:核对静态映射与内部真实地址
- 长连接定期中断:检查老化时间是否短于业务心跳间隔
- 多出口环境:确认同一会话的出入方向是否走了同一台设备
- 策略与 NAT 顺序冲突:确认是先匹配策略还是先做转换
排查命令
排查命令
# Cisco:按内网地址过滤,确认表项是否存在
show ip nat translations | include 10.1.1.10
show ip nat statistics # 看命中、未命中与丢弃
# 华为
display nat session all | include 10.1.1.10
# 核对接口方向标注
show running-config interface GigabitEthernet0/1 | include nat现象与原因对照
| 现象 | 可能原因 | 下一步 |
|---|---|---|
| 出方向通、回方向不通 | 回程未匹配同一表项 | 确认回程路径与表项老化时间 |
| 表项根本不存在 | 策略未命中或接口方向标注错误 | 检查 ACL 与 inside/outside 标注 |
| 每隔固定时间断一次 | 老化时间短于业务保活间隔 | 延长对应协议的老化时间 |
| 统计显示丢弃增长 | 地址池耗尽或转换条目不足 | 扩展地址池或清理占用中的表项 |
NAT 与策略路由、防火墙常常同时存在,匹配顺序会决定结果;改配置前先确认本设备是先做转换再决策路由,还是相反。
临时放宽或关闭 NAT 规则来定位问题,会改变整个网段的转发行为,务必在维护窗口内进行并准备好回退。