PDNSD(8)

НАЗВАНИЕ
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 при выходе.

ОПЦИИ

    -4  включает поддержку IPv4. Поддержка IPv6 автоматически выключается (если была доступна). Включено по умолчанию.

    -6  включает поддержку IPv6. Поддержка IPv4 автоматически отключается (если была доступна). Отключено по умолчанию.

    -a  При указании этой опции pdnsd будет пытаться автоматически определить наличие поддержки IPv6 в системе, возвращаясь в режим IPv4 в противном случае.

    -V или --version
        Выводит информацию о версии и завершается.

    -c ФАЙЛ или --config-file=ФАЙЛ
        указывает, что конфигурация должна быть считана из ФАЙЛа. По умолчанию - /etc/pdnsd.conf.

    -d или --daemon
        Запускает pdnsd в режиме демона (как фоновый процесс).

    -g или --debug
        Выводить некоторые отладочные сообщения на консоль или в файл pdnsd.debug в вашем каталоге кэша (в режиме демона).

    -h или --help
        Вывести краткую справку по опциям и завершить работу.

    -i ПРЕФИКС  or  --ipv4_6_prefix=ПРЕФИКС
        указывает префикс, который будет использован pdnsd (когда он запущен в режиме IPv6) для отображения адресов IPv4 из конфигурационного файла в адреса IPv6. Должен быть правильным адресом IPv6. По умолчанию - ::ffff:0.0.0.0

    -p ФАЙЛ
        записывает PID запущенного сервера в указанный файл. Работает только в режиме демона.

    --pdnsd-user
        Вывести имя пользователя, от имени которого будет запущен pdnsd и завершить работу.

    -s или --status
        Включает сокет управления состоянием, если вы хотите использовать команду pdnsd-ctl(8) для управления pdnsd во время его работы. На выбор, это можно сделать данной опцией командной строки или аналогичной ей опцией status_ctl=on; файла конфигурации.

    -t или --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.

    К опциям --status, --daemon, --debug и --tcp может быть добавлен префикс отрицания "no" (например, --notcp) для обращения их эффекта.

ИСПОЛЬЗОВАНИЕ

pdnsd обычно запускается из загрузочных сценариев. Чтобы pdnsd работал, нужно выполнить следующие действия:

    1. Указать вашей системе использовать pdnsd в качестве основного DNS-сервера, изменив файл /etc/resolv.conf.

    2. Указать в /etc/pdnsd.conf использование подходящий источник DNS-записей, в том числе IP-адрес одного или более DNS-серверов. Обычно это серверы вашего Интернет-провайдера.

Для этого поместите следующую строку в файл /etc/resolv.conf:

    nameserver 127.0.0.X

здесь X может быть любым числом. (Я использую 3). Закомментируйте всё остальное содержимое файла. Вам следует поместить это же значение в строку server_ip= в секции global файла /etc/pdnsd.conf.
Если вы хотите использовать 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:

    • Инверсные запросы

    • Запросы статуса

    • Завершающие запросы

    • Именные пространства, отличные от IN (Интернет)

    • AXFR и IXFR запросы (полные пересылки зон); с тех пор как pdnsd не содержит зоны, которые не должны нарушать стандарт.

Следующие типы записей, которые расширяют исходный стандарт DNS, поддерживаются в том случае, если перед компиляцией были указаны соответствующие опции. (Если они не требуется, не нужно заново компилировать их поддержку в pdnsd, это поможет сэкономить на объёме кэша и объёме исполняемого файла):

    • RP (responsible person - ответственная персона, RFC 1183)

    • AFSDB (AFS database location - расположение базы AFS, RFC 1183)

    • X25 (X25 address - адрес X25, RFC 1183)

    • ISDN (ISDN number/address - номер/адрес ISDN, RFC 1183)

    • RT (route through - сквозной маршрут, RFC 1183)

    • NSAP (Network Service Access Protocol address - дрес NSAP, RFC 1348)

    • PX (X.400/RFC822 mapping information - информация отображения X.400/RFC822, RFC 1995)

    • GPOS (geographic position - географические координаты, обсуждается)

    • AAAA (IPv6 address - адрес IPv6, RFC 1886)

    • LOC (location - местонахождение, RFC 1876)

    • EID (Nimrod EID)

    • NIMLOC (Nimrod locator)

    • SRV (service record - запись об услуге, RFC 2052)

    • ATMA (ATM address - адрес ATM)

    • NAPTR (URI mapping - отображение URI, RFC 2168)

    • 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.

АВТОР ПЕРЕВОДА
Перевод на русский язык выполнил Владимир Ступин <wheel69@yandex.ru>.