Что такое SOA-запись?
SOA описывает авторитетную зону DNS: основной NS, контакт, serial и таймеры обновления, retry, expiry и negative TTL.
Структура SOA-записи
Поля компонента
MNAME, RNAME, serial, refresh, retry, expire и minimum образуют единое описание зоны.
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial number
3600 ; Refresh (1 hour)
900 ; Retry (15 minutes)
604800 ; Expire (1 week)
86400 ; Minimum TTL (1 day)
)
Разбор полей
Поля должны соответствовать синтаксису DNS и политике реестра; serial увеличивайте при изменении зоны.
| Поле | Назначение | Типичное значение |
|---|---|---|
| MNAME | Основной сервер имён | ns1.example.com |
| RNAME | Контакт администратора (@ заменён на .) | admin.example.com |
| Serial | Номер версии зоны | YYYYMMDDnn |
| Refresh | Интервал проверки вторичным сервером | 3600–86400 |
| Retry | Повтор после неудачного обновления | 900–3600 |
| Expire | Срок отказа вторичного сервера | 604800–2419200 |
| Minimum | TTL отрицательного кэширования | 300–86400 |
Поля SOA
MNAME (основной сервер имён)
MNAME указывает авторитетный primary server для зоны.
RNAME (ответственный контакт)
RNAME кодирует контакт администратора зоны в DNS-формате, не публикуйте лишние персональные данные.
admin.example.com = [email protected]
hostmaster.example.com = [email protected]
Номер serial
Serial позволяет вторичным серверам понять, что зона обновилась.
Common format: YYYYMMDDnn
Example: 2024010102 (Jan 1, 2024, revision 2)
Must increment with every zone change
Secondaries compare to know if updates needed
Параметры времени
Refresh задаёт проверку обновлений, retry - повтор после ошибки, expire - срок отказа от старой зоны, minimum связан с отрицательным кэшем.
Recommended: 3600-86400 seconds (1-24 hours)
Recommended: 900-3600 seconds (15-60 minutes)
Recommended: 604800-2419200 seconds (1-4 weeks)
How long to cache "domain doesn't exist" responses
Recommended: 300-86400 seconds
Просмотр SOA
С помощью dig
Проверьте authoritative ответ, serial, TTL и источник.
dig example.com SOA
# Output:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. 2024010101 3600 900 604800 86400
С помощью nslookup
Сравните SOA нескольких NS и зафиксируйте расхождения и время запроса.
nslookup -type=SOA example.com
Лучшие практики SOA
Используйте согласованный serial, независимые NS, документированные таймеры, мониторинг и проверку DNSSEC.
Частые проблемы SOA
Ошибки serial, расхождение MNAME, просроченный expire, неверный RNAME или SERVFAIL могут нарушить делегацию и кэширование.
| Проблема | Причина | Решение |
|---|---|---|
| Не удаётся передать зону | Serial не увеличен | Всегда обновляйте serial |
| У вторичных серверов устаревшие данные | Слишком долгий refresh | Уменьшите интервал refresh |
| Высокая нагрузка DNS | Слишком короткий refresh | Увеличьте интервал refresh |
| NXDOMAIN кэшируется слишком долго | Большой minimum TTL | Уменьшите значение minimum |