o que o dns-loop-detect realmente faz?

o que o dns-loop-detect realmente faz?

em um dnsmasq upstream (D1) eu tenho:

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

em outro dnsmasq (D2) eu tenho:

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

Quando eu dig test.mydomain.net Afunciona bem. No entanto, se eu fizer isso dig test.mydomain.net AAAA, B encaminhará a solicitação de volta para D1, pois não configurei o ipv6. Em seguida, o loop acontece quando as solicitações saltam entre D1 e D2. Achei que o dns-loop-detect impediria esse loop, mas isso não acontece. Eu sabia que posso colocar local=/mydomain.net/ em D2 para evitar isso. Mas qual é o propósito do dns-loop-detect então? Que tipo de loop ele deve detectar e parar?

Responder1

Esse algoritmo de detecção de loop apenas envia uma sonda simples para todos os upstreamsnãosendo limitado a um domínio específico (incluindo rDNS). Se essa investigação for recebida de volta, o ID do servidor mencionado nessa investigação será marcado como um loop (ou seja, será ignorado ao verificar se há um upstream utilizável).

O loop mais óbvio que ele pretende parar é quando alguma automação relacionada ao resolvconf alimenta o dnsmasq com todos os servidores DNS conhecidos - incluindo o próprio dnsmasq na função de resolvedor de cache local.

A razão por trás do envio apenas dos testes para upstreams válidos para qualquer domínio é simplesmente que o teste é uma consulta para o nome test- o dnsmasq não envia tal consulta para um upstream expressamente não configurado para lidar com nomes arbitrários.

informação relacionada