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

Сервер Windows игнорирует разрешение DNS в частном интерфейсе

У меня есть сервер Windows 2012 с двумя интерфейсами - общедоступный с выходом в Интернет и частный.

Частный интерфейс использует наши внутренние DNS-серверы. У этого интерфейса нет шлюза. Статический IP - не DHCP.

Я хочу отключить публичный интерфейс, так как мы используем прокси для исходящего трафика.

Отключив его, я обнаружил, что разрешение DNS не работает:

Я перепробовал все перезагрузки, ipconfig / flushdns, nbtstat -R прочее.

a) Почему ping (и наше приложение) не может должным образом решать проблемы, когда публичный интерфейс отключен, несмотря на то, что Windows может разговаривать со своим DNS-сервером и кэшировать результат (как показано в ipconfig / displaydns).

б) Почему файл hosts игнорируется для частного интерфейса?

Большое спасибо.

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

Вернулся быстрый поиск в Google этот пользователь с таким же вопросом:

Пользователь сделал снимок Wireshark и обнаружил, что при попытке проверить связь с хостом DNS-запрос не выполнялся.

Объяснение такого поведения было:

Я считаю, что nslookup открывает соединение winsock через порт DNS и выдает запрос, тогда как ping использует службу DNS-клиента. Вы можете попробовать остановить эту службу и посмотреть, имеет ли это значение.

Некоторые команды, которые повторно инициализируют различные состояния сети:

Сбросьте записи WINSOCK до значений по умолчанию: netsh winsock reset catalog
Сбросить стек TCP / IP до значений по умолчанию: netsh int ip reset reset.log
Очистить кеш преобразователя DNS: ipconfig /flushdns
Обновите регистрацию клиента DNS и обновите аренду DHCP: ipconfig /registerdns
Очистить таблицу маршрутизации: route /f (требуется перезагрузка)