Настройка server2.example.com как вторичного DNS и создание зоны DNS
Что мы делаем и зачем
Кратко: делаем server2.example.com вторичным DNS-сервером для отказоустойчивости и распределения нагрузки. Вторичный DNS получает зоны от первичного и отвечает на DNS-запросы, если первичный недоступен.
Определение: вторичный DNS — сервер, который держит копии зон (AXFR/IXFR) от первичного и отвечает на запросы DNS.
Важно: статья предполагает Debian-подобную систему и ISPConfig 3 в мультисерверной конфигурации.
Требования и предпосылки
- Доступ root или sudo на server2.example.com.
- server1.example.com уже настроен как первичный DNS с ISPConfig 3.
- Межсерверный доступ по сети между server1 и server2 (порты MySQL, SSH и DNS должны быть доступны по правилам вашего брандмауэра).
- Резервные копии конфигураций до изменений.
1. Установка пакетов на server2.example.com
Выполните следующие команды на server2 как root или через sudo. Команды сохранены исходными, их можно копировать:
apt-get -y install ntp ntpdateapt-get -y install mysql-client mysql-serverВо время установки MySQL вам предложат задать пароль для пользователя root MySQL. Запомните его.
apt-get -y install php5-cli php5-mysql php5-mcrypt mcryptapt-get -y install bind9 dnsutilsПояснение: ntp синхронизирует время, MySQL нужен для связи с базой ISPConfig, PHP — для инсталлятора и веб-интерфейса, BIND — собственно DNS-сервер.
2. Установка ISPConfig 3 на server2 (присоединение к multiserver)
Скачайте и запустите инсталлятор ISPConfig в /tmp:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.phpВо время установки выберите режим expert, укажите FQDN server2.example.com и отметьте, что сервер будет присоединяться к существующей multiserver-конфигурации. Пример интерактивного вывода инсталлятора (сокращённо):
root@server2:/tmp/ispconfig3_install/install# php -q install.php
--------------------------------------------------------------------------------
_____ _________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | | _|
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Initial configuration
Operating System: Debian 6.0 (Squeeze/Sid) or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with .
Tap in "quit" to stop the installer.
Select language (en,de) [en]:
Installation mode (standard,expert) [standard]: expert
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server2.example.com]:
MySQL server hostname [localhost]:
MySQL root username [root]:
MySQL root password []: <-- your MySQL root password for server2
Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: y
MySQL master server hostname []: server1.example.com
MySQL master server root username [root]:
MySQL master server root password []: <-- your MySQL root password on server1
MySQL master server database name [dbispconfig]: name_of_ispconfig_database_on_server1.example.com
Configure DNS Server (y,n) [y]:
...
Installation completed.
root@server2:/tmp/ispconfig3_install/install# Примечание: при подключении к существующему MySQL-мастеру вы передаёте установщику доступ к базе данных ISPConfig на server1, чтобы сервер вошёл в мультисерверную конфигурацию.
3. Настройка server2 как зеркала server1 через веб-интерфейс ISPConfig
- Откройте панель ISPConfig на server1: http(s)://server1.example.com:8080 и войдите под администратором.
- Перейдите в System > Server Services.
- Выберите server2.example.com в списке серверов.

- Убедитесь, что отмечен флажок DNS-Server, в поле Is mirror of Server выберите server1.example.com и нажмите Save.

Пояснение: это укажет ISPConfig, что server2 должен получать зоны от server1 и отвечать как вторичный сервер.
Важно: после сохранения ISPConfig создаст записи сервера в базе и настроит репликацию зон (AXFR/IXFR) между server1 и server2, если это разрешено в настройках BIND и брандмауэре.
4. Создание DNS-зоны через DNS Wizard (рекомендуемая практика)
В ISPConfig используйте мастер DNS (DNS > DNS Wizard > Add DNS Zone) — он автоматически создаёт стандартный набор записей (A, www, mail, NS, MX).

Форма мастера содержит следующие поля и рекомендации:
- Template: шаблон, определяющий какие записи будут созданы по умолчанию. Шаблоны находятся в DNS > DNS Wizard > Templates. Пример: Default создаст A записи для mydomain.com, www.mydomain.com, mail.mydomain.com.
- Server: выберите server1.example.com (первичный), это сервер, на котором создаётся запись зоны.
- Client: клиент — владелец зоны (в ISPConfig).
- Domain: домен без точки в конце, например mydomain.com.
- IP Address: IP-адрес, на который будет указывать основной A-запись (www и mail будут указывать на этот IP по умолчанию).
- NS 1: hostname первичного nameserver, укажите server1.example.com.
- NS 2: hostname вторичного nameserver, укажите server2.example.com.
- Email: адрес администратора зоны, например hostmaster@mydomain.com.
Заполните форму и нажмите Create DNS Record.

После создания зона появится в списке DNS > DNS > Zones:

Если открыть зону и перейти на вкладку Records, вы увидите автоматически созданные записи A, NS и MX, их можно редактировать или удалять:

5. Проверка и отладка репликации зон
Проверка наличия зоны на server2:
- На server1 выполните: dig @127.0.0.1 mydomain.com AXFR
- На server2 выполните: dig @127.0.0.1 mydomain.com AXFR
Если server2 правильно настроен как вторичный, он сможет получить AXFR от server1.
Проверка ответов для клиентов:
- dig @server2.example.com mydomain.com A
- nslookup mydomain.com server2.example.com
Типичные проблемы и их причины:
- Блокировка TCP-портов 53 (AXFR требует TCP): проверьте firewall/iptables.
- Разрешения на зонные файлы в /etc/bind: проверьте права и владельца.
- Настройки allow-transfer / also-notify в конфигурации BIND на server1: сервер должен разрешать передачу зон server2 и уведомлять его.
Пример проверки журналов:
- /var/log/syslog и /var/log/messages для сообщений BIND.
- Логи ISPConfig в /var/log/ispconfig/ для ошибок синхронизации.
6. Советы по безопасности и производительности
- Ограничьте allow-transfer только IP server2 в конфигурации BIND на server1.
- Убедитесь, что уведомления (notify) отправляются на server2 — опция also-notify может пригодиться.
- Резервное копирование зон и базы ISPConfig перед изменениями.
- Ограничьте доступ к MySQL по сети; используйте VPN или отдельную сеть для межсерверного общения.
7. Контрольный список перед вводом в эксплуатацию
- На server2 установлены все пакеты: ntp, mysql, php, bind.
- ISPConfig установлен в режиме multiserver и завершил установку без ошибок.
- В System > Server Services server2 отмечен как DNS-Server и зеркалит server1.
- Создана DNS-зона на server1 через DNS Wizard.
- server2 успешно получил зону через AXFR (проверено dig).
- Порты 53 TCP/UDP открыты между серверами.
- allow-transfer на server1 настроен на IP server2.
8. Когда этот подход не подходит (альтернативы)
- Если вы используете облачные DNS-провайдеры (Cloudflare, Route53), управлять зоной лучше через API провайдера, а не через BIND/ISPConfig.
- Если у вас много географически распределённых вторичных серверов, рассмотрите Anycast DNS или специализированные сервисы.
9. Быстрые команды для проверки
- Проверить локальный BIND: rndc status
- Запрос AXFR вручную: dig @server1.example.com mydomain.com AXFR
- Проверка конкретной записи: dig @server2.example.com www.mydomain.com A
10. Решение проблем — таблица причин и действий
- Нет AXFR: проверить allow-transfer и firewall.
- Сервер не отображается в ISPConfig: проверить запись сервера в System > Server Services и логи инсталлятора.
- Ошибки доступа к MySQL master: проверить креденшалы, сетевой доступ и пароль.
11. Сценарий отката (rollback)
- Восстановите конфигурацию BIND из резервной копии на server1 при возникновении проблем.
- В ISPConfig отмените отметку «Is mirror of» для server2 и удалите запись сервера, если нужно убрать из мультисервера.
12. Принятие в эксплуатацию — критерии приёмки
- Зона успешно передаётся на server2 (AXFR прошёл без ошибок).
- server2 отвечает на DNS-запросы корректно и даёт те же записи, что и server1.
- Логи не показывают повторяющихся ошибок синхронизации в течение 24 часов.
Заключение
Настройка server2.example.com как вторичного DNS через ISPConfig даёт простую и управляемую модель репликации зон. Важны корректные настройки BIND (allow-transfer, notify), открытые TCP/UDP 53 порты и проверка AXFR. Используйте контрольный список и тесты, описанные выше, чтобы убедиться в надёжности конфигурации.
Важно: если вы планируете управлять большим числом доменов, подумайте об автоматизации создания зон и наблюдении за метриками DNS.
flowchart TD
A[Начало] --> B{ISPConfig установлен?}
B -- Нет --> C[Установить ISPConfig в режиме multiserver]
B -- Да --> D{Server2 добавлен в System > Server Services?}
D -- Нет --> E[Добавить сервер и отметить DNS-Server]
D -- Да --> F{Is mirror of установлен на server1?}
F -- Нет --> G[Выбрать server1 в Is mirror of и сохранить]
F -- Да --> H[Создать DNS-зону на server1 через DNS Wizard]
H --> I[Проверить AXFR и ответы DNS на server2]
I --> J[Ввод в эксплуатацию]Похожие материалы
Ciuvo — сравнение цен в браузере
Блокировка потенциально нежелательных программ в Windows Defender
Тёмная тема в популярных приложениях Windows
Изменение имени учётной записи в Windows
Настройка iptables в Linux — базовый файл правил