Debian.pro

Блог для пользователей и администраторов Debian


Debian, перенос bind на другой сервер или другую систему.

Столкнулся на работе с забавной задачей — перенести bind9 с сервера на сервер. Казалось бы всё тривиально, ан нет. Проблемы по дороге встретились. Казалось бы простые, но вспоминать как их решать в будущем не хочется.
Нафига оно может понадобиться… ну.. например, при переустановке системы. При переносе bind’a с сервера на сервер… вдруг вы пожелаете с VDS на физический сервер переехать) Так же, можно данное решение использовать для создания временного secondary DNS сервера. В общем сами придумаете.
Имеются:
Debian1 — на нём сейчас установлен bind
Server2 — на него переносим.
Будьте внимательны, смотрите на приглашение перед командой, чтобы увидеть, на каком сервере выполняем команду.
Поставим bind на пациенте:
Server2:~# aptitude install bind9
Скопируем rndc.key подальше, он нам потом пригодится:
Server2:~# cp /etc/bind9/rndc.key /root/rndc.key
Удалим всё из каталога bind’a (на втором сервере удаляем, будьте внимательны):
Server2:~# cd /etc/bind && rm -r *
Теперь создадим архив конфигов существующего bind’a:
Debian1:~# cd /etc/bind && tar -cvf bind.tar *
Зальём архив на второй сервер:
Debian1:~# scp bind.tar root@Server2:~/etc/bind
Распакуем его на втором сервере:
Server2:~# cd /etc/bind && tar -xvf bind.tar
Скопируем архив на всякий случай:
Server2:~# cp /etc/bind/bind.tar && /root/bind.tar
Теперь вернем rndc.key на место:
Server2:~# rm /etc/bind/rndc.key && cp /root/rndc.key /etc/bind/rndc.key
Теперь без ошибок должна отрабатывать команда:
Server2:~# /etc/init.d/bind9 restart
Если ошибки есть — свяжитесь со мной, подумаю как исправить.
Если вы переустанавливаете систему — думаю, сами догадаетесь, как модернизировать алгоритм.
Теперь о тех случаях, если IP бинда изменился.
Во-первых нужно сменить IP адреса в директиве listen-on (у меня она нашлась в 4й строке файла named.conf.options, если у вас там её нет — grep -rn вам в руки).
Во-вторых, если вы переносите и сами сайты на новый IP, вам может пригодиться следующая конструкция:
Server2:~# cd /etc/bind && sed -i -e ‘s/xx\.xx\.xx\.xx/yy\.yy\.yy\.yy/g’ *
Этой командой в каталоге бинда во всех файлах мы заменим xx.xx.xx.xx на yy.yy.yy.yy
Айпишники…. в принципе сами можете туда вписать что угодно (ну например ns1.host.ru => ns2.host.ru).
В упрощенном виде: sed -i -e ‘s/xx/yy/g’ *
Но точки нужно экранировать, перед ними ставим \ (обратный слеш)
Только используйте осторожно, если не уверены — вместо звездочки поставьте имя файла.


Комментариев пока нет.

Написать комментарий