# Перенос DNS-зоны между серверами имён: BIND и PowerDNS

> Перенос DNS-зоны между серверами имён: экспорт из BIND, передача через AXFR, импорт в PowerDNS утилитой pdnsutil и переключение NS без простоя.

## Что такое 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 при миграции](https://www.zevshost.net/ru/kb/migratsia-dns-bez-prostoya/).

## Как избежать простоя при смене NS-серверов

Снизьте TTL записей до 300 секунд за 24-48 часов до переноса — это ускорит распространение изменений. Держите старые серверы имён рабочими минимум 72 часа после смены NS у регистратора: часть резолверов кэширует старые записи NS дольше положенного.

## Итог: чек-лист переноса DNS-зоны

- Экспортируйте текущую зону в текстовый файл как резервную копию.
- Перенесите зону через AXFR или ручной импорт в PowerDNS.
- Снизьте TTL записей за 24-48 часов до переключения.
- Проверьте серийный номер SOA и содержимое A, MX, TXT записей.
- Держите старые серверы имён активными минимум 72 часа после переключения.
- Сохраните список поддоменов с отдельной делегацией — такие NS-записи проверяют отдельно, это частый источник расхождений после переноса.

Если что-то пошло не так после смены NS, порядок действий для возврата описан в [плане отката миграции](https://www.zevshost.net/ru/kb/migratsia-plan-otkata/). После полного переключения выполните проверку сайта по общему [чек-листу проверки после миграции](https://www.zevshost.net/ru/kb/migratsia-proverka-posle/).

---

Источник: https://www.zevshost.net/ru/kb/migratsia-dns-zony-bind-powerdns/
