私のCentos 7サーバーはドメイン名を正しく解決できませんでした。私が知っている限り、最新のLinuxシステムでは、通常 /etc/resolv.conf
、または。dhclient
dnsmasq
Network Manager
だから、現代のLinuxのネットワークスタックに関する一般的な理論的な質問があります。
読書は誰が担当しますか/etc/resolv.conf
?名前解決に参加する行為者(サービスまたはカーネルサブシステム)は何ですか?
短い答え: Arch Linux マニュアルドメイン名解決の高度な構成に関するものです。に完了しました /etc/nsswitch.conf
ネームサービス移行glibc
APIを使用します。
glibc
nss-resolve
DNS要求をDNSサーバーに送信する機能を使用してください。
通常、最新のCentOSシステムでnss-resolve
にかかっている systemd-resolved
提供する。/etc/resolv.conf
同様のエントリによって生成されたdhclient-script
場合は、それをsystemd-resolved
読み取り、互換モードで作業して、BIND
DNSクライアントなどの古いシステムの動作をシミュレートします。
ベストアンサー1
DNSクライアントライブラリが実行します。
Cライブラリには、DNSプロトコルの名前とアドレスのルックアップをカプセル化し、それをプロキシDNSサーバーに渡してクエリ検証のすべての重い操作を実行するDNSクライアントが含まれています。そのようなDNSクライアントがたくさんあります。オペレーティングシステムのデフォルトCランタイムライブラリにあるライブラリは、ISCのBINDライブラリである可能性が高いです。しかし、Daniel J. Bernsteinのライブラリからc-ares、adnsまでdns
はるかに多くのものがあります。
その中には独自の基本的な構成メカニズムが含まれていますが、通常はresolv.conf
ISCのBIND Cクライアントライブラリの設定ファイルであるBINDライブラリ互換モードを読みます。
NSSはその上にありますnsswitch.conf
。 NSSルックアップが内部的に呼び出すことができるものの1つはDNSクライアントであり、ルックアップをnsswitch.conf
DNSクライアントに渡すかどうか、および場所とさまざまな応答を処理する方法を決定するためにCライブラリのNSSコードに読み込まれます。
(このアイデアは、ネームサービスのキャッシュデーモンnscdのために少し複雑です。しかし、これはCライブラリに特別なプロトコルをローカルサーバーに渡す追加の高レベルクライアントを追加するだけです。これはDNSクライアントとプロキシとして機能します。)を使用するDNSサーバーは、 systemd-resolved
同様の複雑さを追加します。
systemd-resolved
、、、、および他の人は、BIND DNSクライアント構成ファイルを調整して、DNSクライアントがすぐに他のプロキシDNSサーバーと通信するように切り替えましたNetworkManager
。これはこの回答の範囲外です。特に、このメカニズムに関する複雑な詳細をすでにカバーしているWWWサイトには多くの回答があるためです。connman
dhcpcd
resolvconf
Unixの世界でより伝統的な作業方法は、コンピュータ自体またはLAN上でプロキシDNSサーバーを実行することです。したがって、FreeBSD のマニュアルでは、一般的に設定されたシステムを次のように説明します。 DNS クライアント ライブラリがない場合、DNS クライアント ライブラリの基本的な操作は、resolv.conf
Unix システム管理者が通常行う操作、つまり 127.0.0.1 プロキシ DNS を受信する操作と一致します。仕える人。 (FreeBSDマニュアルはresolv.conf
実際にはdocoです。返品BINDはISCで開始され、BIND DNSクライアントライブラリが他の場所(GNU Cライブラリなど)にマージされている場所にあります。 )
追加読書
- ダニエルJ.バーンスタイン。
dns
図書館。 cr.yp.to. - ジョナサンデボインポラード(2017)。DNS名の資格とは何ですか?。よく与えられる答えです。
- ジョナサンデボインポラード(2004)。DNSクエリ解決とは何ですか? 。よく与えられる答えです。
- ジョナサン・ドボイン・ポラード(2001)。「djbdns」の大きな写真。よく与えられる答えです。
- ジョナサン・ドボイン・ポラード(2000)。「コンテンツ」と「プロキシ」DNSサーバー。 よく与えられる答えです。