Клиентские библиотеки DNS делают.
Библиотеки C содержат клиентов DNS, которые оборачивают поиск по имени в протоколе DNS и передают их на прокси-серверы DNS, чтобы выполнить всю основную работу по разрешению запросов. Есть много таких DNS-клиентов. Вероятно, тот, что находится в основной библиотеке времени выполнения C вашей операционной системы, будет из библиотеки BIND ISC. Но есть целая масса других из dns
библиотеки Дэниела Дж. Бернштейна через c-ares to adns.
Хотя некоторые из них содержат собственные механизмы конфигурации, они обычно имеют режим совместимости библиотеки BIND, в котором они читают resolv.conf
, - это файл конфигурации клиентской библиотеки BIND C ISC.
NSS имеет многоуровневую структуру и настраивается с помощью nsswitch.conf
. Одна из вещей, которую NSS-запросы могут вызывать изнутри, - это DNS-клиент, nsswitch.conf
который читается кодом NSS в библиотеке C, чтобы определить, передаются ли и где запросы на DNS-клиент, и как обрабатывать различные ответы.
(Существует небольшая сложность этой идеи, вызванная Dmon-ом кэша служб имен, nscd. Но это просто добавляет дополнительного клиента верхнего уровня в библиотеку C, говорящего на локальном сервере с уникальным протоколом, который, в свою очередь, действует как DNS-клиент, говорящий по протоколу DNS с прокси-сервером DNS, systemd-resolved
добавляет аналогичные сложности.)
systemd-resolved
, NetworkManager
, connman
, dhcpcd
, resolvconf
, И другие регулировки конфигурации клиента файл BIND DNS для переключения DNS клиентов , чтобы поговорить с различными прокси - серверами DNS на лету. Это выходит за рамки этого ответа, тем более что на этом WWW-сайте есть множество ответов, уже посвященных византийским деталям, которые включает в себя такой механизм.
Более традиционный способ работы в мире Unix - запуск прокси-DNS-сервера либо на самой машине, либо в локальной сети. Отсюда то, что в руководстве FreeBSD говорится о нормально сконфигурированных системах, где действие по умолчанию клиентской библиотеки DNS при отсутствии resolv.conf
совпадает с тем, что обычно имеют системные администраторы Unix, то есть прокси-сервер DNS, прослушивающий 127.0.0.1. (Руководство FreeBSD для resolv.conf
фактически DOCO что также происходит от BIND ISC, и , конечно , могут также быть найдены где клиентская библиотека BIND DNS была включена в другие места , такие как библиотеки GNU C) .
дальнейшее чтение