что на самом деле делает dns-loop-detect?

в одном восходящем dnsmasq (D1), у меня есть:

log-queries
dns-loop-detect
server=/mydomain.net/192.168.200.1

в другом dnsmasq (D2), у меня:

log-queries
dns-loop-detect
domain=mydomain.net
...

Когда я копаю test.mydomain.net A работает нормально. Однако, если я сделаю dig test.mydomain.net AAAA , B перенаправит запрос обратно на D1, поскольку я не настраивал ipv6. Затем происходит цикл запросов отскока запросов между D1 и D2. Я думал, что dns-loop-detect предотвратит этот цикл, но это не так. Я знал, что могу поместить local = / mydomain.net / в D2, чтобы предотвратить это. Но какова тогда цель dns-loop-detect? Какой цикл он должен обнаруживать и останавливать?

1
задан 17 December 2020 в 18:11
1 ответ

Этот алгоритм обнаружения петель просто отправляет простой запрос всем восходящим каналам, не ограничиваясь конкретным доменом (включая rDNS). Если этот зонд возвращается, идентификатор сервера, упомянутый в этом зонде, помечается как цикл (т. е. пропускается при проверке пригодного для использования восходящего потока).

Наиболее очевидный цикл, который он предназначен и может остановить, — это когда какая-то автоматизация, связанная с resolvconf, передает dnsmasq все известные DNS-серверы, включая сам dnsmasq в роли локального кэширующего преобразователя.

Причина отправки запросов только в вышестоящие потоки, действительные для любого домена, заключается просто в том, что тест представляет собой запрос на имя test — dnsmasq не отправляет такой запрос в вышестоящий поток, явно не настроенный для обработки имена.

0
ответ дан 17 December 2020 в 15:35

Теги

Похожие вопросы