resolv.conf 内のネームサーバーエントリの数

resolv.conf 内のネームサーバーエントリの数

ネームサーバー エントリはいくつまで指定できますか/etc/resolv.conf? ISP のネームサーバー エントリを 1 番目と 2 番目として指定しました。ただし、問題が発生することがあるため、Google パブリック ネームサーバー エントリを追加したいと思います。3 番目と 4 番目のエントリで何か違いはありますか?

これはresolv.conf私たちのプロキシ (squid) サーバー上にあります。Squid は/etc/resolv.conf名前解決に使用されることを理解しています。

答え1

実際には、/etc/resolv.conf で許可されるサーバー エントリは 3 つだけです。

見る:参考文献

答え2

デュアルスタック システムでの 3 つのネームサーバー制限を克服するための私の当初の解決策は、dnsmasq をインストールすることでしたが、回避策によりインストールとメンテナンスのコストが大幅に増加します (私は多くの lxc コンテナーを操作しています)。そのため、よりシンプルな解決策が必要でしたが、ありがたいことに、そのような解決策が存在します。

systemd-resolved を使用すると、3 つのネームサーバーの制限を克服できることを発見しました。最近のディストリビューションのほとんどは、デフォルトですべてセットアップされており、すぐに使用できます。ネームサーバーの IP を指定するファイル /etc/systemd/resolved.conf があります。conf ファイルを編集してネームサーバーを追加し、systemctl restart systemd-resolved を実行します。完了です。

誰かが、resolv.h の MAXNS はもう存在しないとコメントしているのに気付きました。github で確認したソース バージョンにも MAXNS はありませんでしたが、少し前に 3 つのネーム サーバー制限に遭遇したことを覚えているので、まだ適用されているようです。

編集: デフォルトの/etc/systemd/resolved.confには、3つ以上のDNSサーバーを指定できることを示唆するエントリがコメントアウトされていますが、/run/systemd/resolve/resolv.confを見ると、このコメントがあります。

「設定されている DNS サーバーが多すぎるため、次のエントリは無視される可能性があります。」

最初の 3 つの後に追加の DNS IP のリストが続きます。

つまり、DNS サーバーは 3 台しか残っていないようですが、その理由を理解するのはかなり困難です。制限に正当な理由がある場合は、少なくともデフォルトの resolv.conf ファイルに制限を明記し、ファイル内の推奨 DNS エントリは 3 を超えないようにする必要があります。最終的なケースとしては、DNS エントリが無効な場合にリゾルバを再起動するとエラーが発生するはずです。

答え3

実質的に、必要な数のネームサーバーを持つことができます。ただし、2 番目に進む前に最初のネームサーバーで解決が失敗し、それ以降も失敗することに注意してください。名前解決の試行が 3 番目と 4 番目のネームサーバーに到達するまでには、しばらく時間がかかります。

編集: この回答のコメントで説明されているように、私は間違っていました。デフォルトではネームサーバーは 3 つに制限されており、これはコンパイル時のオプションであるようです (したがって、実行時に変更するのは簡単ではありません)。

関連情報