Кеширующий DNS-прокси pdnsd
Apr. 17th, 2012 09:32 pmDNS провайдера последние две недели меня расстраивает, поэтому назрела необходимость его на что-нибудь сменить. Есть, например, DNS гугла, если вас идея использовать их не беспокоит, дальше можно не читать. Если же доверять сторонним серверам не хочется, то можно ускорить интернеты с помощью собственного локального DNS.
Можно установить тяжёлый полнофункциональный сервер (привет, bind!), настроить его можно очень быстро: пример. Но rioky мне рассказал о более простом варианте: DNS-прокси. Эта утилита не является полноценным сервером, а просто опрашивает заданные серверы из списка и отдаёт результат, который кешируется, и при повторном запросе ответ будет получен почти мгновенно.
В openSUSE по умолчанию уже установлена одна реализация этой идеи: unscd. Представляет собой модификацию проекта nscd командой Debian. Её я решил удалить, rioky посоветовал установить pdnsd: sudo zypper in pdnsd && sudo zypper rm unscd Включить автозапуск можно в соответсвующем разделе Яста. Управлять можно через systemd: sudo systemctl restart pdnsd.service
Для работы достаточно немного подправить /etc/pdnsd.conf:
- вписать DNS своего провайдера после ip = в строке после строки label= "myisp";
- раскомментировать OpenDNS: убрать */ до и после соответствующего блока.
Помним, что однотипные записи разделяются запятыми, а блок таких записей оканчивается точкой с запятой. При быстром поиске в википедии находится несколько публичных DNS, которые я расположу по порядку увеличения времени отклика до моего компьютера:
- Norton DNS — сервис Symantec Corporation. Имеет список запрещённых адресов, о чём не стесняется сообщать через браузер.
- Google Public DNS — DNS-сервер, разрабатываемый корпорацией Google. Гугл будет наверняка знать, какие сайты и как часто вы посещаете.
- OpenDNS на неправильные запросы выдаёт страничку поиска с рекламой, модифицирует запросы к поисковым системам.
- О SkyDNS пока нечего сказать, кроме того, что он самый медленный из полностью рабочих.
- С UltraDNS наблюдается большой процент потери пакетов.
Перед конфигурированием можно изучить хорошую тему про pdnsd и перевод страницы man. Из всех этих соображения я составил свой конфиг. Сервер по умолчанию отзывается по 127.0.0.1. Протестировать его (как и любой другой DNS) можно запросом, подобным данному: dig @127.0.0.1 irc.freenode.net | grep ime