http://www.isc.org/community/blog/201107/major-improvement-bind-9-startup-performance
И мы были подвержены этому багу...
Showing posts with label Bind. Show all posts
Showing posts with label Bind. Show all posts
Wednesday, 3 August 2011
Sunday, 31 October 2010
Веб-интерфейсы для Bind
1. CyberDNS http://freshmeat.net/projects/cyberdns (Python, Django)
2. ISPSystems DNSManager http://ispsystem.com/en/software/dnsmanager/
Вот еще целый набор: http://www.debianadmin.com/bind-dns-server-web-interfacefrontend-or-gui-tools.html
2. ISPSystems DNSManager http://ispsystem.com/en/software/dnsmanager/
Вот еще целый набор: http://www.debianadmin.com/bind-dns-server-web-interfacefrontend-or-gui-tools.html
Wednesday, 13 October 2010
Балансировка сервисов посредством Bind / named.
Уверен, многим известно, что доменная запись может резолвится в несколько IP адресов. Так, например, сделано у Google и Yandex:
Для чего это делается? Крайне просто - для балансировки нагрузки по множеству машин и для повышенной отказоустойчивости (если какой-то из серверов упадет, часть клиентов будет уходить на другие машины, а когда IP отказавшей машины будет изъят из DNS, то через некоторое время на отказавший сервер клиенты идти перестанут совсем).
Как же реализовать такой механизм, имея в арсенале лишь обычный DNS сервис Bind? Крайне просто - достаточно добавить две идентичных ресурсных А записи, указывающих на разные IP адреса:
И перезапустить Bind. После этого IP адреса начнут выдаваться в циклическом порядке (то есть, сначала первым в выдаче nslookup будет первый IP, потом второй, при следующем запросе они поменяются местами, потом еще раз и т.д. и т.п.). Если же Вам интересен более сложный порядок выдачи адресов, то рекомендую вот эту статью.
Выглядеть это будет так:
Ну вот и все :)
Источник: http://www.zytrax.com/books/dns/ch9/rr.html#services
nslookup google.com
Server: 192.168.155.1
Address: 192.168.155.1#53
Non-authoritative answer:
Name: google.com
Address: 74.125.232.19
Name: google.com
Address: 74.125.232.16
Name: google.com
Address: 74.125.232.17
Name: google.com
Address: 74.125.232.20
Name: google.com
Address: 74.125.232.18
nslookup ya.ru
Server: 192.168.155.1
Address: 192.168.155.1#53
Non-authoritative answer:
Name: ya.ru
Address: 213.180.204.3
Name: ya.ru
Address: 77.88.21.3
Name: ya.ru
Address: 87.250.250.3
Name: ya.ru
Address: 87.250.251.3
Name: ya.ru
Address: 93.158.134.3
Для чего это делается? Крайне просто - для балансировки нагрузки по множеству машин и для повышенной отказоустойчивости (если какой-то из серверов упадет, часть клиентов будет уходить на другие машины, а когда IP отказавшей машины будет изъят из DNS, то через некоторое время на отказавший сервер клиенты идти перестанут совсем).
Как же реализовать такой механизм, имея в арсенале лишь обычный DNS сервис Bind? Крайне просто - достаточно добавить две идентичных ресурсных А записи, указывающих на разные IP адреса:
testzone IN A 82.11.22.33
testzone IN A 77.11.22.33
И перезапустить Bind. После этого IP адреса начнут выдаваться в циклическом порядке (то есть, сначала первым в выдаче nslookup будет первый IP, потом второй, при следующем запросе они поменяются местами, потом еще раз и т.д. и т.п.). Если же Вам интересен более сложный порядок выдачи адресов, то рекомендую вот эту статью.
Выглядеть это будет так:
nslookup testzone.domain.ru ns1.domain.ru
Server: ns1.domain.ru
Address: 78.xx.xx.xx#53
Name: testzone.domain.ru
Address: 82.11.22.33
Name: testzone.domain.ru
Address: 77.11.22.33
nslookup testzone.domain.ru ns1.domain.ru
Server: ns1.domain.ru
Address: 78.xx.xx.xx#53
Name: testzone.domain.ru
Address: 77.11.22.33
Name: testzone.domain.ru
Address: 82.11.22.33
nslookup testzone.domain.ru ns1.domain.ru
Server: ns1.domain.ru
Address: 78.xx.xx.xx#53
Name: testzone.domain.ru
Address: 82.11.22.33
Name: testzone.domain.ru
Address: 77.11.22.33
Ну вот и все :)
Источник: http://www.zytrax.com/books/dns/ch9/rr.html#services
Thursday, 9 September 2010
AXFR и безопасность DNS
Всем, кто когда бы то ни было использовал / настраивал DNS сервисы крайне обязательно к прочтению: http://habrahabr.ru/blogs/infosecurity/88545/
Как узнать, выдает ли Ваш DNS подробные данные о содержимом зоны (AXFR) ? Легко:
Или посредством веб-сервиса: http://www.digitalpoint.com/tools/zone-transfer/?domain=domain.ru
И если в ответ Вы получаете полотно зоны, то Ваш DNS сервер настроен некорректно и любой может узнать список Ваших поддоменов.
Как победить проблему? Вот пример для Debian. Открываем конфиг-файл:
И там внутрь блока options добавляем (тем самым мы позволяем только нашим DNS серверам дергать зону и никому больше):
Перезапускаем DNS:
Все, проблема решена :)
Как узнать, выдает ли Ваш DNS подробные данные о содержимом зоны (AXFR) ? Легко:
dig -t AXFR domain.ru @ns.domain.ru
Или посредством веб-сервиса: http://www.digitalpoint.com/tools/zone-transfer/?domain=domain.ru
И если в ответ Вы получаете полотно зоны, то Ваш DNS сервер настроен некорректно и любой может узнать список Ваших поддоменов.
Как победить проблему? Вот пример для Debian. Открываем конфиг-файл:
vi /etc/bind/named.conf.options
И там внутрь блока options добавляем (тем самым мы позволяем только нашим DNS серверам дергать зону и никому больше):
allow-transfer { ip_первичного_днс; ip_вторичного_днс; };
Перезапускаем DNS:
/etc/init.d/bind9 restart
Все, проблема решена :)
Starting domain name service...: bind9 failed
Вот случилась такая проблемка на Debian Lenny:
Есть очень легкий способ попросить Named сказать о том, почему он падает:
Идем на эту строку и фиксим проблему :)
/etc/init.d/bind9 start
Starting domain name service...: bind9 failed!
Есть очень легкий способ попросить Named сказать о том, почему он падает:
named -g -u bind
09-Sep-2010 00:41:46.124 starting BIND 9.6-ESV-R1 -g -u bind
09-Sep-2010 00:41:46.124 built with '--prefix=/usr' '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var/run/bind' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--enable-ipv6' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -DNS_RUN_PID_DIR=0 -O2' 'LDFLAGS=' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' 'FFLAGS=-g -O2'
09-Sep-2010 00:41:46.124 adjusted limit on open files from 1024 to 1048576
09-Sep-2010 00:41:46.124 found 2 CPUs, using 2 worker threads
09-Sep-2010 00:41:46.125 using up to 4096 sockets
09-Sep-2010 00:41:46.129 loading configuration from '/etc/bind/named.conf'
09-Sep-2010 00:41:46.723 /etc/bind/named.conf:238: unknown option 'egated'
09-Sep-2010 00:41:46.723 /etc/bind/named.conf:238: unexpected token near end of file
09-Sep-2010 00:41:46.842 loading configuration: unexpected token
09-Sep-2010 00:41:46.842 exiting (due to fatal error)
Идем на эту строку и фиксим проблему :)
Tuesday, 25 May 2010
Thursday, 22 April 2010
Получение статистики доменных зон доменов, поддержиавемых на DNS
cat /etc/bind/named.conf | grep zone | grep -v '^/' | tr '"' ' ' | awk '{print $2}' | perl -MData::Dumper -e 'my$hs; do { chomp; @a=split/\./, $_; $hs->{$a[-1]}++; } for <>; print "$_ $hs->{$_}\n" for sort { $hs->{$b} <=> $hs->{$a} } keys %$hs'
Wednesday, 24 February 2010
Debian: как отучить Bind слушать 953й порт на ipv6
Открываем конфиг:
Добавляем там параметр для запуска демона Named только с поддержкой ipv4:
Перезапускаем Named:
Убеждаемся, в результатах:
Источник: http://ubuntu-tutorials.com/2009/03/21/configure-bind-9-for-ipv4-or-ipv6-only/
vi /etc/default/bind9
Добавляем там параметр для запуска демона Named только с поддержкой ipv4:
OPTIONS="-4 -u bind"
Перезапускаем Named:
/etc/init.d/bind9 restart
Убеждаемся, в результатах:
netstat -lnpt | grep 953
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 10181/named
Источник: http://ubuntu-tutorials.com/2009/03/21/configure-bind-9-for-ipv4-or-ipv6-only/
Monday, 15 February 2010
Как включить DNS сервер в ISPManager, если кнопка активации не нажимается?
/usr/local/ispmgr/sbin/pkgctl activate dns
Tuesday, 9 February 2010
ISPManager в качестве вторичного DNS на Debian
При таком варианте использования у него есть баг, что добавляемые клиентами зоны добавляются в /etc/bind, что правильно. А вот когда подчиненные сервер добавляет зону вида:
Что есть бред. Фиксица это добавление следующих строк в конфиг:
Также эту папку необходмо создать:
Ну и после необходимо рестарт ISP:
На новых установках баг не проявляется, эта строка уже включена в конфиг, а вот апдейтер для старых ее не добавлял.
zone "nrg.name" {
type slave;
file "/var/named/nrg.name";
masters {xx.xx.xx.xx;};
};
Что есть бред. Фиксица это добавление следующих строк в конфиг:
vi /usr/local/ispmgr/etc/ispmgr.conf
path DomainSlaveZonesPath /etc/bind/slave
Также эту папку необходмо создать:
mkdir /etc/bind/slave
chown bind:bind /etc/bind/slave
Ну и после необходимо рестарт ISP:
killall -9 -r ispmgr
На новых установках баг не проявляется, эта строка уже включена в конфиг, а вот апдейтер для старых ее не добавлял.
Sunday, 20 December 2009
Решение проблем с Named на CentOS 5
Очень часто при апдейте Named (Bind) сбрасывает владельцев зон в папке /var/named на root, в результате чего Named ломается, фиксить это так:
Итого как-то вот так выглядит его "правильное" обновление:
chown -R named:named /var/named/
Итого как-то вот так выглядит его "правильное" обновление:
yum -y update bind && chown -R named:named /var/named/ && /etc/init.d/named restart && ls -la /var/named | head
Wednesday, 16 December 2009
Dec 16 16:47:22 itcentr named[7995]: client ip.ad.dr.es#29628: query 'domain.com/A/IN' denied
Обращаю внимание, что статья касается Bind, работающего как рекурсивный DNS в локальной сети.
Вот натолкнулся на такую ошибку в Debian Bind9:
Решается внесением правки в:
Приводим директиву allow-query в следующий вид:
Перезапускаем named:
Вот натолкнулся на такую ошибку в Debian Bind9:
Dec 16 16:47:22 itcentr named[7995]: client ip.ad.dr.es#29628: query 'domain.com/A/IN' denied
Решается внесением правки в:
vi /etc/bind/named.conf.options
Приводим директиву allow-query в следующий вид:
allow-query { all; };
Перезапускаем named:
/etc/init.d/bind9 restart
Как заставить Bind9 ( Debian ) слушать на всех интерфейсах?
vi /etc/bind/named.conf.options
Ищем там запись:
listen-on { 127.0.0.1; ip.ad.dr.es; };
И заменяем на:
listen-on { any; };
После чего рестартим named:
/etc/init.d/bind9 restart
Friday, 4 December 2009
Насильный трансфер зоны с первичного DNS, Named (Bind9)
В Debian это выглядит так:
rndc reload domain.ru
Sunday, 29 November 2009
Отключение рекурсии (recursion) в DNS Named (Bind)
На CentOS:
На Debian:
И в самый верх (CentOS ) или в блок options (Debian) вносим следующее:
После чего перезапускаем named (CentOS):
или (Debian):
vi /etc/named.conf
На Debian:
vi /etc/bind/named.conf.options
И в самый верх (CentOS ) или в блок options (Debian) вносим следующее:
options {
allow-recursion { localnets; localhost; };
};
После чего перезапускаем named (CentOS):
/etc/init.d/named restart
или (Debian):
/etc/init.d/bind9 restart
Subscribe to:
Posts
(
Atom
)