3

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

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

Спасибо.

1 ответ1

4

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .