FastNetMon

Показаны сообщения с ярлыком Bind. Показать все сообщения
Показаны сообщения с ярлыком Bind. Показать все сообщения

среда, 13 октября 2010 г.

Официальная документация Bind 9.6

http://www.isc.org/files/arm96.html

Балансировка сервисов посредством Bind / named.

Уверен, многим известно, что доменная запись может резолвится в несколько IP адресов. Так, например, сделано у Google и Yandex:

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

четверг, 9 сентября 2010 г.

AXFR и безопасность DNS

Всем, кто когда бы то ни было использовал / настраивал DNS сервисы крайне обязательно к прочтению: http://habrahabr.ru/blogs/infosecurity/88545/

Как узнать, выдает ли Ваш 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:
/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)

Идем на эту строку и фиксим проблему :)

четверг, 22 апреля 2010 г.

среда, 24 февраля 2010 г.

Debian: как отучить Bind слушать 953й порт на ipv6

Открываем конфиг:
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/

вторник, 9 февраля 2010 г.

ISPManager в качестве вторичного DNS на Debian

При таком варианте использования у него есть баг, что добавляемые клиентами зоны добавляются в /etc/bind, что правильно. А вот когда подчиненные сервер добавляет зону вида:


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


На новых установках баг не проявляется, эта строка уже включена в конфиг, а вот апдейтер для старых ее не добавлял.

воскресенье, 20 декабря 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

среда, 16 декабря 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:
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

воскресенье, 29 ноября 2009 г.

Отключение рекурсии (recursion) в DNS Named (Bind)

На CentOS:
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