
假設我有一個客戶端和伺服器。客戶端位於 NAT 後面,伺服器是公共的。
客戶希望有一個會議與伺服器。
假設客戶端位於 192.168.1.1,NAT 位於 192.168.1.2 私有 IP 位址上。 NAT 位於 50.0.0.1 上,伺服器位於 50.0.0.2 公用 IP 位址上。
客戶端將UDP/IP(希望與TCP/IP類似)封包傳送到伺服器。此封包的來源 IP 192.168.1.1 和來源連接埠(假設為 1000)(隨機選擇),還有目標連接埠 50.0.0.2 和目標連接埠 2000,因為這是伺服器上執行的應用程式的連接埠。
TCP/IP 封包到達 NAT,NAT 將來源 IP 變更為 50.0.0.1,連接埠變更為 5000(隨機選擇),並路由至伺服器。
伺服器發送回應報文,目的IP為50.0.0.1,連接埠為5000。
NAT 將封包的目的 IP 變更為 192.168.1.1,目的連接埠變更為 1000。
現在,伺服器是否可以向同一個IP 50.0.0.1和連接埠5000發送許多UDP/IP封包,並且所有封包都將轉送到客戶端192.168.1.1埠1000?
如果是這樣,NAT 公共端的連接埠 5000 會將封包轉送到上述用戶端多久?
僅數據包來源 IP 50.0.0.2 和來源連接埠 2000會轉發給客戶端嗎?
答案1
答案:
- 是的。
- 這取決於裝置的 NAT 實作。在 Linux 中,可以透過以下方式進行調整編輯/proc/sys/net/ipv4/netfilter/ip_conntrack_udp_*
- 是 - 除非有 NAT 識別的「相關」端口,在這種情況下,使用額外的 NAT 模組來確定相關的端口(至少在 Linux 上)