Resolv.confからユーザーが提供した検索ドメインはA/AAAAクエリにのみ使用されますか?
それらは他の目的に使用されていますか?
まず、実際のsearch機能を実装するのはOSリゾルバーライブラリです。つまり、使用は実際に使用されているOS(または他の)ライブラリによって異なり、ネームサーバーソフトウェアはそれについて知る必要はありません。それはまったく。
つまり、アプリケーションが名前を検索し、標準のgetaddrinfo
、gethostbyname
(非推奨)などの関数を呼び出すと、リゾルバーライブラリは、必要に応じて、指定された名前のさまざまなバリエーションを個別に検索します。
現在、getaddrinfo
とgethostbyname
(これらが実際にDNSを使用することになった場合、リゾルバーライブラリは他のソースを使用するように構成されている可能性があります)は、具体的にアドレスレコードを検索します(A
/AAAA
)なので、質問は、他のリゾルバーライブラリコードもsearchを使用するのか、それともその使用がこれらのかなり狭い目的の関数に限定されるのかということになります。
変数がたくさんあるので(つまり、特定のアプリケーションが実際に使用しているDNSルックアップ機能は何ですか?)、質問に対する簡単な答えは「状況によって異なります」です。
Oldschool libc resolvライブラリで提供されている他の関数をざっと見てみると、res_query
/res_nquery
関数を使用するアプリケーションは検索されませんが、res_search
/res_nsearch
を使用するアプリケーションは検索されます。
man resolv.conf
を参照してください。ローカルのdomain
(および場合によってはsearch
で指定された他のドメイン)は、FQDNでないたびに、クエリのホスト名に追加されます。
それを知っていると、他のRRタイプで機能するかどうかを簡単にテストできます。 DKIMセレクターなどのTXT
のような既存のレコードを使用してテストできます。someserver.example.com
のSSHフィンガープリント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