#Что происходит и когда применима инструкция
Если домен использует собственные серверы имён вроде ns1.example.com, при смене их IP необходимо согласовать адреса в зоне родителя (glue/host objects), A/AAAA в самой зоне и доступность сервера DNS. Изменение только A-записи ns1 в своей зоне может не исправить путь к авторитетному серверу.
#Причины: как различить похожие случаи
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Glue-запись у родителя осталась старойIP собственного NS в реестре/у регистратора не соответствует новому серверу. | dig +trace возвращает старую подсказку адреса сервера или не достигает его. | Обновить адрес зарегистрированного хоста у регистратора. |
| NS указывает на недоступный серверНовый IP не слушает DNS по UDP/TCP 53 либо адрес не маршрутизируется. | Прямой dig @новый-ip даёт timeout или отсутствие авторитетного ответа. | Проверить службу, маршрут и ограниченные правила сети, не открывать рекурсию всем. |
| Серверы возвращают разные или неверные зоныОдин NS обслуживает старую копию или не знает новую зону. | SOA/NS/A различаются между NS либо флаг AA отсутствует. | Синхронизировать авторитетные зоны и проверить BIND9. |
#Диагностика и пошаговое устранение
- 1. Зафиксируйте старые и новые адресаОткройте кабинет регистратора и панель управления DNS. Выпишите NS домена, прежние и новые IP каждого собственного сервера имён, дату изменения, состояние BIND9 и TTL. Если NS вида
ns1.other-provider.net, адреса обычно обновляет владелец этого домена — не путайте это с собственными glue у регистратора. Оставьте работающий старый узел доступным на период миграции, если это возможно.
- 2. Проследите делегирование от корняВ терминале с
digвыполните трассировку. Запишите, какие имена NS и адреса возвращает родительская зона, на каком шаге прекращаются ответы. Если+traceне работает из вашей сети, сравните результаты с внешней сети и панелью реестра; ограниченная сеть может блокировать прямые запросы. - Домен заменить своимLinux · Терминал (Bash)КомандаДомен заменить своим. Команда только читает DNS, не изменяет NS.
dig +trace example.com NS
- 3. Проверьте NS и адреса непосредственно в зонеЗапросите NS и A/AAAA каждого NS. Если у родителя NS правильный, а адреса собственного NS старые, проблема часто именно в glue или промежуточном кэше. Если NS принадлежит внешнему поставщику, обратитесь к нему для обновления адреса; самостоятельное изменение своей зоны чужое имя не исправит.
- Заменить настоящие имена; не каждое имя сервера обязано иметь AAAALinux · Терминал (Bash)КомандаЗаменить настоящие имена; не каждое имя сервера обязано иметь AAAA.
dig +short NS example.comdig +short A ns1.example.comdig +short AAAA ns1.example.com
- 4. Проверьте доступность нового IP именно как DNS-сервераУзнайте новый IP из панели хостинга, затем прямым DNS-запросом проверьте SOA. При успехе сервер отвечает авторитетно (флаг
aa) и отдаёт SOA ожидаемой зоны. Если timeout — проверьте маршрут и системные журналы DNS; не открывайте рекурсию для Интернета, достаточно авторитетных ответов для зоны. - 192.0.2.53 — документационный IP; заменить фактическимLinux · Терминал (Bash)Команда192.0.2.53 — документационный IP; заменить фактическим. Проверяются UDP 53 и TCP 53.
dig @192.0.2.53 example.com SOA +norecursedig +tcp @192.0.2.53 example.com SOA +norecurse
- 5. Исправьте адрес зарегистрированного имени сервераДля
ns1.example.comвойдите в кабинет регистратораexample.com, найдите раздел «Зарегистрированные серверы имён», «Дочерние серверы» или «Host objects» (название различается). Откройте конкретный NS и обновите его IP на проверенный действующий. Сохраните скриншот прежних адресов и подтверждение изменения. Если интерфейс не позволяет — запросите обновление glue у регистратора, не создавайте случайный новый NS.
- 6. Согласуйте записи A/AAAA и сами NS зоныВ авторитетной зоне проверьте A/AAAA
ns1.example.comи записи NS. Они должны быть согласованы с данными родителя и реально существующими серверами. При нескольких NS убедитесь, что все обслуживают одну актуальную зону. Если BIND9 управляется вручную, перед изменением сделайте копию файла зоны, выполнитеnamed-checkzoneс подставленными реальными именем зоны и путём; при ошибке не перезагружайте BIND9.
- 7. Проверьте новое делегирование после обновленияПосле сохранения изменений у регистратора вновь проверьте
dig +trace, а отдельно — прямые ответы каждого NS по новому IP. Обновление родительских записей и кэшей может занять время с учётом TTL; не меняйте адреса повторно при первом старом ответе. При частичных ошибках сравните ответы независимых резолверов и точные glue у родителя.
- 8. Проверьте весь домен и сохраните способ возвратаКогда NS отвечает, запросите A, AAAA, MX домена, откройте HTTPS-сайт и проверьте приём почты. Проблема DNS может затронуть не только веб-страницу. Сохраните исходные значения glue/A/AAAA, план возврата старых адресов и результаты проверок. Если часть делегирования нарушена — сначала устраните недоступный NS или верните проверенный старый IP через регистратора, а не отключайте службы наугад.
#Как проверить, что неисправность устранена
После dig +trace цепочка ведёт к действующим NS, прямые ответы каждого авторитетного сервера имеют корректный SOA, а публичные резолверы возвращают рабочие A/AAAA/MX. Проверка одной машины с локальным hosts не подтверждает исправление делегирования.
#Если не получилось и как отменить правки
Верните исходные адреса зарегистрированных NS в кабинете регистратора и согласованные A/AAAA в зоне, если прежние серверы ещё готовы обслуживать домен. Запросите поддержку регистратора, если старый IP уже недоступен. Откат не мгновенен из-за DNS-кэшей.
Если причина не установлена, соберите точный текст ошибки, время, имя домена, результаты проверок без паролей и приватных ключей. Передайте их ответственному администратору или поддержке регистратора, DNS-провайдера либо хостинга. Не повторяйте опасные изменения без резервной копии.