Appearance
NAT 网络地址转换
考情分析
NAT 是选择题中偶尔出现的考点,通常考查 NAT 的基本功能、私有地址范围、NAPT 的端口映射机制等。不涉及复杂计算。
考频:★★☆
私有地址
IPv4 地址资源有限(
| 类别 | 地址范围 | 网段数 |
|---|---|---|
| A 类 | 10.0.0.0 ~ 10.255.255.255 | 1 个 A 类网 |
| B 类 | 172.16.0.0 ~ 172.31.255.255 | 16 个 B 类网 |
| C 类 | 192.168.0.0 ~ 192.168.255.255 | 256 个 C 类网 |
私有地址的特点:
- 只在内部网络使用,不会出现在公网上
- 不同组织可以使用相同的私有地址,互不影响
- 路由器不转发目的地址为私有地址的数据报
NAT 的基本原理
NAT(Network Address Translation)安装在内网与外网的边界路由器上,负责在数据报经过时替换 IP 地址。
基本 NAT(一对一)
最简单的 NAT 就是维护一张转换表,将内部私有 IP 和外部公网 IP 一一映射。
内网主机 → NAT路由器 → 公网
192.168.1.10 → 替换为 203.0.113.5 → 发出发送方向: 将数据报的源 IP 从私有地址替换为公网地址
接收方向: 将数据报的目的 IP 从公网地址替换回私有地址
问题是:基本 NAT 要求公网 IP 和内网主机一一对应。如果内网有 100 台主机同时上网,就需要 100 个公网 IP,没有节约地址。
NAPT(网络地址与端口转换)
NAPT(Network Address Port Translation)在替换 IP 的同时还替换端口号,从而实现多台内网主机共享一个公网 IP。
内网: NAT转换表: 公网:
192.168.1.10:3000 → 203.0.113.5:40001 → 服务器
192.168.1.20:3000 → 203.0.113.5:40002 → 服务器
192.168.1.30:4000 → 203.0.113.5:40003 → 服务器三台内网主机使用同一个公网 IP(203.0.113.5),通过不同的端口号区分。端口号有 65535 个可用,所以一个公网 IP 理论上可以支撑大量内网主机同时上网。
实际上我们平时说的"NAT",绑大多数情况下指的就是 NAPT。
NAT 转换表
NAT 路由器维护一张转换表,记录了每条连接的映射关系:
| 内网地址 | 内网端口 | 公网地址 | 公网端口 | 协议 |
|---|---|---|---|---|
| 192.168.1.10 | 3000 | 203.0.113.5 | 40001 | TCP |
| 192.168.1.20 | 3000 | 203.0.113.5 | 40002 | TCP |
| 192.168.1.30 | 4000 | 203.0.113.5 | 40003 | UDP |
转换过程:
NAT 的问题
NAT 虽然有效缓解了 IPv4 地址不足的问题,但也带来了一些副作用:
1. 破坏了端到端通信模型
外部主机无法主动向 NAT 后面的内网主机发起连接(因为不知道内网主机的地址和端口映射)。P2P 应用、VoIP、在线游戏等都受此影响。
2. NAT 路由器需要检查和修改传输层信息
NAT 不仅修改 IP 首部,还要修改 TCP/UDP 首部的端口号,甚至要重新计算校验和。这违反了网络层次结构的封装原则——网络层设备不应该去看传输层的内容。
3. 依赖于传输层协议
NAPT 依赖端口号来区分连接,但有些协议(如 ICMP)没有端口号的概念,NAT 处理起来比较麻烦。
4. 增加了网络复杂性
NAT 引入了状态(转换表),路由器变得有状态了,增加了故障排查的难度。
NAT 穿透
为了解决 NAT 后面的主机无法被外部访问的问题,出现了一些 NAT 穿透技术:
- UPnP:允许内网应用自动在 NAT 上配置端口映射
- STUN:通过外部服务器帮助内网主机发现自己的公网地址和端口
- 中继(TURN):通过第三方服务器转发数据
这些内容 408 基本不考,了解即可。
易错点
1. NAT 修改的是 IP 地址,NAPT 还额外修改端口号
基本 NAT 只改 IP,一对一映射;NAPT 同时改 IP 和端口号,多对一映射。
2. 私有地址的三个范围要记住
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。选择题可能给一个 IP 问是否属于私有地址。
3. NAT 路由器要重新计算校验和
修改了 IP 首部就要重算 IP 首部校验和;修改了端口号就要重算 TCP/UDP 校验和。
4. NAT 不等于防火墙
NAT 隐藏了内网结构,有一定的安全作用,但它本身不是安全设备。
高频考点清单
- 三段私有地址范围:10.x / 172.16~31.x / 192.168.x
- NAT 的功能:私有地址和公网地址的转换
- NAPT 通过端口号实现多对一映射
- NAT 破坏端到端通信模型
- NAT 修改 IP 地址(和端口号),需要重新计算校验和