PDNSD

НАЗВАНИЕ
ОБЗОР
ОПИСАНИЕ
ОПЦИИ
ИСПОЛЬЗОВАНИЕ
ФАЙЛЫ
НЕИСПРАВНОСТИ
СООТВЕТСТВИЕ
СМОТРИ ТАКЖЕ
АВТОРЫ
АВТОРСКОЕ ПРАВО
АВТОР ПЕРЕВОДА

НАЗВАНИЕ

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 A. 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 A. Rombouts).

АВТОРСКОЕ ПРАВО

Эта страница руководства является частью пакета pdnsd и может распространяться в неизменной или изменённой форме в соответствии с GNU General Public License, опубликованной Free Software Foundation, версии 3 или (на ваш выбор) любой последующей версией.

Вы можете найти копию лицензии GNU GPL в файле COPYING среди исходных файлов или в каталоге /usr/share/common−licenses/, если вы используете Debian.

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.