号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
好多新手网工现场 NAT 配置完,客户一测:
- 内网服务器公网 IP ping 不通
- 外部访问不进去
- 抓包发现数据包根本不转发
你开始慌了?
静态 NAT 不生效,80% 情况下,根本原因就两类:
1. NAT 匹配不上
2. 回程流量走错
老网工常用的定位套路,也就两步。
第一步:先查 NAT 表,确认有没有命中
很多人 NAT 配好之后,第一反应就是疯狂检查配置, 其实最有效的办法是:
直接看 NAT 转发表,确认“有没有被匹配”。
华为设备命令:
display nat session table
或者
display firewall session table
核心点:
内网设备发出访问,是否生成 NAT session?
如果没有 session,那说明 NAT 根本没匹配上。
常见原因:
- ACL 匹配范围写错
- NAT 规则未启用
- 方向搞反(inbound/outbound写反)
- 多条 NAT 规则重叠,优先级问题
举个例子:
目标公网 IP 是 1.1.1.1,对应内网 192.168.1.10
你从外网 ping 1.1.1.1,结果 NAT session 表里压根没记录。
那就是 NAT 规则没匹配上,检查 ACL 和绑定接口。
第二步:确认回程流量有没有从 NAT 出口走回来
NAT 排障现场,最坑的一种:
流量打进来了,NAT 表也生成了,
但回程流量没走原路,直接绕路出去了。
这种情况,表现就是:
- 外网请求,数据包能进 NAT 设备
- NAT 设备 session 表里有记录
- 但是响应包走了默认出口,没再经过 NAT 设备
- 导致回程包 IP 不 NAT,外网客户端收不到回应
排查法:
- 用内网服务器发 ping 回公网源 IP,看 NAT 设备有没有 NAT 出口 session
- 用 display ip routing-table 查目标地址的出接口, 确认回程路径是不是 NAT 设备那条出口。
典型错误配置:
客户有两条出口:
- 一条专门做 NAT
- 一条做专线 VPN 出口
结果回程流量直接走 VPN 出去,NAT 不生效。
补充一招:用 flow export / session log 抓流向
如果还是不放心,可以用流量导出功能或者 session 日志,
实时看会话流向。
比如华为设备:
display firewall session table verbose
或者开启 session 记录功能。
看流量源、目的、出接口、转换 IP 情况,
一眼确认“有没有 NAT、出没出 NAT、走没走正确出口”。
补充一句话:
别再盯着配置文件死看,老网工排 NAT,最爱用 session 表和路由表,
因为数据流向,永远比配置文件更真实。
原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部