Что такое DNS-зона и когда её переносят
DNS-зона — это файл с записями одного домена: A, AAAA, MX, TXT, CNAME, NS. Зону переносят при смене DNS-хостинга, миграции с BIND на PowerDNS или при консолидации нескольких серверов имён в один.
Перед переносом выгрузите текущую зону в текстовый формат — это резервная копия на случай ошибки и источник для импорта на новый сервер.
Экспорт зоны из BIND
Файлы зон в BIND обычно лежат в каталоге /etc/bind/zones/ или /var/named/. Проверьте и экспортируйте зону командой:
named-compilezone -f text -o example.com.zone example.com /etc/bind/zones/db.example.com
cat example.com.zone
Если зона хранится в базе (BIND с DLZ) или доступ к файлам ограничен, выгрузите зону через AXFR-запрос с сервера, у которого есть право на трансфер.
Перенос зоны через AXFR между BIND-серверами
AXFR — это протокол полной передачи зоны между серверами имён. На старом сервере разрешите трансфер для нового IP-адреса в named.conf:
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
allow-transfer { 203.0.113.10; };
};
На новом сервере запросите зону:
dig axfr example.com @203.0.113.5
Полученный вывод сохраните в файл зоны и подключите как master на новом сервере.
Импорт зоны в PowerDNS
PowerDNS хранит зоны в базе данных (MySQL, PostgreSQL или SQLite), а не в текстовых файлах. Импортируйте зону утилитой pdnsutil:
pdnsutil create-zone example.com
pdnsutil load-zone example.com example.com.zone
pdnsutil rectify-zone example.com
Команда rectify-zone обязательна для зон с DNSSEC или большим количеством записей — она пересчитывает служебные поля в базе PowerDNS.
Проверка зоны перед переключением
Сверьте количество записей и содержимое ключевых полей на старом и новом сервере:
dig +short A example.com @old-ns
dig +short A example.com @new-ns
dig +short MX example.com @new-ns
Проверьте также сериал зоны (SOA) — он должен быть выше, чем на старом сервере, иначе вторичные серверы имён откажутся принимать обновление. Общий подход к переносу без простоя описан в статье про управление DNS при миграции.
Как избежать простоя при смене NS-серверов
Снизьте TTL записей до 300 секунд за 24-48 часов до переноса — это ускорит распространение изменений. Держите старые серверы имён рабочими минимум 72 часа после смены NS у регистратора: часть резолверов кэширует старые записи NS дольше положенного.
Итог: чек-лист переноса DNS-зоны
- Экспортируйте текущую зону в текстовый файл как резервную копию.
- Перенесите зону через AXFR или ручной импорт в PowerDNS.
- Снизьте TTL записей за 24-48 часов до переключения.
- Проверьте серийный номер SOA и содержимое A, MX, TXT записей.
- Держите старые серверы имён активными минимум 72 часа после переключения.
- Сохраните список поддоменов с отдельной делегацией — такие NS-записи проверяют отдельно, это частый источник расхождений после переноса.
Если что-то пошло не так после смены NS, порядок действий для возврата описан в плане отката миграции. После полного переключения выполните проверку сайта по общему чек-листу проверки после миграции.