Warum ist dnsmasq Weiterleitung bereits aufgelöster Adressen?

473
DanMetro

Ich kann den Host anpingen:

dig registry.mynet 

Und der DNS-Server macht, was erwartet wird:

dnsmasq[1]: 895 127.0.0.1/44580 query[A] registry.mynet from 127.0.0.1 dnsmasq[1]: 895 127.0.0.1/44580 /etc/hosts registry.mynet is 42.42.42.42 

Wenn ich jedoch eine komplexere Anfrage versuche, dauert es lange:

» time http -h http://registry.mynet/v2/_catalog?n=100 HTTP/1.1 200 OK Connection: keep-alive Content-Length: 97 Content-Type: application/json; charset=utf-8 Date: Fri, 23 Mar 2018 10:42:13 GMT Docker-Distribution-Api-Version: registry/2.0 Server: nginx/1.13.9 X-Content-Type-Options: nosniff  real 0m15.297s user 0m0.252s sys 0m0.028s 

Und das hat nichts mit dem Service zu tun (der sehr reaktionsschnell ist). Dies liegt daran, dass der DNS-Server etwas seltsames tut:

dnsmasq[1]: 887 127.0.0.1/53345 query[A] registry.mynet from 127.0.0.1 dnsmasq[1]: 887 127.0.0.1/53345 /etc/hosts registry.mynet is 42.42.42.42 dnsmasq[1]: 888 127.0.0.1/53345 query[AAAA] registry.mynet from 127.0.0.1 dnsmasq[1]: 888 127.0.0.1/53345 forwarded registry.mynet to 208.67.220.220 dnsmasq[1]: 888 127.0.0.1/53345 forwarded registry.mynet to 8.8.4.4 dnsmasq[1]: 888 127.0.0.1/53345 forwarded registry.mynet to 8.8.8.8 dnsmasq[1]: 888 127.0.0.1/53345 forwarded registry.mynet to 8.8.8.8  dnsmasq[1]: 889 127.0.0.1/53345 query[A] registry.mynet from 127.0.0.1 dnsmasq[1]: 889 127.0.0.1/53345 /etc/hosts registry.mynet is 42.42.42.42 dnsmasq[1]: 890 127.0.0.1/53345 query[AAAA] registry.mynet from 127.0.0.1 dnsmasq[1]: 890 127.0.0.1/53345 forwarded registry.mynet to 208.67.220.220 dnsmasq[1]: 890 127.0.0.1/53345 forwarded registry.mynet to 8.8.4.4 dnsmasq[1]: 890 127.0.0.1/53345 forwarded registry.mynet to 8.8.8.8 dnsmasq[1]: 890 127.0.0.1/53345 forwarded registry.mynet to 8.8.8.8  dnsmasq[1]: 891 127.0.0.1/41484 query[A] registry.mynet from 127.0.0.1 dnsmasq[1]: 891 127.0.0.1/41484 /etc/hosts registry.mynet is 42.42.42.42 dnsmasq[1]: 892 127.0.0.1/58752 query[AAAA] registry.mynet from 127.0.0.1 dnsmasq[1]: 892 127.0.0.1/58752 forwarded registry.mynet to 208.67.220.220 dnsmasq[1]: 892 127.0.0.1/58752 forwarded registry.mynet to 8.8.4.4 dnsmasq[1]: 892 127.0.0.1/58752 forwarded registry.mynet to 8.8.8.8 dnsmasq[1]: 892 127.0.0.1/58752 forwarded registry.mynet to 8.8.8.8 

Ich habe zwei Fragen:

  • Der DNS-Server findet die richtige Antwort ( /etc/hosts registry.mynet is 42.42.42.42): Warum wird die Verarbeitung fortgesetzt?
  • Was bedeuten die "weitergeleiteten" Einträge?
2

1 Antwort auf die Frage

1
dangonfast

Zuerst:

dig registry.mynet 

Führt nur IPv4-Abfragen ( [A]Abfragen) aus. Ihre dnsmasqAntworten auf diese Fragen sind gut. Sie können Abfragen erzwingen dig, AAAAindem Sie Folgendes tun:

dig registry.mynet AAAA 

In den Protokollen können Sie sehen, dass httpIPv4- und IPv6-Abfragen ( [AAAA]Abfragen) gesendet werden. Sie dnsmasqantworten auf das erstere, aber nicht auf das letztere, möglicherweise weil Sie keine IPv6-Adressen für Ihre Hosts konfiguriert haben.

Sie können dies vermeiden, indem Sie sicherstellen, dass dnsmasqAnforderungen für Hosts in Ihrem Netzwerk nicht weitergeleitet werden:

local=/mynet/