我试图了解 NAT 和 NAT 表的工作原理,但似乎无法在线找到答案。我有几个关于 NAT 的问题。假设已建立 TCP 连接。
假设路由器有 WAN 201.22.14.15
1) 假设 IP 为 192.168.1.1 的设备想要连接到 IP 为 137.132.1.15 的服务器。设备首先将数据封装在一个 IP 数据报中,源 IP 为 192.168.1.1,目标 IP 为 137.132.1.15?
2) 之后数据报被发送到发生 NAT 的路由器。假设这是在专用网络中发送的第一个数据包,NAT 表最初是空的?
3) 现在表中有一个条目将 192.168.1.1:1234 映射到 201.22.14.15:2345。?
192.168.1.1:1234 -> 201.22.14.15:2345
Run Code Online (Sandbox Code Playgroud)
IP 数据报在发送前会使用相应的路由器地址(201.22.14.15)和端口号 2345 重新打包。从路由器到服务器是否有单独的 TCP 连接?或者该条目只是分配了一个虚拟端口号?
4)数据从服务器137.132.1.15返回,dst IP为201.22.14.15,目标端口为2345。路由器查表,发现201.22.14.15:2345映射到192.168.1.1:122 所以它重新打包了 src 地址为 137.132.1.15:80 和 dst 地址为 192.168.1.1:1234 的 IP 数据报
我不确定我强调的步骤是否正确。