用户是否仅为resolv.conf提供的search域仅用于A / AAAA查询?
他们是用于其他目的吗?
请参阅man resolv.conf 。 每次不是FQDN时,本domain (以及可能在search指定的其他域)都会附加到查询中的主机名。
知道这一点,你可以很容易地testing它是否适用于其他RRtypes。 您可以使用任何现有的logging(如TXT for DKIMselect器等)来testing。假设我们有一些SSHFP SSH指纹 SSHFPlogging:
nslookup > set domain=example.com > set type=SSHFP > someserver
在这个例子中,我们实际上会得到someserver.example.com SSHFP (而不是将某个someserver.example.com SSHFP作为FQDN处理)的答案,说明它如何在任何RRtypes上工作 。
请注意,只能使用resolv.conf作为其初始configuration文件的nslookuptesting。 备用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。