Эксперты, у меня проблема с настройкой DNS серверов, схема сети представлена на рисунке:
Проблема проявляется в следующем:
Два DNS-сервера обслуживают как внутренние, так и внешние запросы; первый - это контроллер домена, второй - почтовый и веб-сервер;
Сервер, обслуживающий внешние запросы, находится в локальной сети и имеет адрес 192.168.1.11; для обслуживания экстрасети маршрутизатор обеспечивает статический NAT-адрес-адрес;
Клиенты в локальной сети используют контроллер домена в качестве DNS-сервера, и у него есть соответствующая зона (она является официальной для зоны), где имена преобразуются в локальные адреса;
Сервер для запросов экстрасети разрешает имена во внешние адреса, протестирован извне нормально. Если выполнить запрос из дома, например
dig @8.8.8.8 mail.company com.
тогда он дает правильный ответ:
;; ANSWER SECTION:
mail.company.com. 0 IN A 111.111.111.111
Однако при подключении к локальной сети возникает странная аномалия:
dig @8.8.8.8 mail.company.com.
;; ANSWER SECTION:
mail.company.com. 0 IN A 192.168.1.11
Такой ответ для nslookup:
nslookup -type=A -class=IN mail.company.com. 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative:
Name: mail.company.com
Address: 192.168.1.11
Независимо от внешнего сервера, предназначенного для обслуживания DNS-запросов (Google DNS, Open DNS, ISP DNS), каждый из них возвращает адреса LAN.
Это выглядит нормально для 192.168.1.101 (контроллер домена), но не для внешних серверов. Очистка кеша резолвера, смена DNS-серверов на клиентском ПК не помогает: внешние DNS-серверы отправляют обратно локальные адреса, что невозможно. Те же DNS-серверы по запросу извне (из дома или другого офиса) возвращают правильные внешние адреса.
Примечательно, что при отправке прямого запроса на мой сервер, обслуживающий внешние запросы, я получаю правильный ответ:
Server: ns.company.com.
Address: 192.168.1.11
Name: mail.company.com.
Address: 111.111.111.111
Собственно, прошу помощи, чтобы помочь мне решить проблему.
Итак, прежде всего, когда вы запрашиваете внешние DNS-серверы, не забывайте, что они кэшируют результаты. Одно из значений SOA вашей зоны - это продолжительность кэширования результата. Лучший способ проверить - напрямую запросить ваш DNS-сервер.
Во-вторых, помните, что 8.8.8.8 - это произвольный адрес, поэтому вы никогда не сможете точно знать, к какому реальному DNS-серверу вы обращаетесь.
Что происходит, когда вы из своей локальной сети копаете @ 192.168.1.11 -tA mail.company.com
Если вы получите правильный ответ, то я подозреваю, что все, что вам нужно сделать, это подождать, пока внешние DNS-серверы, с которыми вы тестировали, истекли в их кеш-памяти.
Удачи