Не отвечает djbdns на dnsq

Помогите, пожалуйста, идеей, что не так...

serf env # netstat -lna | grep 53
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:53              0.0.0.0:*

serf env # nslookup olegon.ru
Server:    127.0.0.1
Address 1: 127.0.0.1 serf

Name:      olegon.ru
Address 1: 78.110.50.106 c4-w.ht-systems.ru

serf env # dnsq a olegon.ru 127.0.0.1
1 olegon.ru:
timed out

Возможно ты обращаешься к

Возможно ты обращаешься к днс с ип, но ты не прописал этот айпи или подсеть в /etc/dnscache/root/ip/
Дай вывод
#ls /etc/dnscache/root/ip/
# svstat /service/dnscache
И скажи с какого айпи ты посылаешь запрос.

в gentoo в /etc давно ничего

в gentoo в /etc давно ничего нет, сейчас оно лежит в /var/dnscache/root/ip

olegon@serf ~ $ ls

olegon@serf ~ $ ls /var/dnscachex/root/ip/
127.0.0.1 172.16.10

c этого же сервера и запрашиваю... nslookup работает, dnsq - нет

И не будет работать.

Потому что эта команда предназначена для проверки tinydns. Тебе же надо использовать dnsqr type name.

Можно чуть поподробнее?

Можно чуть поподробнее? Провайдеровский DNS тоже откликается на эту команду, а мой - нет. В чем принципиальная разница?

нужно сказать кэшу что про

нужно сказать кэшу что про некий домен нужно спрашивать у некоего сервера

cat /var/dnscachex/root/servers/evadim.ru 
192.168.0.1

или спрашивать у tinydns

Что-то я не очень понял.

Что-то я не очень понял. nslookup знает про этот домен, получая его с DNS на моем же компе. dnsq не получает этот же домен (домен не локальный), но получает его же с провайдеровского DNS. Вот и вопрос, какая разница в resolve доменов между провом и мной? Я так понял, tinydns нужен толком для хранения локальных зон?

dnsq type FQDN server

    dnsq type FQDN server
        -> отладочный вывод
        Отсылает итеративный запрос указанному серверу;
        это предпочтительное средство для тестирования tinydns.
    dnsqr type FQDN
        -> отладочный вывод
        Эта команда отсылает рекурсивный запрос, подходит для
        тестирования dnscache. Если вам необходимо переназначить
        адреса DNS-кэшей, указанных в /etc/resolv.conf, вы должны
        установить переменную окружения DNSCACHEIP:
        DNSCACHEIP=x.y.z.t dnsqr type FQDN
    dnstrace type FQDN server
        -> отладочная трассировка полного поиска
        Указанный сервер должен быть _корневым_ сервером имен;
        dnstrace начнет поиск FQDN начиная с этого сервера,
        и покажет все возможные пути поиска ответа;
        обычно это позволяет найти хост — источник проблем.

Т.е. все очень просто: dnscache отвечает только на рекурсивные запросы (nslookup наверняка его так и спрашивает, точно не скажу так как предпочитаю dig), а вы пытаетесь задать ему итеративный запрос программой dnsq, которая на самом деле предназначена для опроса tinydns. У провайдера стоит bind который обрабатывает и рекурсивные и итеративные запросы в силу своей двоякой природы (dnscache + dnsserver), потому в отличие от dnscache и может ответить на запрос посланный при помощи dnsq. Для тестирования dnscache следует применять dnsqr.

Зы: замечательное руководство которое следует прочесть (оттуда взят вышеприведенный кусок):
http://lithium.opennet.ru/articles/lwd/lifewithdjbdns-ru.html
А также:
http://lithium.opennet.ru/dnscache.html
http://lithium.opennet.ru/tinydns.html
http://lithium.opennet.ru/articles/djbdns-faq/index.html

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".