DNSクライアントライブラリが実行します。

DNSクライアントライブラリが実行します。

私のCentos 7サーバーはドメイン名を正しく解決できませんでした。私が知っている限り、最新のLinuxシステムでは、通常 /etc/resolv.conf、または。dhclientdnsmasqNetwork Manager

だから、現代​​のLinuxのネットワークスタックに関する一般的な理論的な質問があります。

読書は誰が担当しますか/etc/resolv.conf?名前解決に参加する行為者(サービスまたはカーネルサブシステム)は何ですか?

短い答え: Arch Linux マニュアルドメイン名解決の高度な構成に関するものです。に完了しました /etc/nsswitch.confネームサービス移行glibcAPIを使用します。

glibcnss-resolveDNS要求をDNSサーバーに送信する機能を使用してください。

通常、最新のCentOSシステムでnss-resolve にかかっている systemd-resolved提供する。/etc/resolv.conf同様のエントリによって生成されたdhclient-script場合は、それをsystemd-resolved読み取り、互換モードで作業して、BINDDNSクライアントなどの古いシステムの動作をシミュレートします。

ベストアンサー1

DNSクライアントライブラリが実行します。

Cライブラリには、DNSプロトコルの名前とアドレスのルックアップをカプセル化し、それをプロキシDNSサーバーに渡してクエリ検証のすべての重い操作を実行するDNSクライアントが含まれています。そのようなDNSクライアントがたくさんあります。オペレーティングシステムのデフォルトCランタイムライブラリにあるライブラリは、ISCのBINDライブラリである可能性が高いです。しかし、Daniel J. Bernsteinのライブラリからc-ares、adnsまでdnsはるかに多くのものがあります。

その中には独自の基本的な構成メカニズムが含まれていますが、通常はresolv.confISCのBIND Cクライアントライブラリの設定ファイルであるBINDライブラリ互換モードを読みます。

NSSはその上にありますnsswitch.conf。 NSSルックアップが内部的に呼び出すことができるものの1つはDNSクライアントであり、ルックアップをnsswitch.confDNSクライアントに渡すかどうか、および場所とさまざまな応答を処理する方法を決定するためにCライブラリのNSSコードに読み込まれます。

(このアイデアは、ネームサービスのキャッシュデーモンnscdのために少し複雑です。しかし、これはCライブラリに特別なプロトコルをローカルサーバーに渡す追加の高レベルクライアントを追加するだけです。これはDNSクライアントとプロキシとして機能します。)を使用するDNSサーバーは、 systemd-resolved同様の複雑さを追加します。

systemd-resolved、、、、および他の人は、BIND DNSクライアント構成ファイルを調整して、DNSクライアントがすぐに他のプロキシDNSサーバーと通信するように切り替えましたNetworkManager。これはこの回答の範囲外です。特に、このメカニズムに関する複雑な詳細をすでにカバーしているWWWサイトには多くの回答があるためです。connmandhcpcdresolvconf

Unixの世界でより伝統的な作業方法は、コンピュータ自体またはLAN上でプロキシDNSサーバーを実行することです。したがって、FreeBSD のマニュアルでは、一般的に設定されたシステムを次のように説明します。 DNS クライアント ライブラリがない場合、DNS クライアント ライブラリの基本的な操作は、resolv.confUnix システム管理者が通常行う操作、つまり 127.0.0.1 プロキシ DNS を受信する操作と一致します。仕える人。 (FreeBSDマニュアルはresolv.conf実際にはdocoです。返品BINDはISCで開始され、BIND DNSクライアントライブラリが他の場所(GNU Cライブラリなど)にマージされている場所にあります。 )

追加読書

おすすめ記事