[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как работает локальный DNS кеш?



On Mon, Nov 23, 2015 at 08:13:12PM +0200, Oleksandr Gavenko wrote:
> В общем прояснилось, еще почитал:
> 
>   GETADDRINFO(3)
>   `info libc "Name Service Switch"'
>   http://www.tldp.org/LDP/nag2/x-087-2-resolv.library.html
> 
> Итого getaddrinfo(3), gethostbyname(3) встроены в GLib.

 Не в Glib, а в glibc. Под "glib" обычно понимают прикладную библиотеку
 Гнома, а glibc есть базовая библиотека всего линуксового рантайма,
 включающая интерфейсы к вызовам ядра.

> которые считывает GLib. Как я понял GLib также умеет общаться с DNS серверами
> (так как это делает dig, есть ощущение что nslookup использует
> getaddrinfo(3)).

 В "ltrace nslookup localhost |& fgrep addr" ничего не ловится,
 значит, getaddrinfo(3) там не используется. Было бы странно для
 писателей bind9 использовать такие вызовы, ибо их модули
 извлекают из пакетов гораздо больше информации, которую через
 API для getaddrinfo получить никак невозможно. С другой стороны,
 от gethostbyname/getaddrinfo невозможно оторвать просмотр hosts
 и прочей описанной в nsswitch.conf хни, а dig/nslookup делают
 исключительно обращения к dns, и ничего более. Поэтому nslookup
 просто не может работать через getaddrinfo(3).

> У меня только сомнения по поводу наличия кода в GLibc работающего с DNS
> серверами на подобии как это делает dig.

 В чём подобие-то? В glibc есть лишь резолвер, а dig имеет гораздо более
 широкий функционал.
-- 
 Eugene Berdnikov


Reply to: