NAT不是“换地址”那么简单:在Packet Tracer里亲手拆解一次真实的地址转换
你有没有试过,在Packet Tracer里敲完所有NAT命令,show ip nat translations却空空如也?
或者PC0能ping通路由器外网口,却死活连不上隔壁的PC1——查ACL、看接口、翻日志,半小时过去,还是不知道哪根线没接对?
别急。这不是你配置错了,而是NAT本身,就不是一个“写条命令→自动生效”的黑盒子。它是一套有状态、讲顺序、认方向、会超时、还带记忆的网络层协作者。而Packet Tracer,恰恰是唯一能让你一边敲命令、一边看着它“呼吸”“思考”“记笔记”的地方。
我们今天不背定义,不列标准,就从你最可能卡住的那个瞬间开始:为什么我的PAT不工作?
你看到的“ping”,路由器其实在悄悄做四件事
假设你搭好了这个最简拓扑:
- PC0(192.168.1.10/24)→ 连 Router G0/0
- Router G0/1 → 连 PC1(203.0.113.10/24)
- Router上已配好
ip nat inside/outside、ACL、ip nat pool和overload
你执行ping 203.0.113.10,Packet Tracer的Simulation模式里,第一帧ICMP Echo Request刚离开PC0,事情就开始了:
第一步:不是“转发”,而是“拦下来问一句”
报文到达G0/0(inside口),不会直接放行。路由器先翻ACL(比如access-list 1 permit 192.168.1.0 0.0.0.255):
✅ 匹配成功 → 允许进入NAT流程;
❌ 不匹配 → 直接丢弃,连NAT表都不会看一眼。
⚠️ 坑点:很多人以为ACL只是“允许上网”,其实它是NAT的准入闸机。ACL没命中,NAT根本不会启动。
第二步:查表——但表还是空的
路由器打开NAT表(show ip nat translations),发现空空如也。于是它说:“好,那我来建一条新记录。”
它从你的ip nat pool MYPOOL里拿出唯一IP:203.0.113.5;
再从1024–65535里挑一个当前未被占用的端口(比如60001);
然后写下这一行:
icmp 192.168.1.10:50001