Host.confとresolv.confの関係は何ですか?

Host.confとresolv.confの関係は何ですか?

私はUbuntuを使用しています。マンページで次の情報を見ることができます。

  • のための/etc/host.conf( man host.conf)

    host.conf - パーサー構成ファイル

    /etc/host.conf ファイルには、パーサーライブラリに関連する設定情報が含まれています。

  • のための/etc/resolv.conf( man resolv.conf)

    resolv.conf - ソルバー構成ファイル

    リゾルバは、インターネット上のドメインネームシステム(DNS)へのアクセスを提供するCライブラリの一連のルーチンです。

パーサーは2つのファイルをどの順序で使用し、違いは何ですか?

ベストアンサー1

最新のLinuxシステムではパーサーライブラリglibcこれらのマニュアルページで参照されている内容はライブラリに組み込まれています。/etc/host.conf基本ライブラリの統合セクションをお読みください。glibcマニュアルページには、現在の実装が、trimおよびmultiキーワードreorderのみ認識することを示します。HistoricalこのセクションNOTESの段落では、より多くのキーワードがあることを示唆しています。

実際の照会は、さまざまなプラグイン・ライブラリーによって実行され、/etc/nsswitch.confファイルによって決定されます。各検索方法(例えばfiles、または)は、ライブラリファイル(例えば、または)に1対1対応しnisます。dnscompatlibnss_files.so.2libnss_nis.so.2libnss_dns.so.2libnss_compat.so.2

プラグインはlibnss_files.so.2ネイティブlibnss_dns.so.2ライブラリパッケージに付属していますが、別のlibnss_compat.so.2パッケージやパッケージなど、さまざまなソースの他のプラグインもあり、システムをLDAPまたはActiveと統合する場合に機能するように設計されています。ディレクトリ、これらの統合ソリューションは、独自のライブラリも提供しています。libnss_hesiod.so.2glibclibnss_nis.so.2libnss-nislibnss_mdns*.so.2libnss-mdnslibnss_resolve.so.2systemd-resolvedlibnss_*

含まれている場合は、hosts:thenの行が使用されて読み込まれます。nsswitch.confdnslibnss_dns.so/etc/resolv.conf

ただし、dnsに置き換えると代わりにresolvelibnss_resolve.so.2使用されます。これはクラシックを無視し、代わりにファイル、組み込みファイル、またはコマンドラインツールで構成された/etc/resolv.confデーモンと通信します。systemd-resolved/etc/systemd/resolved.conf/etc/systemd/resolved.conf.d/*.conf[/usr]/lib/systemd/resolved.conf.d/*.conf/run/systemd/resolved.conf.d/*.confresolvectl

リゾルバライブラリ(たとえば、特定のバージョンのコマンド)を/etc/resolv.conf使用するのではなく、直接読み取るプログラムをオーバーライドするために、DNS要求のリスナーは127.0.0.53(この機能がオフになっていない限り)に保持され、仮想ポインタはそれに提供されます。glibcnslookupsystemd-resolved/etc/resolv.conf


つまり、相談なしに使用するかどうかを/etc/nsswitch.conf確認できます/etc/host.conf。その後、何が起こるかは/etc/nsswitch.conf言った内容によって異なります。

ほとんどのプログラムはライブラリのホスト名解決機能を使用するため、glibc次のように使用します。/etc/resolv.conf 〜しない限りhosts:改行に/etc/nsswitch.confキーワードが含まれていますdns

hosts:行に/etc/nsswitch.confキーワードが含まれているresolve場合/etc/resolv.conf遺産と考えるべき そして、このresolvectlコマンドを使用して実際のDNSサーバー構成を確認します。この場合、/etc/resolv.conf独自のDNS解決機能を使用するプログラムがローカルサービスを使用するように指示し、その要求をsystemd-resolved実際のDNSサーバーに転送するか、要求が関連している場合はMDNSまたはLLMNRに基づいて応答を提供するためにのみ存在します。ローカルサービス)およびMDNS / LLMNR情報を使用できます。

おすすめ記事