pdnsd - DNS прокси демон
НАЗВАНИЕ
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>.