第42篇:NAT 基础——静态 NAT、动态 NAT、PAT
一、写在前面
IPv4 地址严重不足,而企业内部大量使用私有 IP 地址(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。私有 IP 不能在公网上路由,因此需要NAT(Network Address Translation,网络地址转换) 将私有 IP 转换为公网 IP。
一句话:NAT 就是把内网的"门牌号"换成外网能认的"门牌号"。
二、NAT 的三种类型
| 类型 | 转换方式 | IP 映射 | 适用场景 |
|---|---|---|---|
| 静态 NAT | 1 对 1 | 一个私网 IP 固定对应一个公网 IP | 服务器对外发布 |
| 动态 NAT | 多对多 | 私网 IP 动态从公网 IP 池中获取 | 少量用户上网 |
| PAT(NAPT) | 多对 1 | 多个私网 IP 共享一个公网 IP(用端口区分) | 企业上网(最常用) |
三、静态 NAT(1 对 1)
3.1 原理
内网服务器 10.0.1.100 → 公网 100.1.1.100
10.0.1.100 永远对应 100.1.1.100
100.1.1.100 也永远转换回 10.0.1.100
3.2 配置
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] ip address 100.1.1.1 255.255.255.0 ← 公网接口
# 静态 NAT 映射
[Router] nat static global 100.1.1.100 inside 10.0.1.100
[Router] nat static enable
3.3 验证
[Router] display nat static
Static NAT mappings:
Inside IP Global IP Netmask Status
10.0.1.100 100.1.1.100 255.255.255.255 Active
外网用户访问 100.1.1.100 的 80 端口 → 路由器转换成 10.0.1.100 的 80 端口。
四、动态 NAT(多对多)
4.1 原理
公网 IP 池:100.1.1.10 ~ 100.1.1.20(10 个公网 IP)
内网用户:50 人
谁先上网 → 从池中分配一个公网 IP
谁后来 → 如果没有空闲公网 IP 了 → 无法上网
用完释放 → 公网 IP 回收
4.2 配置
[Router] nat address-group 1 100.1.1.10 100.1.1.20
[Router] acl 2000
[Router-acl-basic-2000] rule 5 permit source 10.0.1.0 0.0.0.255
[Router-acl-basic-2000] quit
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] nat outbound 2000 address-group 1
4.3 缺点
- 公网 IP 有限,内网用户多于公网 IP 时可能没 IP 可用
- 动态 NAT 已基本被 PAT 取代
五、PAT(端口地址转换)——多对 1
5.1 原理
PAT 是所有 NAT 技术中最常用的一种。它让多个内网用户共享一个公网 IP,通过端口号区分不同的连接。
内网用户 路由器 Internet
10.0.1.5:12345 ──→ 100.1.1.1:10001 ──→ www.baidu.com
10.0.1.6:12345 ──→ 100.1.1.1:10002 ──→ www.baidu.com
10.0.1.7:12345 ──→ 100.1.1.1:10003 ──→ www.baidu.com
↑
同一个公网 IP,不同端口
5.2 配置
[Router] acl 2000
[Router-acl-basic-2000] rule 5 permit source 10.0.0.0 0.0.255.255
[Router-acl-basic-2000] quit
[Router] interface gigabitethernet 0/0/1
[Router-GigabitEthernet0/0/1] ip address 100.1.1.1 255.255.255.0
[Router-GigabitEthernet0/0/1] nat outbound 2000
只有两行命令(ACL + nat outbound),企业上网就这么简单。
六、NAT 转换表示例
[Router] display nat session all
NAT Session Table Information:
Protocol : TCP(6)
Src IP : 10.0.1.5 ← 内网 IP
Src Port : 12345
Dest IP : 110.242.68.3 ← 百度
Dest Port : 80
Global IP : 100.1.1.1 ← 转换后的公网 IP
Global Port : 10001 ← 转换后的端口
Protocol : TCP(6)
Src IP : 10.0.1.6
Src Port : 12345
Dest IP : 110.242.68.3
Dest Port : 80
Global IP : 100.1.1.1 ← 同一个公网 IP
Global Port : 10002 ← 不同端口
七、三种 NAT 对比
| 特性 | 静态 NAT | 动态 NAT | PAT |
|---|---|---|---|
| IP 映射 | 1:1 | N:N | N:1 |
| 公网 IP 利用率 | 低 | 中 | 高 |
| 端口复用 | ❌ | ❌ | ✅ |
| 配置复杂度 | 简单 | 中 | 简单 |
| 适用场景 | 服务器发布 | 极少用 | 企业上网 |
八、NAT 的优缺点
| 优点 | 说明 |
|---|---|
| 节省公网 IP | 几个公网 IP 就可以让几百人上网 |
| 隐藏内网结构 | 外网看不到内网 IP |
| 灵活管理 | 结合 ACL 控制哪些 IP 可以上网 |
| 缺点 | 说明 |
|---|---|
| 增加延迟 | NAT 转换需要额外处理 |
| 端到端地址透明性丢失 | 有些协议需要端到端 IP 不变(如 IPsec) |
| 某些协议不支持 NAT | FTP、ICMP、SIP 等需要 ALG |
| 无法从外网主动访问内网 | 除非配 NAT 映射 |
九、思考
- 静态 NAT、动态 NAT、PAT 三者的核心区别是什么?
- PAT 是如何用"1 个公网 IP"支持"上千个内网用户"上网的?
- 为什么 PAT 是现网最常用的 NAT 类型?
- 查看 NAT 转换表用什么命令?关键看哪几个字段?
- NAT 有什么缺点?哪些网络协议可能因为 NAT 出现问题?
- 企业 200 人上网,公网只有 2 个 IP,该用哪种 NAT?
下篇预告:第43篇《企业上网少不了NAT_EasyIP配置》——掌握企业上网场景中NAT EasyIP的配置方法。