解釋如何將服務綁定到IP和連接埠

解釋如何將服務綁定到IP和連接埠

昨天我討論了在伺服器上的相同連接埠上運行相同的服務,例如 SMTP。我認為這可以透過為伺服器分配多個 IP 位址並將服務綁定到每個 IP/連接埠組合來實現。然而,我們最終進行了討論,得出的結論是我們錯過了理論背景。

我們陷入了這樣的比喻:伺服器是房子,可以透過多個(IP)位址訪問,連接埠是房間。房間有號碼,但每個號碼只能有一個房間。這意味著無論使用什麼地址到達房子,您總是會到達同一個房間。

我認為這樣不行,請求的 ip/port 連接埠的組合使得請求是唯一的。作業系統可以在同一個連接埠號碼上處理多個服務,只要該服務綁定到一個IP位址。

這不是關於如何在作業系統類型 Y 上的連接埠 80 上運行兩個 X 型 Web 伺服器的問題。

[編輯]

也許我的問題有點毛茸茸的。問題是:是否可以在一台伺服器上擁有多個 ip 位址並拆分每個 ip 位址的流量,從而在一台伺服器上擁有多個連接埠 25。

如果是這樣,我該如何向不相信這一點的人解釋這一點。也許是一個很好的比喻?

答案1

我認為「每台伺服器都是一棟房子」這個比喻需要更正為「每個 IP 位址都是一棟房子」。例如,假設您的伺服器有 2 個 IP 位址理論上您有 2 * (2^16) 個 131072 個伺服器套接字的唯一組合可供您使用。

由於您有不同的 IP:連接埠組合,您可以在同一伺服器上設定 Sendmail (IP_Address_1:25) 和 Postfix (IP_Address_2:25)

答案2

系統上的每個 IP 位址都將具有可供使用的所有連接埠。

許多服務可以配置為偵聽一個或多個 IP:連接埠對。如果某個服務正在偵聽所有 IP:25,則可以將負載分攤到每個 IP:25 上。

然而,您缺少的是連接設備如何知道連接到哪裡?或許可以使用DNS 輪詢提供不同的 IP 位址或在 SMTP(連接埠 25)的情況下同等權重MX記錄

實際上,我越嘗試回答你的問題,我就越意識到你缺乏理解,需要改進,所以我會再次向你推薦優秀的TCP/IP 指南

相關內容