Согласно многим руководствам, которые я нашел, поисковый домен в /etc/resolv.conf должен использоваться только для запросов без точек . Однако man resolv.conf говорит об этом с опцией ndots :
устанавливает пороговое значение для числа точек, которые должны появляться в имени, заданном res_query(3) (см. resolver (3)), до того, как будет сделан первоначальный абсолютный запрос. Значение по умолчанию для n равно 1, что означает, что если в имени есть какие-либо точки, имя будет сначала опробовано как абсолютное имя, прежде чем к нему будут добавлены какие-либо элементы списка поиска. Значение для этой опции молча ограничено до 15.
Это противоречит утверждениям о том, что поисковые домены используются только для запросов без точек, а также кажется правдой. Я впервые заметил это случайно, используя tcpdump. При разрешении, например, на самом делеonenonexistentdomain.com, а мой resolv.conf содержит «search test.com», в результате получаются два запроса: действительноnonexistentdomain.com и действительноnonexistentdomain.com.test.com. Оба запроса получают ответ NXDOMAIN, и кажется, что разрешение работает должным образом, но есть ли способ предотвратить последний запрос? Это очевидно фальшивка и (не на 100% уверенная в этом) потенциальная угроза безопасности.
Какие практические причины существуют в любом случае для добавления поискового домена к полному доменному имени (или, точнее, к имени с числом точек не менее)? Я не могу думать ни о чем. Разве не было бы лучше, если бы распознаватель просто не пытался использовать домен поиска вообще, когда на исходный запрос был получен ответ NXDOMAIN, при условии, что в нем было по крайней мере ndots точек?
Я использую Debian Wheezy. Может ли поведение быть другим в других дистрибутивах или других UNIX-подобных системах?