NAT
大约 2 分钟
介绍
网络地址转换协议 (Network Address Translation, NAT) 主要用于广域网的 IP 地址和局域网的 IP 地址之间互相转换。
详情
家用路由器拥有一个广域网的 IP 地址,而其他连接到路由器的设备都是共用这个广域网的 IP 地址,这时候就需要使用 NAT 协议进行转换。
私有网段
网络类型 | 范围 |
---|---|
A类 | 10.0.0.0~10.255.255.255 |
B类 | 172.16.0.0~172.31.255.255 |
C类 | 192.168.0.0~192.168.255.255 |
这三类网段为私有网段,用于内部局域网使用。
工作原理
如上图所示,如果主机 A 向服务器发送数据包时,路由器会将来源 ip 192.168.50.2
转换为 113.112.111.110
, 然后发送给服务器 133.133.133.133
的 80 端口。当服务器返回数据时,又需要将目标地址转换为内网地址。
转换过程
- 在主机A发送请求数据包时会随机分配一个端口号如
8888
给请求,即请求来源为192.168.50.2:8888
- 请求到达路由器后路由器又会指派一个端口给该请求,如
9999
, 且将请求的来源 IP 地址改为113.112.111.110
, 最终请求来源地址为113.112.111.110:9999
, 路由器会保存该映射到 NAT转换表 :192.168.50.2:8888 -- 113.112.111.110:9999
。 - 服务器返回数据的数据包目标地址为
113.112.111.110:9999
, 当数据包到达路由器时,路由器会根据转换表中的记录将请求目标地址转换为192.168.50.2:8888
,将数据包发送到内网主机。
NAT 的优点
- 内网安全: NAT协议将内网所有网络设备共享统一的 IP 地址,避免内网主机直接暴露在公网,能提高内网主机的安全性。
- 负载均衡: NAT协议可以将外部请求重定向到内部不同的主机,实现复制均衡。
- 节约 IP 地址: 我们知道 IPV4 的地址是有限的,NAT 协议使得大量内网设备可以联网,大大减轻了 IPV4 地址不足导致的问题。
NAT 的缺点
- 内部屏蔽: 外部服务器无法直接访问内网设备
- 性能损耗: 路由器维护 NAT 转换表有性能损耗
- 链接丢失: 若路由器重启会导致所有 TCP 连接断开
解决方法
IPV6 协议的出现可以弥补 NAT 的缺点,是未来的主要应用。