On 2015-11-22, Artem Chuprina wrote: > resolvconf у меня живет весьма неплохо, но я не пользуюсь connman/nm. > Пользуюсь wicd, и про него знаю, что он сам эту информацию не трогает, > ею занимается dhclient (или кто там у тебя работает с DHCP) в связке с > resolvconf. > > И кэшем работает dnsmasq. На домашнем сервере - bind9, и ему приходится > вручную добавлять скрипт, звездочка в документации неспроста. А с > dnsmasq работает из коробки.
В общем прояснилось, еще почитал: GETADDRINFO(3) `info libc "Name Service Switch"' http://www.tldp.org/LDP/nag2/x-087-2-resolv.library.html Итого getaddrinfo(3), gethostbyname(3) встроены в GLib. Есть ряд файлов настроек: /etc/host.conf /etc/hosts /etc/resolv.conf /etc/nsswitch.conf которые считывает GLib. Как я понял GLib также умеет общаться с DNS серверами (так как это делает dig, есть ощущение что nslookup использует getaddrinfo(3)). Кеширование DNS запросов может быть сделано либо в GLib, либо в приложении, либо прописыванием localhost в /etc/resolv.conf и поднятием локального DNS сервера кеша. dhclient по успешному выполнению вызывает тригеры, пример доступной информации в дригере в файле: /etc/dhcp/dhclient-enter-hooks.d/debug for prefix in '' 'cur_' 'new_' 'old_'; do for basevar in reason interface medium alias_ip_address \ ... domain_name domain_search domain_name_servers \ ... dhcp6_domain_search dhcp6_name_servers ; do var="${prefix}${basevar}" eval "content=\$$var" echo "$var='${content}'" >> /tmp/dhclient-script.debug resolvconf поставляет свой хук /etc/dhcp/dhclient-enter-hooks.d/resolvconf и затем сообщает кеширующему DNS серверу о новых настройках. У меня только сомнения по поводу наличия кода в GLibc работающего с DNS серверами на подобии как это делает dig. -- Best regards!

