F1020(V7 版本)接口下两条 nat outbound,匹配 nat outbound 2001 流量源 IP 不转换故障分析
现象:
出接口配置:
nat outbound(无 ACL,Easy‑IP,转换成接口 IP)
nat outbound 2001 address‑group X(ACL2001,访问专网平台走地址池)
防火墙本机 telnet 专网平台正常;内网 PC 访问专网,会话表里源地址仍然是内网原始 IP,没有做 NAT 转换。
一、核心根因(V7 接口 NAT 匹配逻辑)
接口下多条nat outbound动态 NAT 优先级:
✅带 ACL 的 nat outbound > 不带 ACL 的 nat outbound(Easy‑IP)。
前提:报文必须命中 ACL 2001 的 permit 规则,才会执行地址池转换;
如果报文没有命中 ACL2001,直接跳过这条规则,落到第二条无 ACL 的 nat outbound,转换成接口 IP。
为什么防火墙本机访问正常,内网 PC 不转换
防火墙本机流量不走接口下 interface 视图下的 nat outbound!
接口视图下nat outbound只对穿越防火墙(转发流量)生效;设备本机发起 telnet,是全局 NAT 处理逻辑,不受接口下 nat outbound 约束。
👉本机通,不能代表内网转发流量 NAT 规则配置正确,这个是非常典型的误区。
二、最高概率故障点:ACL2001 配置错误(标准 ACL 2000‑2999)
标准 ACL 只匹配源 IP, 忽略目的 IP!!!
plaintext
acl basic 2001
rule permit source 内网网段 反掩码
⚠这样写:只要源是内网,无论访问任何目的 IP,都会匹配这条 NAT,无法区分 “访问专网才做地址池 NAT,访问互联网走接口 IP”。
👉很多人错误以为标准 ACL 可以匹配目的网段,标准 ACL 不识别 destination!!!
如果你想实现:访问【专网目的网段】才执行地址池 NAT,其余流量转换成接口 IP,不能用 basic 标准 ACL 2001,必须使用高级 ACL 3001,同时匹配源 + 目的网段。
错误配置(你大概率是这种)
plaintext
acl basic 2001
rule permit source 192.168.1.0 0.0.0.255
# 接口
interface GigabitEthernet 1/0/1
nat outbound 2001 address‑group 1
nat outbound
上面这条 ACL 只看源,不看目的。如果会话表中源地址没有转换,说明:内网 PC 访问专网的报文没有匹配到 ACL2001 permit,直接跳过这条 NAT 规则。
正确配置(访问指定专网才做 NAT 地址池)
plaintext
acl advanced 3001
rule permit ip source 内网网段 反掩码 destination 专网平台网段 反掩码
interface GigabitEthernet1/0/1
nat outbound 3001 address‑group 1
nat outbound
高级 ACL 同时匹配源 + 目的;只有内网访问专网目的网段,才执行 address‑group 地址池转换;其他访问互联网流量匹配nat outbound转换成接口 IP。
⚠注意:接口下多条带 ACL 的 nat outbound,ACL 编号越大优先级越高;无 ACL 的 nat outbound 优先级最低。
三、排查命令,按顺序执行
查看接口 NAT 配置
bash
display current‑configuration interface GigabitEthernet 1/0/1
确认两条 nat outbound 都存在。
查看 ACL 命中计数,内网 PC 同时 telnet 专网平台,看 hit‑count 是否增长
bash
display acl 2001
如果 hit‑count=0:报文根本没有匹配 ACL permit 规则,NAT 直接不触发。(90% 故障在这里)
hit‑count 持续上涨,说明流量命中 ACL,再往下排查。
查看 NAT 出方向规则表
bash
display nat outbound
看接口下两条规则状态为 active。
查看转发会话,确认是否 NAT 转换
bash
display session table verbose source‑ip 内网PCIP
重点看:Source‑NAT字段,如果显示‑代表没有做源 NAT 转换。
四、其他次要可能性
路由问题:访问专网流量没有从配置 nat outbound 的接口转发出去,流量从别的接口出去,自然不会触发这个接口的 NAT。
确认:display ip routing‑table 专网IP,下一跳出接口,必须是配置 nat outbound 的那个接口。
存在全局策略 NAT,全局 NAT 优先级高于接口下 nat outbound,干扰接口 NAT 规则。
bash
display nat policy
如果有全局 nat policy,会优先执行,接口下 nat outbound 失效。
地址池异常
bash
display nat address‑group X
确认地址池 IP 正确,没有全部被占用。
五、快速修复总结
如果要基于【目的网段】区分 NAT 行为,不要用 basic 标准 ACL(2001),改用高级 ACL 3001 同时匹配源 + 目的网段。标准 ACL 只能匹配源 IP,无法区分访问哪个目标。
验证必须用内网 PC 实际业务流量,不要用防火墙本机 telnet 测试,本机流量不走接口下 nat outbound,本机通不等于转发流量 NAT 生效。
查看display acl X的 hit‑count,是判断报文有没有命中 NAT ACL 的最直接依据,计数不涨就是 ACL 匹配问题。
确认访问专网的路由,出接口就是配置 nat outbound 的接口。
我这边没有地址池,我现在配置了acl 3001,结果还是不行,路由是有的
并且,我在接口下undo nat outbound 和undo nat outbound 2001,先配置 2001,后配置nat outbound,也是不行
配置没有问题,现在的问题是我配置了acl 3001,nat转换不生效,我这里没有地址池,就是通过接口地址转换的
并且,我在接口下undo nat outbound 和undo nat outbound 2001,先配置 2001,后配置nat outbound,也是不行
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
我这边没有地址池,我现在配置了acl 3001,结果还是不行,路由是有的