Вчера я обсуждал запуск той же службы, например SMTP, на том же порте на сервере. Я думаю, что это возможно, если назначить несколько IP-адресов серверу и привязать службу к каждой комбинации IP / Port. Однако мы закончили дискуссию и пришли к выводу, что упустили теоретическую основу.
Мы застряли на метафоре, что сервер - это дом, доступный по нескольким (IP) адресам, а порты - это комнаты. В комнатах есть номера, но на каждый номер приходится только одна комната. Это будет означать, что какой бы адрес вы ни использовали для входа в дом, вы всегда будете находиться в одной комнате.
Думаю, так не работает, комбинация ip / порт порта запроса делает запрос уникальным. ОС может обрабатывать несколько служб на одном и том же номере порта, если служба привязана к IP-адресу.
Вопрос не в том, как запустить два веб-сервера типа X на порту 80 в ОС типа Y. Я хотел бы знать, как это работает на концептуальном уровне, чтобы я мог понять и объяснить это кому-то другому
[РЕДАКТИРОВАТЬ]
Может мой вопрос немного пушистый. Вопрос в следующем: возможно ли иметь несколько IP-адресов на сервере и разделять трафик по IP-адресу, следовательно, иметь несколько портов 25 на одном сервере.
И если да, то как мне объяснить это тому, кто в это не верит. Может быть, хорошая метафора?
Каждый IP-адрес в системе будет иметь все доступные для использования порты.
Многие службы можно настроить на прослушивание одной или нескольких пар IP: Port. Если служба прослушивает все IP: 25, то нагрузка может быть разделена между каждым.
Однако вам не хватает того, как подключающееся устройство знает, куда подключиться? Возможно, можно будет использовать Циклический перебор DNS для предоставления разных IP-адресов или, в случае SMTP (порт 25), равных весов Записи MX.
На самом деле, чем больше я пытаюсь ответить на ваш вопрос, тем больше понимаю, что ваше непонимание необходимо исправить, поэтому я снова отсылаю вас к отличному Руководство по TCP / IP
Я думаю, что метафору «каждый сервер - это дом» следует исправить, поскольку «каждый IP-адрес - это дом». например Допустим, ваш сервер имеет 2 IP-адреса таким образом теоретически у вас есть 2 * (2 ^ 16) уникальных комбинаций из 131072 серверных сокетов, доступных вам.
Поскольку у вас другая комбинация IP: Port, вы можете настроить Sendmail (IP_Address_1: 25) и Postfix на одном сервере (IP_Address_2: 25)