pdnsd - DNS прокси демон
pdnsd [-h] [-V] [-s] [-d] [-g] [-t] [-p файл] [-vn] [-mxx] [-c файл] [-4] [-6] [-a]
Эта страница руководства является выдержкой из документации pdnsd. За полной текущей документацией обращайтесь к HTML (или текстовой) документации, которую можно найти в подкаталоге doc/ в исходных текстах или в стандартном каталоге документации. Если вы пользуетесь двоичным пакетом, то обычно это каталог /usr/share/doc/pdnsd/.
pdnsd - это прокси сервер доменных имён (DNS), совместимый с IPv6, сохраняющий на диск содежимое кэша DNS при выходе.
К опциям --status, --daemon, --debug и --tcp может быть добавлен префикс отрицания "no" (например, --notcp) для обращения их эффекта.
-4 включает поддержку IPv4. Поддержка IPv6 автоматически выключается (если была доступна). Включено по умолчанию. -6 включает поддержку IPv6. Поддержка IPv4 автоматически отключается (если была доступна). Отключено по умолчанию. -a При указании этой опции pdnsd будет пытаться автоматически определить наличие поддержки IPv6 в системе, возвращаясь в режим IPv4 в противном случае. -V or --version Выводит информацию о версии и завершается. -c ФАЙЛ или --config-file=ФАЙЛ указывает, что конфигурация должна быть считана из ФАЙЛа. По умолчанию - /etc/pdnsd.conf. -d or --daemon Запускает pdnsd в режиме демона (как фоновый процесс). -g or --debug Выводить некоторые отладочные сообщения на консоль или в файл pdnsd.debug в вашем каталоге кэша (в режиме демона). -h or --help Вывести краткую справку по опциям и завершить работу. -i ПРЕФИКС or --ipv4_6_prefix=ПРЕФИКС указывает префикс, который будет использован pdnsd (когда он запущен в режиме IPv6) для отображения адресов IPv4 из конфигурационного файла в адреса IPv6. Должен быть правильным адресом IPv6. По умолчанию - ::ffff:0.0.0.0 -p ФАЙЛ записывает PID запущенного сервера в указанный файл. Работает только в режиме демона. --pdnsd-user Вывести имя пользователя, от имени которого будет запущен pdnsd и завершить работу. -s or --status Включает сокет управления состоянием, если вы хотите использовать команду pdnsd-ctl(8) для управления pdnsd во время его работы. На выбор, это можно сделать данной опцией командной строки или аналогичной ей опцией status_ctl=on; файла конфигурации. -t or --tcp Включает нить TCP-сервера. pdnsd будет обслуживать TCP и UDP-запросы. -vn Задаёт "многословность" pdnsd. n - это числовой аргумент между 0 (нормальная работа) и 3 (много сообщений для отладки). -mxx Задаёт используемый pdnsd метод запросов. Возможны следующие значения xx: uo - pdnsd будет использовать только UDP. Это самый быстрый метод, и должен поддерживаться всеми серверами имён в Интернете. to - pdnsd будет использовать только TCP. TCP-запросы обычно занимают больше времени, чем UDP-запросы, но более устойчивы к определённым видам атак, когда атакующий пытается угадать идентификатор запроса и посылает поддельные ответы. TCP-запросы не поддерживаются некоторыми серверами имён. tu - pdnsd пытается использовать TCP, и воспользуется UDP только в том случае, если соединение было отброшено или было превышено время ожидания. ut - pdnsd попытается использовать UDP, и повторит запрос с использованием TCP, если UDP-ответ был обрезан (то есть в ответе установлен бит tc). Это поведение, рекомендуемое стандартами DNS.
pdnsd обычно запускается из загрузочных сценариев. Чтобы pdnsd работал, нужно выполнить следующие действия:
здесь X может быть любым числом. (Я использую 3). Закомментируйте всё остальное содержимое файла. Вам следует поместить это же значение в строку server_ip= в секции global файла /etc/pdnsd.conf.
1. Указать вашей системе использовать pdnsd в качестве основного DNS-сервера, изменив файл /etc/resolv.conf. 2. Указать в /etc/pdnsd.conf использование подходящий источник DNS-записей, в том числе IP-адрес одного или более DNS-серверов. Обычно это серверы вашего Интернет-провайдера. Для этого поместите следующую строку в файл /etc/resolv.conf: nameserver 127.0.0.X
Если вы хотите использовать pdnsd в качестве DNS-сервера для малых локальных сетей, то вместо адреса 127.0.0.X вы должны использовать IP-адрес или имя интерфейса, соединённого с этой сетью.
Чтобы сообщить pdnsd, откуда брать информацию DNS, добавьте следующие строки в /etc/pdnsd.conf:
server {
label= "myisp";
ip=123.456.789.001,123.456.789.002;
proxy_only=on;
timeout=10;
}
Не забывайте про открывающие и закрывающие фигурные скобки. Добавьте необходимое количество секций server для каждого набора DNS-серверов, которые должен использовать pdnsd. Конечно, опции конфигурации показанные здесь - это просто пример. Другие примеры можно найти в /etc/pdnsd.conf.sample или в файле pdnsd.conf в каталоге документации. Обратитесь к странице руководства pdnsd.conf(5), где описаны все опции и их точный смысл.
Если используется модемное соединение, запомните что ppp-скрипты обычно заменяют /etc/resolv.conf, когда установлено соединение с Интернет-провайдером. Вам нужно настроить ppp (или то, что вы используете для установки соединения) так, чтобы /etc/resolv.conf не заменялся каждый раз при установке соединения. Прочитайте документацию о сценариях, запускаемых при установке подключения к сети.
Если вы используете pppconfig, укажите "none" в опции "nameservers" во вкладке "advanced". Если используется несколько интернет-провайдеров, нужно сделать это для каждого соединения/учётной записи.
Если используется несколько интернет-провайдеров, нужно сообщить pdnsd какие DNS серверы будут активными. Это можно сделать с помощью pdnsd-ctl, утилиты настройки pdnsd. Соответствующие команды нужно поместить в сценарий (например, /etc/ppp/ip-up, если используется pppd), который запускается при установке соединения. Если адреса DNS-серверов становятся известными через один из протоколов динамической конфигурации (например pppd с опцией usepeerdns или через DHCP-клиент), можно пропустить настройку адресов DNS-сервера, потому что это дополнительный аргумент в пользу настройки pdnsd во время подключения. Обратитесь к странице руководства pdnsd-ctl(8) за уточнением деталей.
/etc/pdnsd.conf - это файл конфигурации. Формат файла и его опции описаны на странице руководства pdnsd.conf(5). Вы можете найти примеры почти всех опций в /etc/pdnsd.conf.sample.
/var/cache/pdnsd/pdnsd.cache
/var/cache/pdnsd/pdnsd.status - сокет управления состоянием, который должен быть включен для использования pdnsd-ctl.
/etc/init.d/pdnsd (имя и нахождение сценария запуска может отличаться в зависимости от вашего дистрибутива).
/etc/resolv.conf
/etc/defaults/pdnsd содержит дополнительные параметры или опции, которые могут быть обработаны pdnsd во время загрузки. Файл позволяет избежать редактирования init-сценариев (этот файл доступен не во всех дистрибутивах).
"Многословность" опции -vn теперь вроде бы не сильно влияет на объём отладочного вывода.
Сообщайте о любых других ошибках авторам.
pdnsd должен удовлетворять RFC 1034 и 1035. По сравнению с версией 1.0.0 RFC-совместимость была улучшена и теперь мы верим (или надеемся?), что pdnsd полностью совместим с RFC. Он полностью следует RFC 2181 (исключая одну небольшую особенность в портированной версии под FreeBSD, смотрите документацию).
Он НЕ поддерживает следующие возможности, большинство которых помечены опциональными, экспериментальными или устаревшими в этих RFC:
o Инверсные запросы o Запросы статуса o Завершающие запросы o Именные пространства, отличные от IN (Интернет) o AXFR и IXFR запросы (полные пересылки зон); с тех пор как pdnsd не содержит зоны, которые не должны нарушать стандарт. Следующие типы записей, которые расширяют исходный стандарт DNS, поддерживаются в том случае, если перед компиляцией были указаны соответствующие опции. (Если они не требуется, не нужно заново компилировать их поддержку в pdnsd, это поможет сэкономить на объёме кэша и объёме исполняемого файла): o RP (responsible person - ответственная персона, RFC 1183) o AFSDB (AFS database location - расположение базы AFS, RFC 1183) o X25 (X25 address - адрес X25, RFC 1183) o ISDN (ISDN number/address - номер/адрес ISDN, RFC 1183) o RT (route through - сквозной маршрут, RFC 1183) o NSAP (Network Service Access Protocol address - дрес NSAP, RFC 1348) o PX (X.400/RFC822 mapping information - информация отображения X.400/RFC822, RFC 1995) o GPOS (geographic position - географические координаты, обсуждается) o AAAA (IPv6 address - адрес IPv6, RFC 1886) o LOC (location - местонахождение, RFC 1876) o EID (Nimrod EID) o NIMLOC (Nimrod locator) o SRV (service record - запись об услуге, RFC 2052) o ATMA (ATM address - адрес ATM) o NAPTR (URI mapping - отображение URI, RFC 2168) o KX (key exchange - обмен ключами, RFC 2230)
pdnsd-ctl(8), pdnsd.conf(5), pppconfig(8), resolv.conf(5)
Дополнительную документацию можно найти в подкаталоге doc/ в исходных текстах, или каталоге в /usr/share/doc/pdnsd/, если вы используете двоичный пакет.
Первоначально pdnsd был написан Томасом Мёстлем (Thomas Moestl), <tmoestl@gmx.net>, и был существенно доработан Полом Ромбаутсом (Paul Rombouts) <p.a.rombouts@home.nl> (для версии 1.1.8b1-par и более поздних).
При разработке pdnsd были использованы дополнительные компоненты; обратитесь к исходным текстам или к файлам в каталоге /usr/share/doc/pdnsd/
Эта страница руководства написана Маеш Т. Пай (Mahesh T. Pai), <paivakil@yahoo.co.in> с использованием документов из каталога /usr/share/docs/pdnsd/ в Debian, но также может использоваться и в других дистрибутивах.
Последнее изменение: 22 июля 2007 года, Пол Ромбаутс (Paul Rombouts).
Эта страница руководства является частью пакета pdnsd и может распространяться в неизменной или изменённой форме в соответствии с GNU General Public License, опубликованной Free Software Foundation, версии 3 или (на ваш выбор) любой последующей версией.
Вы можете найти копию лицензии GNU GPL в файле COPYING среди исходных файлов или в каталоге /usr/share/common-licenses/, если вы используете Debian.
Перевод на русский язык выполнил Владимир Ступин <wheelof@gmail.com>.
pdnsd 1.2.6-par | PDNSD (8) | Июль 2007 |