Сценарий:
У меня есть порт, перенаправленный маршрутизатор, т.е. переадресованный port 80
на HostA. У меня есть другой хост HostB в той же сети, где запущен веб-сервис на port 80
. Как NAT справится с этим?
Сценарий:
У меня есть порт, перенаправленный маршрутизатор, т.е. переадресованный port 80
на HostA. У меня есть другой хост HostB в той же сети, где запущен веб-сервис на port 80
. Как NAT справится с этим?
Не будет То есть маршрутизатор не позволит вам переадресовывать один и тот же порт 80 с одного и того же внешнего IP-адреса на оба хоста одновременно. (Если это так, то будет соответствовать только "первое" правило.)
Чтобы запустить несколько веб-серверов за одним IP-адресом, вы должны перенаправить порт 80 на обратный прокси-сервер, который затем выполняет аналогичные действия, но на уровне HTTP. (То есть обратный прокси-сервер понимает запросы HTTP и принимает решения на основе заголовка HTTP "Host" или TLS SNI.) Различные популярные веб-серверы (например, Apache, Nginx) имеют функцию обратного прокси, но есть и выделенные.
При доступе через LAN HostA будет указывать на HostA, HostB на HostB. Ex. hosta.domain.com:80 (или по ip) hostb.domain.com:80 ответит нормально.
При доступе через WAN (общедоступный Интернет, а не локальный) он отвечает HostA, поэтому RouterIP:80 или hosta.domain.com будут подключаться к HostA, тогда как HostB просто не существует или не отвечает.
--- Предполагая, что HostA прослушивает порт 80.
Если только HostB прослушивает порт 80, то ни один из них не будет работать в глобальной сети, в то время как только HostB будет работать в локальной сети, поскольку только он прослушивает соединения.