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 AAAAipv6을 설정하지 않았기 때문에 B는 요청을 다시 D1로 전달합니다. 그런 다음 루프에서 D1과 D2 사이에 바운스 요청이 발생합니다. 나는 dns-loop-Detect가 이 루프를 방지할 것이라고 생각했지만 그렇지 않습니다. 나는 이것을 방지하기 위해 D2에 local=/mydomain.net/을 넣을 수 있다는 것을 알고 있었습니다. 그렇다면 dns-loop-Detect의 목적은 무엇입니까? 어떤 종류의 루프를 감지하고 중지한다고 가정합니까?

답변1

해당 루프 감지 알고리즘은 모든 업스트림에 간단한 프로브를 보냅니다.~ 아니다특정 도메인(rDNS 포함)으로 제한됩니다. 해당 프로브가 다시 수신되면 해당 프로브에 언급된 서버 ID가 루프로 표시됩니다(즉, 사용 가능한 업스트림을 확인할 때 건너뜁니다).

이것이 의미하고 중지할 수 있는 가장 확실한 루프는 일부 resolvconf 관련 자동화가 dnsmasq에 로컬 캐싱 확인자 역할을 하는 dnsmasq 자체를 포함하여 알려진 모든 DNS 서버를 제공하는 경우입니다.

모든 도메인에 유효한 업스트림으로만 프로브를 보내는 이유는 단순히 프로브가 이름에 대한 쿼리이기 때문입니다 test. dnsmasq는 임의의 이름을 처리하도록 명시적으로 구성되지 않은 업스트림으로 이러한 쿼리를 보내지 않습니다.

관련 정보