Що таке 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, порядок дій для повернення описано в плані відкату міграції. Після повного перемикання виконайте перевірку сайту за загальним чек-листом перевірки після міграції.