IPv4 地址枯竭是 NAT 诞生的根本原因。企业内网用私网 IP(192.168.x.x),访问互联网时需用 NAT(网络地址转换)把私网 IP 换成公网 IP。本文讲清 SNAT(源转换,内网上网)和 DNAT(目的转换,发布服务器)两种模式。
一、NAT 原理
NAT 在数据包经过设备时修改 IP 头(源/目的IP),并维护一张转换表记录映射关系,使回程流量能正确还原。
| 类型 | 转换对象 | 应用场景 | 方向 |
|---|---|---|---|
| SNAT(源NAT) | 源IP:私网→公网 | 内网PC访问互联网 | 出方向 |
| DNAT(目的NAT) | 目的IP:公网→私网 | 外网访问内网服务器 | 入方向 |
Easy IP:最简单的 SNAT 方式——直接用接口的公网 IP 做转换,无需额外公网地址池。适合只有一个公网 IP 的中小企业。
二、实验拓扑
内网PC(192.168.10.10) ── AR2220 ── 互联网(8.8.8.8)
GE0/0/0 GE0/0/1
192.168.10.1 200.1.1.1(公网)
需求:
① SNAT: 内网PC访问互联网,源IP转为200.1.1.1
② DNAT: 外网访问200.1.1.1:80 → 内网Web(192.168.20.10:80)
三、配置 SNAT(内网上网)
# 方式1: Easy IP(推荐,最简单)
[AR2220] acl 2000
[AR2220-acl-basic-2000] rule permit source 192.168.10.0 0.0.0.255
[AR2220] interface GigabitEthernet 0/0/1
[AR2220-GE0/0/1] nat outbound 2000 # 匹配ACL的流量做Easy IP
# 方式2: NAT地址池(多公网IP时用)
[AR2220] nat address-group 1 200.1.1.1 200.1.1.5
[AR2220] interface GE0/0/1
[AR2220-GE0/0/1] nat outbound 2000 address-group 1
四、验证 SNAT
# 内网PC ping 互联网
PC> ping 8.8.8.8
Reply from 8.8.8.8: bytes=32 time=5ms ✅ 通
# 路由器查看NAT转换表
[AR2220] display nat session
ICMP VPN:public --> public
192.168.10.10:1024 --> 200.1.1.1:1024 --> 8.8.8.8:0
✅ 源IP已从192.168.10.10转为200.1.1.1
五、配置 DNAT(发布服务器)
# 外网访问200.1.1.1:80 → 内网192.168.20.10:80
[AR2220] interface GigabitEthernet 0/0/1
[AR2220-GE0/0/1] nat server protocol tcp global 200.1.1.1 80 inside 192.168.20.10 80
# 也可映射不同端口:外网8080 → 内网80
[AR2220-GE0/0/1] nat server protocol tcp global 200.1.1.1 8080 inside 192.168.20.10 80
六、验证 DNAT
# 外网PC访问 http://200.1.1.1
外网PC> curl http://200.1.1.1
✅ 返回内网Web服务器页面
# 查看服务器映射表
[AR2220] display nat server
Server: 200.1.1.1:80 → 192.168.20.10:80 (TCP)
✅ 目的IP已从200.1.1.1转为192.168.20.10
七、排错思路
- SNAT 后上网不通? 检查 ACL 是否正确匹配内网网段、NAT 是否在出接口(公网侧)配置。
- DNAT 访问不了? 检查服务器映射命令的公网/私网IP和端口、内网服务器网关是否指向NAT设备。
- 转换表无记录? 流量未命中 NAT 规则,检查 ACL 和接口配置。
- 回程流量丢失? NAT 设备需有到内网的路由,否则转换后的包无法回内网。
NAT 与路由的关系:NAT 不替代路由。做了 NAT 还需配路由,确保去程和回程路径都通。NAT 只改 IP,不改转发路径。
八、小结
- SNAT 解决"内网访问外网"——源IP私网转公网,Easy IP 最简单
- DNAT 解决"外网访问内网"——目的IP公网转私网,用于发布服务器
- NAT 维护转换表保证双向通信,但需配合路由使用