web-dev-qa-db-ja.com

resolv.confの検索ドメインはA / AAAAクエリにのみ使用されますか?

Resolv.confからユーザーが提供した検索ドメインはA/AAAAクエリにのみ使用されますか?

それらは他の目的に使用されていますか?

1
Manohar

まず、実際のsearch機能を実装するのはOSリゾルバーライブラリです。つまり、使用は実際に使用されているOS(または他の)ライブラリによって異なり、ネームサーバーソフトウェアはそれについて知る必要はありません。それはまったく。

つまり、アプリケーションが名前を検索し、標準のgetaddrinfogethostbyname(非推奨)などの関数を呼び出すと、リゾルバーライブラリは、必要に応じて、指定された名前のさまざまなバリエーションを個別に検索します。

現在、getaddrinfogethostbyname(これらが実際にDNSを使用することになった場合、リゾルバーライブラリは他のソースを使用するように構成されている可能性があります)は、具体的にアドレスレコードを検索します(A/AAAA)なので、質問は、他のリゾルバーライブラリコードもsearchを使用するのか、それともその使用がこれらのかなり狭い目的の関数に限定されるのかということになります。

変数がたくさんあるので(つまり、特定のアプリケーションが実際に使用しているDNSルックアップ機能は何ですか?)、質問に対する簡単な答えは「状況によって異なります」です。

Oldschool libc resolvライブラリで提供されている他の関数をざっと見てみると、res_query/res_nquery関数を使用するアプリケーションは検索されませんが、res_search/res_nsearchを使用するアプリケーションは検索されます。

1

man resolv.conf を参照してください。ローカルのdomain(および場合によってはsearchで指定された他のドメイン)は、FQDNでないたびに、クエリのホスト名に追加されます。

それを知っていると、他のRRタイプで機能するかどうかを簡単にテストできます。 DKIMセレクターなどのTXTのような既存のレコードを使用してテストできます。someserver.example.comSSHフィンガープリントSSHFPレコードがあると仮定します。

nslookup
> set domain=example.com
> set type=SSHFP
> someserver

この例では、実際にはsomeserver.example.com SSHFPの回答を取得し(someserverをFQDNとして処理する代わりに)、任意のRRタイプで機能するを示します。

これは、初期構成ファイルとしてresolv.confを使用するnslookupでのみテストできることに注意してください。代替のDigは、常にすべてのクエリをFQDNとして扱います。

Dig someserver SSHFP

;; QUESTION SECTION:
;someserver.        IN  SSHFP
1
Esa Jokinen