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

Любопытное поведение Windows Server 2012 R2 с записью hosts

TL; DR ... наша политика домена молча принудительно подтолкнула настройки локальной сети (включая ссылку на прокси) на мою машину с заранее определенным интервалом, который случился во время разработки, но после того, как я вручную отключил прокси. Поскольку я точно знал, что отключил его для локальных адресов, мне не приходило в голову, что это будет корнем моей проблемы.


На одной из моих машин разработки под управлением Windows Server 2012 R2 я наблюдаю любопытное поведение при локальном разрешении хоста через файл hosts.

[ Описание для воспроизведения ]

Приставка

C:\Windows\system32>ping baz.inga
Ping request could not find host baz.inga. Please check the name and try again.
C:\Windows\system32>_

Файл Hosts

127.0.0.1 baz.inga
::1 baz.inga

Вернуться в консоль

C:\Windows\system32>ping baz.inga

Pinging baz.inga [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Windows\system32>_

... Затем я размещаю приложение на localhost: 7890

Скрипач

/ПОЛУЧИТЬ http: //baz.inga: 7890

[Ожидается]: разрешение локального хоста преобразует "baz.inga" в "localhost" и обслуживает мой контент

[Фактическое]: ответ 503 «Служба недоступна» и сбой поиска DNS.

Есть ли какое-нибудь разумное объяснение, почему это не решается локально? Я протестировал ту же процедуру на машине под управлением Windows 7, и ответ на HTTP-прокси является ресурсом с локальным разрешением.

ЧТО?!?!

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

Хотя я отключил прокси-скрипт при настройке разрешения моего локального хоста, когда таймер сработал, ссылка на прокси-скрипт была принудительно передана через локальную сеть и внесла мою ошибку. Поскольку я уже отключил http-прокси вручную, мне не приходило в голову, что это будет корнем моей проблемы и что это «должно» быть чем-то более сложным.

Вместо создания новой «привилегированной» политики домена, в которой эти строгие параметры не выставляются автоматически, наше решение состоит в том, чтобы определить соглашение, по которому хостам, предназначенным для разрешения на локальном компьютере, будет предоставлен основанный на соглашении «зарезервированный» конечный сегмент полномочий. , который затем будет автоматически разрешен через прокси как ПРЯМАЯ ссылка путем изменения файла proxy.pac, отправленного с контроллера домена, с помощью

if(dnsDomainIs(host, ".reserved")) { return "DIRECT"; }

HTTP 503 - это ответ об ошибке от вашего приложения, а не сбой поиска DNS; если бы запрос не смог достичь вашего приложения из-за того, что не разрешил его имя хоста, он не получил бы ответа 503.

Похоже, ваше разрешение имени в порядке (как и ожидалось и подтверждено ping работает); ваше приложение вместо этого не работает.