2012-01-30 33 views
0

我試圖確定如何/如果多個機器後面的NAT建立獨特的TCP/IP連接到相同的遠程IP地址,如果所有機器正在使用相同的端口。在這種情況下,我的理解是,用於識別每個TCP連接的五元組,實際上將看起來是一樣的單個遠程機器上 - 因爲它是由組成:多個開放的TCP/IP連接從NAT後面到相同的IP和端口

  1. 協議
  2. 遠程IP
  3. 遠程端口
  4. 本地IP
  5. 本地端口

因此,在這種情況下,如何將單個遠程機器CON區分如果它們都使用端口80,則來自NAT'd計算機A與NAT'd計算機B的連接?我假設這是可能的,因爲在NAT後面的計算機能夠同時在相同的端口上執行相同的操作而沒有問題......我只是沒有看到遠程機器如何正確處理這個問題。

謝謝!

+0

您的列表有點不對:您有兩次「遠程端口」。其中之一應該是「本地港口」。 – Crontab 2012-01-30 17:55:25

+0

謝謝 - 更正。 – EnemyBagJones 2012-01-30 18:01:03

回答

1

如果機器使用不同的源端口 - 問題已解決。遠程TCP使用它來識別它們。如果多臺機器使用相同的源端口,則NAT負責處理並更改它。

+0

因此,當流量被路由到遠程IP時,NAT改變始發端口 - 但由於遠程端口仍然是相同的(80),所以到達端口限制服務沒有問題。返回路徑也可以,因爲NAT會將該端口轉換回原始端口(比如80),以獲取NAT後面的流量。那是對的嗎? – EnemyBagJones 2012-01-30 17:57:52

+0

@JPAnderson看起來正確:-) – cnicutar 2012-01-30 18:00:08

+0

謝謝cnicutar - 現在有道理。非常感激。 – EnemyBagJones 2012-01-30 19:05:33

0

您還應該記住,NAT路由器可以調整IP /端口對以避免衝突。它是如何完成的,如端口轉發。即使路由器設法來自同一個源端口,路由器也會將這些流識別爲唯一的,因爲源本地IP將不同。

相關問題