web-dev-qa-db-ja.com

dnsmasq転送がすでに解決されたアドレスであるのはなぜですか?

ホストにpingを実行できます。

Dig registry.mynet

そして、DNSサーバーは期待されることを実行します。

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

しかし、もっと複雑なリクエストを試してみると、時間がかかります。

» 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

そして、これはサービスとは何の関係もありません(これは非常に応答性が高いです)。これは、DNSサーバーが奇妙なことをするためです。

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

2つの質問があります:

  • dNSサーバーは正しい答えを見つけます(/etc/hosts registry.mynet is 42.42.42.42):なぜ処理が継続されるのですか?
  • 「転送された」エントリはどういう意味ですか?
2
DanMetro

まず第一に:

Dig registry.mynet

IPv4クエリのみを実行します([A]クエリ)。あなたのdnsmasqは、これらのクエリに問題なく応答しています。次の方法で、DigAAAAクエリを強制的に実行できます。

Dig registry.mynet AAAA

ログから、httpがIPv4およびIPv6クエリを送信していることがわかります([AAAA]クエリ)。 dnsmasqは前者に応答していますが、ホストにIPv6アドレスを構成していないため、後者は応答していません。

dnsmasqがネットワーク内のホストのリクエストを転送していないことを確認することで、これを回避できます。

local=/mynet/
1
dangonfast