База знаний по Open Source
Авторизация
Поиск по базе знаний

При использовании в локальной сети организации кеширующего сервера DNS крайне желательно поднять еще (хотя-бы) один, вторичный сервер DNS, на случай выхода первичного сервера из строя. С возможностью автоматического обновления вторичного сервера при изменении Serial Number на первичном сервере.

Пусть адрес вторичного DNS у нас будет 19.168.1.101. Для начала на первичном мастере надо разрешить оповещение вторичного сервера об изменении зоны и саму передачу зоны. Добавим опции also-notify и allow-transfer к определениям прямой и обратной зон в /etc/bind/named.conf.local:

zone "name.loc" {
	type master;
	file "/etc/bind/db.example.com";
	allow-transfer { 192.168.1.101; };
	also-notify { 192.168.1.101; }; 
	};

и перезагрузим bind9 на первичном сервере:

sudo service bind9 restart

На вторичном сервере DNS (в примере – 192.168.101) устанавливаем пакет bind9 с теми-же настройками и так же, как делали на первичном. Затем отредактируем /etc/bind/named.conf.local и добавим следующие определения к зонам:

zone "name.loc" {
	type slave;
        file "db.example.com";
        masters { 192.168.1.10; };
};

и перезагрузим bind9 на вторичном сервере:

sudo service bind9 restart

Но это еще не все. По умолчанию apparmor защищает от записи директорию /etc/bind и при первом-же обновлении зоны мы получим ошибку типа:

kernel: [16402.979213] type=1400 audit(145675943.803:125): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/named" name named[6448]: dumping master file: /etc/bind/slave/tmp-cGFTY6AdV9: open: permission denied

Это

Это Apparmor защищает каталог /etc/bind/ от записи. Чтобы сам BIND9 мог писать в каталог надо в файле /etc/apparmor.d/usr.sbin.named немного изменить одну строку:

Находим:

#/etc/bind should be read-only for bind
/etc/bind/** r,
...

и правим:

#/etc/bind should be read-only for bind
/etc/bind/** rw,
...

При любом изменении зоны на первичном DNS, все изменения автоматически внесутся на вторичный. Нужно только не забывать после каждого изменения увеличивать на первичном сервере DNS Serial Number.