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