среда, 9 января 2008 г.

DNS прокси

PDNSD – это маленький кэширующий сервер доменных имен идеальный для наших условий потому как:


1.

Не требователен к ресурсам
2.

Очень быстр
3.

Прост в настройке
4.

Надёжен
5.

Штатно хранит кэш на диске
6.

Постоянно развивается и дорабатывается


Домашняя страница проекта http://www.phys.uu.nl/~rombouts/pdnsd.html . Пакеты для своего дистрибутива вы можете найти на http://rpm.pbone.net .


И так, ставим пакет: urpmi -a pdnsd


Идём в / etc и редактируем файл pdnsd.conf


В секции global описываются глобальные параметры

global {

debug=on;

Включаем режим отладки (на время тестирования потом установить в off)

verbosity=2;

Детализация отладки (2 вполне достаточно)

perm_cache=8192;

Максимальное количество постоянно хранящихся в кэше

cache_dir="/ opt / pdnsd / var / cache / pdnsd";

Путь где будут находиться pdnsd.cache и pdnsd.debug (файлы должны существовать)

pid_file = / var / run / pdnsd.pid;

Путь к к pid файлу

run_as="pdnsd";

Включаем параноидальный режим (подробности man pdnsd.conf)

paranoid=on;

Разрешаем запрсы по tcp и udp

query_method=tcp_udp;

Минимальное время жизни записи в кэше в секундах (2 недели многовато но при условии GPRS самое оно)

min_ttl=1209600;

Максимальное время жизни записи (1 месяц, комментарий тот же)

max_ttl=2419200;

Таймаут операций (1на минута, опятьже исходя из GPRS)

timeout=60;

}


Локальные источники:

source {

Время жизни в кэше

ttl=1209600;

Родительский домен

owner="sadnet.lo";

Поддержка альясов

serve_aliases=on;

Файл источник в формате hosts (может быть указано несколько источников путём дублирования секции).

file="/etc/hosts";

}


Внешние источники

server {

Название источника (задать произвольно)

label="dns-1";

Список внешних адресов DNS серверов (желательно указать DNS вашего провайдера)

ip=

81.211.47.1,

193.124.83.69;

Таймаут ответа источников (1 минута для ГПРС самое оно)

timeout=60;

Не проверять источник (значительно экономит трафик, если у вас хороший канал установите uptest=ping)

uptest=none;

Разрешаем кэширование

caching=on;

Только проксируем (запрещает экспорт собственных зон)

proxy_only=on;

}


Описание прямой и обратной локальных зон (если нет собственного реального домена и не требуется поддержка экспорта данных во вне, достаточно указать прямые зоны для localhost и вашдомен.lo)


rr {

name=localhost;

reverse=on;

a=127.0.0.1;

owner=localhost;

soa=localhost,root.localhost,42,86400,900,86400,86400;

}


rr {

name = sadnet.lo;

a = 10.0.0.254;

}


Вот во общем-то этого и хватит для начала. перезапускам pdnsd (service pdnsd restart).

Если Все настроено верно то nslookup <имя сервера> вернёт ip адрес.


P.S. В следующий раз расскажу, как организовать динамическое обновление имен машин локальной сети в DNS из WINS.

1 комментарий:

morbo комментирует...

На сайте http://translated.by были переведены страницы руководства на этот сервер. Результаты перевода в виде html-страниц я выложил на своей странице http://wheel69.narod.ru/

Можете пользоваться. Буду рад, если поможете в переводе других страниц руководства на сайте http://translated.by/

Даже несколько переведённых абзацев очень обрадуют.