Назад | Перейти на главную страницу

Почему IIS не разрешает TCP-соединения с внешних IP-адресов через NLB

У меня есть среда веб-сервера разработки, состоящая из 2 виртуальных машин Windows 2012, настроенных с NLB (многоадресный режим). Каждая из них использует один сетевой адаптер с двумя назначенными IP-адресами: общий IP-адрес NLB и их индивидуальный IP-адрес, не являющийся общим. Наш шаблон использования - запускать сборки и развертывания на одной из виртуальных машин, пока она находится вне активного пула NLB. После завершения сборки только что обновленный сервер добавляется обратно в пул, а другой удаляется. Таким образом мы поддерживаем постоянную работоспособность.

Моя проблема в том, что на 1 из 2 серверов IIS не разрешает подключения с IP-адресов за пределами нашей сети через NLB. Таким образом, если этот сервер является единственным активным в пуле NLB, внутренние ПК могут подключаться, но хосты за пределами нашей сети не могут подключаться. У них тайм-аут. Я вижу TCP SYN с помощью Wireshark, и ни один ACK никогда не отправляется обратно. Если я переключаю конфигурацию NLB на другой сервер, он позволяет подключаться как внутренним, так и внешним IP-адресам. И я проверил это с внешнего хоста, который я контролирую: я попытался выполнить HTTP-запрос, используя IP-адрес NLB, и получил тот же результат.

Что я проверил:

Как я могу решить, почему IIS не принимает SYN с внешних IP-адресов? Может ли он регистрировать подобные вещи?

Если я не могу устранить неполадки, по которым IIS не разрешает подключение к серверу 2, единственным выходом для меня будет восстановление всей виртуальной машины с нуля и повторная попытка ...

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

Для справки в будущем хорошим тестом в этой ситуации будет проверка того, что виртуальная машина может инициировать исходящие соединения с внешними IP-адресами, например запустите веб-браузер и перейдите на google.com. У меня возникло ощущение, что он также вышел бы из строя, пока он был в плохом состоянии, и было бы легче устранить неполадки.