Я настроил DNS-сервер на SLES10 (в настоящее время bind 9.6) на многосетевом сервере. Этот сервер может быть запрошен из всех внутренних сетей и предоставляет ответы для всех внутренних сетей. У нас есть две отдельные DNS "основные" зоны. Каждая из этих зон обслуживается рядом авторитетных Windows-DNS-серверов.
Теперь мой linux-сервер является вторичным DNS-сервером для одной из этих зон (частная внутренняя зона) и выполняет функции пересылки для другой зоны (общедоступная внутренняя зона).
До недавнего времени эта настройка работала без проблем. Теперь я получаю - при запросе публичной внутренней зоны (например, с помощью host
команды на клиенте Linux) сообщение об ошибке
;; Усечено, повторная попытка в режиме TCP
Причина этого была выявлена с помощью Wireshark-dump: первый запрос отправляется в режиме UDP, ответ не помещается в UDP (из-за длинного списка доверенных NS), затем повторяется в режиме TCP, обеспечивая правильный ответ.
Теперь вопрос: могу ли я настроить привязку для запроса серверов пересылки в режиме TCP без предварительной попытки UDP?
Обновление: пробую свои силы в ASCII-искусстве ...
+--------------+ +--------------+ +-----------------+
| W2K8R2 DNS | | SLES 10 DNS | | W2K8R2 DNS |
| Zone private +---+ All internal +---+ Zone public |
| internal 2x | | Zones | | internal 30+ x |
+--------------+ +-+----------+-+ +-----------------+
| |
+--+---+ +--+---+
|Client| |Client|
+------+ +------+
host
команду и каким запросом отправляется.
minimal-responses: yes
в конфигурацию BIND на SLES 10 - это может уменьшить размеры ответов. В любом случае, большинство обычных запросов не будут превышать 512 байт.