Полный FAQ по настройке PDNSD
Потратил ооочень много времени на изучение оного. Напомню, что все работает на Kubuntu с провайдером Вебстрим (используются их DNS-серверы). Итак, начнем.
pdnsd - это небольшой локальный кэширующий dns-сервер, который используется в основном на пк с медленным соединением.
Ставим пакет pdnsd:
sudo aptitude install pdnsd
При установке пакета выберете функцию кеширующего прокси - recurse, автонастройки будут прописаны в файле /etc/default/pdnsd строка: AUTO_MODE=recurse
Далее идем в /etc/default/pdnsd и закомментируем следующий блок, как показано ниже:
/*
server {
label="resolvconf";
}
*/
Если вы не закомментируете указанный блок, программа будет использовать вместо конфиг. файла /etc/pdnsd.conf файл конфигурации, расположенный в /usr/share/pdnsd/pdnsd-recurse.conf. Нам это нафиг не надо.
Теперь сразу за ним добавим этот блок:
server {
label= "myisp";
ip = 195.46.96.1 //ip-адрес первичного DNS сервера Вебстрима
, 195.46.116.1 //ip-адрес вторичного DNS сервера Вебстрима
, 195.206.40.177 //ip-адрес первичного DNS сервера ДСИ
, 208.67.220.220 //ip-адрес DNS сервера OpenDNS
, 208.67.222.222; //ip-адрес DNS сервера OpenDNS
proxy_only=off;
uptest=query;
interval=15m;
timeout=30;
caching=on;
lean_query=on;
//Дальше - интересней. Если у вас комп в домене и у домена динамически выдаются свои ip и dns, то нужно раскомментировать эти строки:
//policy=excluded;
//exclude=.my-domain.local; //Укажите ваш домен
}
Для того, чтобы pdnsd принимал и обрабатывал запросы от других компьютеров локальной сети нужно в секции global указать
server_ip = any;
- это позволяет pdnsd ожидать соединения на всех локальных интерфейсах. Либо можно указать конкретный интерфейс, например eth0.
Продолжаем…
perm_cache=81920; // Выключает дисковый кэш или задаёт максимальный размер кэша в килобайтах.
cache_dir="/var/cache/pdnsd"; // Задаёт каталог, в котором Вы хотите хранить кэш.
status_ctl = on;
paranoid=on;
query_method=tcp_udp;
min_ttl = 1d;
max_ttl = 2w;
timeout = 10; //Настройки которые стоят у меня. Подробнее можно почитать в мануале
Остальное - без изменений.
Тем, у кого ip-адрес статический, останется лишь отредактировать файл:
sudo kate /etc/resolv.conf
где в самом начале добавим строку:
nameserver 127.0.0.1
и перезапустить демон pdnsd командой:
sudo /etc/init.d/pdnsd restart
Для тех - у кого ip выдается динамически есть небольшая трудность. В этом случае данный файл (/etc/resolv.conf) будет каждый раз при перезапуске соединения сбрасывать все изменения.
Из этой ситуации я вышел довольно просто - добавил небольшой скрипт перезаписи resolv.conf на мое подключение в Wicd Manager (Скрипты -> поле Post-Connection Script). Пример скрипта:
#!/bin/sh
rm /etc/resolv.conf
echo nameserver 127.0.0.1 >> /etc/resolv.conf
echo nameserver 192.*.*.* >> /etc/resolv.conf // первый DNS-сервер, выдаваемый динамически в локалке
echo nameserver 192.*.*.* >> /etc/resolv.conf // второй DNS-сервер, выдаваемый динамически в локалке
echo `date +%d.%m.%y` `date +%X` Перезапись resolv.conf окончена >> /home/script/resolv_work.log
UPD. [Как это работает в данной ситуации: Допустим, мы пытаемся выйти через браузер на http://lapitoop.ru. Первым делом обращение пойдет к нашему локальному DNS-серверу (т.к. он первый в списке resolv.conf). Если в его базе есть эта запись - то он мгновенно возвращает ip. Если нет - говорит, что нужно сходить к следующему DNS-серверу, либо, если это возможно, сам разрешает в ip доменное имя и кэширует на будущее от прописанных в его настройках DNS-серверов.]
Теперь проверим работу нашего DNS`а:
dig google.ru
в конце отчета смотрим:
;; Query time: 99 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) <– Используется наш локальный DNS
;; WHEN: Wed Sep 30 10:49:37 2009
;; MSG SIZE rcvd: 221
Запускаем повторно dig google.ru
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Sep 30 10:50:21 2009
;; MSG SIZE rcvd: 221
Теперь сравним время выполнения запроса и делаем выводы.
P.S. Полезные фичи:
sudo ls -l /var/cache/pdnsd/pdnsd.cache
Для интереса можно время от времени проверять размер кэша (/var/cache/pdnsd/pdnsd.cache). С каждым днем использования он должен становиться все больше и больше.
sudo pdnsd-ctl status
Просмотр текущих загруженных настроек.
Также рекомендую следующие записи:
Понравилась статья? Подпишись на обновления по RSS, E-mail или добавляйте меня в Twitter.





Комментарии (3)