用户是否仅为resolv.conf提供的search域仅用于A / AAAA查询?
他们是用于其他目的吗?
请参阅man resolv.conf
。 每次不是FQDN时,本domain
(以及可能在search
指定的其他域)都会附加到查询中的主机名。
知道这一点,你可以很容易地testing它是否适用于其他RRtypes。 您可以使用任何现有的logging(如TXT
for DKIMselect器等)来testing。假设我们有一些SSHFP
SSH指纹 SSHFP
logging:
nslookup > set domain=example.com > set type=SSHFP > someserver
在这个例子中,我们实际上会得到someserver.example.com SSHFP
(而不是将某个someserver.example.com SSHFP
作为FQDN处理)的答案,说明它如何在任何RRtypes上工作 。
请注意,只能使用resolv.conf
作为其初始configuration文件的nslookup
testing。 备用dig
总是将所有查询视为FQDN,即
dig someserver SSHFP ;; QUESTION SECTION: ;someserver. IN SSHFP
首先,它是OSparsing器库,它实现了实际的searchfunction,这意味着它的使用取决于哪个OS(或其他)库实际上正在使用,并且名称服务器软件根本不需要知道它。
也就是说,当应用程序查找名称,调用标准getaddrinfo
, gethostbyname
(不build议使用)等function时,parsing器库将根据需要对指定名称的不同变体进行单独查找。
现在, getaddrinfo
和gethostbyname
(当这些实际上最终使用DNS,parsing器库可能被configuration为使用其他来源)专门查找地址logging( A
/ AAAA
),所以问题归结为其他parsing器库代码也使用search或者如果它的使用仅限于这些相当狭窄的目的function。
由于有很多variables(例如,某个应用程序实际使用了哪些DNS查找function?),问题的简短答案是“取决于”。
快速查看oldschool libc resolv库中提供的其他函数,使用res_query
/ res_nquery
函数的应用程序将不search,而使用res_search
/ res_nsearch
的应用程序将search。