Я недавно пытался настроить одноадресную передачу DNS-SD чтобы упростить печать для пользователей Mac, но я наткнулся на странную загвоздку.
Мы используем две машины Windows Server 2008 R2 в качестве DNS-серверов между конечными пользователями и Интернетом, но по какой-то причине они возвращают ответ SERVFAIL при пересылке записей TXT принтеров. Другие DNS-серверы (включая те, которые работают под управлением Windows Server 2003) не имеют никаких проблем.
Я даже установил новый экземпляр Windows Server 2008 R2 (на EC2), чтобы исключить проблемы с брандмауэром и конфигурацией сети. Проблема все еще возникает. Мое исследование выявило некоторые проблемы с 2008 R2 и EDNS, но команда что другие утверждают, что проблема исправлена, не помогло.
Кто-нибудь еще настраивал одноадресное совместное использование DNS-SD, которое работает через DNS-сервер Windows 2008 R2? Есть идеи, что могло быть причиной этого?
Похоже, что сообщение запроса (0x3766) отправляется по UDP без EDNS (в дополнительном разделе был бы Opt RR, если бы он использовал EDNS), что ограничивает максимальный ответ 512 байтами. Одни только данные TXT составляют 546 байтов, поэтому на запрос нельзя ответить в 512 байтах. Сервер должен отвечать усеченным (установлен бит TC) ответом, который заставит клиента повторить запрос через TCP.
Я не так хорошо знаком с Windows, поэтому все, что я могу предложить, - это уменьшить размер записи TXT. Лично я бы попробовал установить для данных записи значение «1» и посмотреть, как это повлияет на клиента. (Запись TXT требуется для службы DNS-SD, и некоторые DNS-серверы / клиенты подавляются пустыми записями TXT, поэтому один символ - это минимум, от которого вы можете ожидать.)