NAT¶
网络地址转换(Network Address Translation)
转发过程中修改报文的IP和端口

解决问题¶
- IPv4地址短缺
- 保护内网
静态NAT¶
一个内网IP地址对应一个外网IP地址
网络地址端口转换(NAPT)¶
支持端口映射,内网多个主机不用不同的NAT端口
允许多台主机共享一个公网IP地址
地址转换¶

如上如所示:
host到server时,router会修改报文的源IP和源端口
server到host时,router会修改报文的目的IP和目的端口
NAPT例子¶
NAPT维护一个带有IP以及端口号的NAT表,结构如下:
| 内网IP | 外网IP |
|---|---|
| 192.168.1.55:5566 | 219.152.168.222:9200 |
| 192.168.1.59:80 | 219.152.168.222:9201 |
| 192.168.1.59:4465 | 219.152.168.222:9202 |
NAT类型¶
完全圆锥型NAT(Full cone NAT)¶
内部地址iAddr:iPort映射到外部地址oAddr:oPort后
所有发自iAddr:iPort的数据包都经由oAddr:oPort向外发送
任意外部主机都能经由发送数据包给oAddr:oPort到达iAddr:iPort

上例中:
client1发送消息到server1后
server1和sever2都可以发送数据到oAddr:oPort到达client1
受限圆锥型NAT((Address-)Restricted cone NAT)¶
内部地址iAddr:iPort映射到外部地址oAddr:oPort后
所有发自iAddr:iPort的数据包都经由oAddr:oPort向外发送
只有iAddr:iPort曾经发送过的外部目的主机(可以使用任意端口)才能将数据报文通过oAddr:oPort到达 iAddr:iPort

上例中:
client1发送消息到server1后
只有server1才能发送数据通过oAddr:oPort到达client1
sever无法到达client1
端口受限圆锥型NAT(Port-Restricted cone NAT)¶
在受限制锥形NAT基础上,限制了目的主机回送消息使用的源端口
内部地址iAddr:iPort映射到外部地址oAddr:oPort后
所有发自iAddr:iPort的数据包都经由oAddr:oPort向外发送
只有iAddr:iPort曾经发送过的外部目的主机(固定端口)才能将数据报文通过oAddr:oPort到达 iAddr:iPort

对称NAT(Symmetric NAT)¶
不同的iAddr:iPort映射到不同的eAddr:ePort上
目的服务器回消息时,需要将收到包内的源IP和端口作为发包的目的IP和端口才能将数据送回
