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

Общедоступный / частный IP-адрес

У нас есть несколько веб-сайтов (с несколькими общедоступными IP-адресами), работающих на веб-сервере. В IIS IP-адресом являются внутренние IP-адреса (192.168.xxx.xxx). Как определить, какой общедоступный IP-адрес соответствует какому внутреннему IP-адресу? Моя цель - изменить некоторые общедоступные IP-адреса. Конкретный веб-сервер работает под управлением IIS 6 на Windows 2003 Server. Заранее спасибо за вашу помощь!

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

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

Основываясь на вашем комментарии, вам может потребоваться добавить определение заголовка хоста в конфигурацию IIS. Если два веб-сайта прослушивают один и тот же порт (например, 80), вам необходимо указать IIS, как направлять трафик на каждый сайт. Вы делаете это, сообщая ему, какой адрес хоста обрабатывается каждым сайтом. (У меня есть только сервер IIS 5, но настройки для него должны быть аналогичными)

  1. Щелкните правой кнопкой мыши веб-сайт и выберите «Свойства».
  2. Выберите вкладку веб-сайт
  3. Рядом с IP-адресом нажмите кнопку «Дополнительно».
  4. В разделе «Несколько идентификаторов для этого веб-сайта» отредактируйте запись и установите в качестве адреса хоста имя хоста вашего веб-сайта. Например, если вы заходите на веб-сайт по адресу http://www.example.com, вы должны установить адрес хоста на www.example.com. Сохраните настройки и при необходимости перезапустите IIS.

Проблема с сертификатом - это еще одна проблема, которая может быть причиной 400 ошибок. Чтобы расшифровать запрос, IIS необходимо знать используемый ключ. Поскольку весь запрос зашифрован, единственное, что он может использовать для определения того, какой ключ использовать, - это порт, на который поступил запрос. Если у вас есть более одного веб-сайта с поддержкой SSL / TLS на сервере, вам необходимо, чтобы каждый из них прослушивал разные порты, и вашему брандмауэру нужно будет знать, чтобы направить запрос на этот порт. Это также означает, что вашему брандмауэру потребуется маршрутизировать определенные общедоступные IP-адреса / порты на определенный порт для частного IP-адреса.

Вы используете NAT 1: 1 (или это можно назвать виртуальными IP-адресами) в пограничном брандмауэре? Это был бы один из способов узнать, какие общедоступные IP-адреса соответствуют частным IP-адресам.

Однако вполне вероятно, что вы просто используете заголовки узлов в IIS для каждого веб-сайта: выполните nslookup server 8.8.8.8 а затем найдите запись A для каждого из перечисленных доменов (я бы также использовал хост www) и IP-адреса, которые они разрешают, скажут вам, какие IP-адреса используются для ваших веб-сайтов.

Я поместил 8.8.8.8 (сервер имен Google) в пример nslookup на случай, если вы разделили настройку DNS внутри; это гарантирует, что вы получаете общедоступный IP-адрес, а не внутренний IP-адрес.

Ваши серверы многосетевые или у вас есть адресация с NAT? Если они находятся за границей NAT (межсетевой экран?), Почему бы просто не поискать там сопоставление?

Почему бы просто не войти на сервер, открыть диспетчер IIS и посмотреть привязки для каждого веб-сайта?