Могу ли я использовать TCP в качестве протокола DNS-запросов в Mac OS?

Я использую Mac OS, Snow Leopard 10.6.2, и я страдаю от потери пакетов UDP во время DNS-запроса. Так что мой веб-браузер слишком медленный для серфинга в интернете. Но это сработало очень хорошо, когда я попробовал DNS-запрос по TCP с помощью команды dig.

Тем не менее, я не могу найти какой-то переключатель управления для изменения использования TCP во время DNS-запроса. Есть ли способ изменить это в Mac OS?

Спасибо.

1 ответ

Нет способа (о котором я знаю) заставить стандартную библиотеку распознавателя (см. man 3 res_query) использовать TCP для всех соединений, хотя отдельные приложения могут сделать это, установив RES_USEVC флаг, когда они запускаются.

Также нет способа настроить BIND на отправку запросов только по TCP.

Я полагаю, что вы можете сделать это теоретически, запустив Unbound локально и установив для флага "do-udp" значение false, а затем поместив 127.0.0.1 в конфигурацию DNS на панели управления сетью.

Однако в документации неясно, препятствует ли это тогда Unbound отвечать на запросы, полученные через UDP. Я проверю это... Нет, это не сработало. Я написал автору по электронной почте...

Тем не менее, вы действительно не должны этого делать - вы должны найти настоящую ошибку. Я твердо верю в необходимость поддержки TCP в DNS (я написал http://tools.ietf.org/html/draft-ietf-dnsext-dns-tcp-requirements-03), но он все еще должен использоваться как запасной вариант, когда UDP-сообщения слишком велики для в 512 байтах или расширенном формате, совместимом с EDNS0.

Другие вопросы по тегам