これは仲間ですAsk Ubuntuこの質問をするのに十分なことを知る前に、この質問を投稿しました。
(Ubuntu 18.04基準です。)
デバッグ出力を観察することで、systemd-resolved
次のようなクエリを実行できます。
host foo.mycompany.com
そして何が起こっているのかを確認してください。systemd-resolved
UDPを介したクエリは、私のローカルDNSサーバー(私のルーターにある)に延期されるということです。返された応答は、キャッシュエントリが生成されるように誘導しsystemd
ますNODATA
。
しかし、私がこうすれば:
host -a foo.mycompany.com
問合せがANY
要求されると、デバッグ出力にはUDP応答パケットが切り捨てられ、TCP問合せに置き換えられることが明確に示されます。返されると、systemd
明らかに有効な住所が表示されます。ポジティブキャッシュエントリ。
host -a
リンクされた問題を確認できますが、結論は、ドメイン名を検索すると、一部のドメイン名だけが(しばらくの間)機能することです。
この動作の原因が何であるかわかりません。私はそれがそれ自体とは何の関係もないと思いますsystemd-resolved
。なぜなら、それをバイパスして自分のコンピュータからルータDNSに直接移動すると、結果は同じです(もちろんデバッグトレースを見ることはできませんが)。私はいません。考える私のルーターは問題の一部でした。同僚も同じ効果を見ることができたからです(彼は私の家にいませんでした)。
ベストアンサー1
私の考えでは、いくつかの中間キャッシュサーバー(たとえば、私のホームルーターにあるサーバー)がRFC1918(「プライベート」)アドレスを返そうとしないことが何であるかを判断したようです。したがって、ほとんどのソフトウェア(ブラウザなど)で実行される短いクエリはこれらのキャッシュを利用しますが、サーバーは「見つかりません」と同じ結果を返します。したがって、ローカルサーバーはそれが正しいことだと思うので、エントリをsystemd
キャッシュします。NODATA
中間サーバーはクエリをキャッシュしないため、ANY
ローカルサーバーは特権サーバーから応答を受け取ります。
またはそのようなもの。実際、これらのことがどのように機能するかを知っている人がこれをよりよく説明できる場合に備えて、この質問に対する回答を保留しています。