私の問題は本質的にsystemd-resolvedがローカルDNSサーバーを使用しないのはなぜですか?しかし、他の答えを探しています。この基本的な質問は何度も質問を受けましたが、これまで私が見つけた答えは常に「これはsystemdがそのタスクの実行を停止し、手動で実行することを許可して期待どおりに機能させる方法です」です。
systemdが実際にローカル(プライマリ)DNSを使用していて、プライマリDNSが失敗した場合は、セカンダリ、3次などのDNSにのみ移動できるかどうか疑問に思います。
すべてのDNSが同じであると仮定するように動作するので、dhcpによって提供される最初のDNSを使用する代わりに、お気に入りの別のDNSを選択してそのDNSに固執します。
これにより、プライベート LAN 名にローカル DNS を使用する組織の一般的な構成が中断されます。 systemdの検証者がこれらの一般的な構成を処理できないことは非常に奇妙です。あまりにも奇妙なので、これが本当だと信じていません。
ただ無効にする代わりに、dhcp応答に提供された最初のDNSを使用する必要があることを理解させる方法はありますか?
答え1
いいえ。デフォルトでは、ローカルDNSを使用する可能性が高くなります。 Systemd は設定された DNS 順序で照会します。 DHCPを介してネットワーク上で設定した場合は、その設定を使用してください。ただし、Systemd はすべての DNS サーバーを同じと見なすため、失敗したサーバーと再試行回数を順番に覚えていない resolv.conf 動作とは異なり、問題が発生した場合はリストの次のサーバーに失敗し、上記から再試行しません。
ほとんどの場合、私が見たのは、人々が自分のローカルドメインのみを提供するためにサーバーを一番上に置いたことでした。あなたがリンクした質問の場合のようです。
あなたはできます:
resolvectl query -i ethX <domain>
このインターフェイスのDNSサーバーが正しく応答していることを確認してください。 -iはこのインターフェイスで設定されたDNSサーバーを使用します。これは状態で表示できます。
特定の問題が発生した場合は、特定のresolvctl設定を含む出力が役立ちます。私がこの記事を書いているラップトップは修正なしで確認を使用しており、私のルーターのDNSサーバーで確認しています。