NAT
如果您使用静态(一对一)NAT,路由器会将11.2.10.172
公共 IP分配给192.168.1.101
尝试访问 google.com的第一台 PC(例如)。在这种情况下,两台 PC 将无法同时与 google.com 通信,因为唯一可用的公共 IP 已经分发。
路由器中的 NAT 表:
11.2.10.172 -> 192.168.1.101
PAT
在您的情况下,PAT(NAT 重载)是解决方案。
使用 PAT,可以将多个地址映射到一个私有 IP。当设备发起 TCP/IP 会话时,它会生成一个 TCP 或 UDP 源端口号来唯一标识该会话。当路由器收到此数据包时,它使用该源端口号来唯一标识转换。
示例
PC1 ( 192.168.1.101
)64.233.161.1
使用随机源端口号 (1444)向 google.com ( )发出 HTTP 请求。PC1 将发送一个带有DA: 64.233.161.1:80 | SA: 192.168.1.101:1444
. 当路由器收到这个数据包时,它会插入11.2.10.172:1444 -> 192.168.1.101:1444
到 NAT 表中,然后将数据包的 L3 地址更改为DA: 64.233.161.1:80 | SA: 11.2.10.172:1444
并将其转发到 google.com。
谷歌回应DA: 11.2.10.172:1444 | SA: 64.233.161.1:80
。路由器接收此数据包并将其转换为,DA: 192.168.1.101:1444 | SA: 64.233.161.1:80
然后将其转发到 PC1。
如果 PC2 ( 192.168.1.102
) 发送的数据包的源端口号与 PC1 相同,则路由器只需将端口号增加 1。在这种情况下,NAT 表将如下所示
11.2.10.172:1444 -> 192.168.1.101:1444
11.2.10.172:1445 -> 192.168.1.102:1444
我希望它有点帮助。
更新
正如@CraigConstantine 所注意到的,10.2.10.172
仍然在私有地址空间中,所以我已将其更改为11.2.10.172
.