У меня есть внутренний сервер, который использует определенный сервис. Эта служба прослушивает порт и говорит на другом порту. Проблема со службой в том, что она не может прослушивать и говорить на одном и том же IP-адресе, поэтому я настроил 2 IP-адреса для этого сетевого адаптера, и поэтому я "решил" проблему с прослушиванием и разговором.

У меня проблема, хотя ...

Мне нужно, чтобы этот сервер был NAT с публичным IP-адресом, и этот сервер должен быть доступен извне (и только как один IP)...

Вопрос в том, как мне решить ситуацию здесь?

Если я сделаю NAT для одного IP-адреса (порт прослушивания), он сможет получать запросы извне, но не сможет отправлять трафик (потому что другой IP не будет иметь NAT). Если я использую NAT на обоих IP-адресах, то, когда трафик поступает на прослушивающий порт, он не обязательно поступит на прослушивающий IP, а скорее на говорящий.

Надеюсь, я дал понять, что есть разумное решение, которого мне не хватает.

2 ответа2

0

Полностью согласен с @RedGrittyBrick, сервисом / программой / и т.д. вы работаете действительно странно требовать этого.

Большинство маршрутизаторов NAT позволяют назначать так много портов. Обычно каждый порт может быть назначен на другой IP. По сути, существует сопоставление портов и IP-адресов, поэтому NAT "достаточно умен", чтобы направлять трафик на разные IP-адреса.

Поэтому назначьте один порт для первого IP-адреса и порта вашего сервера, а другой порт - для второго IP-адреса и порта вашего сервера. Средство NAT на вашем маршрутизаторе будет следить за тем, чтобы трафик, поступающий на ваш первый "общедоступный" IP-порт, поступал на первый IP-адрес сервера, а трафик, поступающий на ваш "общедоступный" IP-порт, поступал на второй IP-адрес вашего сервера.

Однако "наложение" IP-адресов на одном физическом сетевом адаптере, поскольку то, что вы делаете на своем сервере, обычно не совсем эквивалентно наличию двух отдельных сетевых адаптеров, каждый с собственным IP-адресом, поэтому вы можете столкнуться с проблемами.

0

У меня есть внутренний сервер, который использует определенный сервис.

Обычно мы говорим, что клиент использует сервис. Сервер предоставляет услугу. Я полагаю, вы имеете в виду последнее.

Эта служба прослушивает порт и говорит на другом порту.

Для службы необычно требовать двух портов, большинство из которых управляют двунаправленной связью с одним портом. FTP является единственным распространенным исключением.

Проблема со службой в том, что она не может слушать и говорить на одном IP-адресе,

Это очень необычно (даже странно).

поэтому я настроил 2 IP-адреса для этого сетевого адаптера, и поэтому я "решил" проблему с прослушиванием и разговором.

У меня проблема, хотя ...

Мне нужно, чтобы этот сервер был NAT с публичным IP-адресом, и этот сервер должен быть доступен извне (и только как один IP)...

Это, очевидно, не проблема.

Вопрос в том, как мне решить ситуацию здесь?

Если я сделаю NAT для одного IP-адреса (порт прослушивания), он сможет получать запросы извне, но не сможет отправлять трафик (потому что другой IP не будет иметь NAT).

Обычно NAT применяется ко всем IP-адресам в локальной сети. Так что я не понимаю проблемы. Маршрутизатор, выполняющий NAT, запоминает, какой из его номеров портов связан с какими внутренними IP-адресами + номера портов.

Если я использую NAT на обоих IP-адресах, то, когда трафик поступает на прослушивающий порт, он не обязательно поступит на прослушивающий IP, а скорее на говорящий.

Нет, вы просто используете переадресацию портов (которая отличается от NAT) для входящих соединений. NAT заботится о различении существующих соединений и связывает каждое из них с внутренним IP-адресом.

Надеюсь, я дал понять, что есть разумное решение, которого мне не хватает.

Возможно, я неправильно понял, если вы можете прояснить вопрос, это может быть полезно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .