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

что на самом деле делает 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
...

Когда я dig 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

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

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

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

Связанный контент