DNS-зона

Протоколы и стандарты
Административная часть пространства DNS, за которую отвечает определённая организация или сервер.
← Вернуться к глоссарию

Что такое DNS-зона?

DNS-зона - это отдельная часть пространства имён DNS, которой управляет конкретная организация или администратор. Зона содержит DNS-записи одного или нескольких доменов и обслуживается авторитетными серверами имён. Домен является именем в дереве DNS, а зона - административной границей, определяющей, какие серверы имён отвечают на запросы.

Домен и зона

Важно понимать различие:

Домен

Домен - это имя в иерархии DNS:

example.com (domain)

└── www.example.com (subdomain)

└── blog.example.com (subdomain)

└── api.example.com (subdomain)

Зона

Зона определяет административное управление записями:

Единая зона для домена и поддоменов:
example.com zone contains:

- example.com

- www.example.com

- blog.example.com

- api.example.com

Managed by: ns1.example.com, ns2.example.com

Отдельная зона делегированного поддомена:
example.com zone contains:

- example.com

- www.example.com

- Delegation: api.example.com → different nameservers

api.example.com zone (separate) contains:

- api.example.com

- v1.api.example.com

- v2.api.example.com

Managed by: ns1.apihost.com, ns2.apihost.com

Компоненты зоны

Файл зоны

Текстовый файл со всеми DNS-записями зоны:

; example.com zone file

$TTL 3600

@ IN SOA ns1.example.com. admin.example.com. (

2024010101 ; Serial

7200 ; Refresh

3600 ; Retry

1209600 ; Expire

3600 ; Minimum TTL

)

; Nameserver records

@ IN NS ns1.example.com.

@ IN NS ns2.example.com.

; A records

@ IN A 203.0.113.50

www IN A 203.0.113.50

blog IN A 203.0.113.51

; MX records

@ IN MX 10 mail.example.com.

mail IN A 203.0.113.52

; CNAME records

ftp IN CNAME www.example.com.

; TXT records

@ IN TXT "v=spf1 include:_spf.google.com ~all"

Запись SOA (начало полномочий)

Каждая зона должна содержать ровно одну запись SOA:

example.com.  IN  SOA  ns1.example.com. admin.example.com. (

2024010101 ; Serial

7200 ; Refresh

3600 ; Retry

1209600 ; Expire

3600 ; Minimum TTL

)

Поля SOA:
ПолеНазначениеПример значения
Primary NSГлавный сервер имёнns1.example.com
Admin EmailКонтакт (@ → .)admin.example.com ([email protected])
SerialНомер версии зоны2024010101
RefreshИнтервал проверки вторичными NS7200s (2 часа)
RetryИнтервал повтора при сбое обновления3600s (1 час)
ExpireЧерез сколько вторичный NS прекращает попытки1209600s (14 дней)
Minimum TTLДлительность отрицательного кэширования3600s (1 час)

Записи NS (серверы имён)

Указывают, какие серверы являются авторитетными для зоны:

example.com.  IN  NS  ns1.example.com.

example.com. IN NS ns2.example.com.

Эти записи сообщают, к каким серверам обращаться за записями этой зоны.

Типы зон

Первичная зона (master)

Авторитетный источник, в котором редактируются записи зоны:

ns1.example.com (primary)

→ Zone file edited here

→ Changes made directly

→ Notifies secondaries of updates

Вторичная зона (slave)

Доступные только для чтения копии, реплицируемые с первичной зоны:

ns2.example.com (secondary)

→ Retrieves zone data from primary

→ Cannot be edited directly

→ Automatically syncs based on SOA refresh interval

Перенос зоны (AXFR):
1. Secondary checks SOA serial number

2. If primary serial is higher → request full zone transfer

3. Primary sends entire zone

4. Secondary updates its copy

Инкрементный перенос (IXFR):
1. Secondary requests only changes since last serial

2. Primary sends diff

3. More efficient for large zones with small changes

Прямая зона

Сопоставляет имена доменов с IP-адресами (самый распространённый вариант):

example.com → 203.0.113.50

www.example.com → 203.0.113.50

Обратная зона

Сопоставляет IP-адреса с именами доменов (записи PTR):

50.113.0.203.in-addr.arpa → example.com

Используется для:

Делегирование зоны

Делегирование создаёт отдельные зоны для поддоменов:

Родительская зона (example.com)

; example.com zone

@ IN A 203.0.113.50

www IN A 203.0.113.50

; Delegate api.example.com to different nameservers

api IN NS ns1.apihost.com.

api IN NS ns2.apihost.com.

; Glue records (if needed)

ns1.api IN A 198.51.100.1

ns2.api IN A 198.51.100.2

Делегированная зона (api.example.com)

Полностью отдельный файл зоны на других серверах имён:

; api.example.com zone (on ns1.apihost.com)

@ IN A 198.51.100.10

v1 IN A 198.51.100.11

v2 IN A 198.51.100.12

Зачем делегировать?

Управление зоной

Управление серийным номером

Серийные номера отслеживают версии зоны, обычно в формате ГГГГММДДnn:

2024010101  ; January 1, 2024, version 01

2024010102 ; January 1, 2024, version 02

2024010201 ; January 2, 2024, version 01

Критическое правило: серийный номер должен увеличиваться при каждом изменении, иначе вторичные зоны не обновятся.

Безопасность переноса зоны

Проблема: перенос зоны раскрывает все DNS-записи. Решение: ограничить перенос зоны авторизованными вторичными серверами. Конфигурация BIND:
zone "example.com" {

type master;

file "/var/named/example.com.zone";

allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only

notify yes;

};

TSIG (подпись транзакции): аутентифицируйте перенос зоны с помощью общих ключей:
key "transfer-key" {

algorithm hmac-sha256;

secret "base64-encoded-key";

};

allow-transfer { key transfer-key; };

Проверка конфигурации зоны

Запрос записи SOA

dig example.com SOA

; ANSWER SECTION:

example.com. 3600 IN SOA ns1.example.com. admin.example.com. (

2024010101 7200 3600 1209600 3600 )

Запрос записей NS

dig example.com NS

; ANSWER SECTION:

example.com. 86400 IN NS ns1.example.com.

example.com. 86400 IN NS ns2.example.com.

Запрос переноса зоны (AXFR)

dig @ns1.example.com example.com AXFR

# If allowed, returns entire zone

# If denied, returns transfer failed

Большинство общедоступных серверов имён запрещают AXFR, чтобы предотвратить раскрытие информации.

Распространённые конфигурации зон

Простой веб-сайт

example.com zone:

@ A 203.0.113.50

www A 203.0.113.50

@ MX 10 mail.example.com

mail A 203.0.113.51

@ TXT "v=spf1 mx -all"

Зона с несколькими сервисами

example.com zone:

@ A 203.0.113.50

www A 203.0.113.50

blog CNAME hosting.wordpress.com.

shop CNAME shops.myshopify.com.

cdn CNAME d111111abcdef8.cloudfront.net.

@ MX 10 aspmx.l.google.com.

Делегированные поддомены

example.com zone:

@ A 203.0.113.50

www A 203.0.113.50

; Delegate api to AWS Route 53

api NS ns-123.awsdns-01.com.

api NS ns-456.awsdns-02.net.

; Delegate cdn to Cloudflare

cdn NS ns1.cloudflare.com.

cdn NS ns2.cloudflare.com.

Рекомендации по файлу зоны

1. Всегда увеличивайте серийный номер: после каждого изменения, иначе вторичные зоны не обновятся.

2. Используйте даты в серийных номерах: формат ГГГГММДДnn понятен при проверке.

3. Ограничивайте перенос зоны: разрешайте его только авторизованным вторичным серверам.

4. Используйте несколько серверов имён: не менее 2, желательно в разных сетях.

5. Задавайте подходящие TTL: балансируйте пользу кэширования и скорость обновления.

6. Проверяйте перед применением: проверяйте синтаксис файла зоны до загрузки.

7. Контролируйте переносы зоны: убеждайтесь, что вторичные зоны синхронизируются.

8. Документируйте делегирование: отмечайте, какие зоны делегированы и куда.

9. Создавайте резервные копии файлов зон: регулярные копии предотвращают потерю данных.

10. Используйте контроль версий: отслеживайте изменения файлов зон во времени.

Расширенные возможности зоны

DNSSEC (подпись зоны)

Криптографически подписывает записи зоны:

example.com.  IN  A       203.0.113.50

example.com. IN RRSIG A 8 2 3600 (

signature-data-here )

Защищает от отравления кэша и подмены данных.

Динамический DNS (DDNS)

Разрешает программно обновлять зону:

# Update A record dynamically

nsupdate -k Kupdate.key <<EOF

server ns1.example.com

update delete www.example.com A

update add www.example.com 300 A 203.0.113.51

send

EOF

Полезен для:

Представления зоны (split horizon DNS)

Отдаёт разные данные зоны в зависимости от IP-адреса клиента:

Internal clients: example.com → 10.0.0.50 (internal)

External clients: example.com → 203.0.113.50 (public)

Сценарии использования:

Устранение неполадок зоны

Сбои переноса зоны

Симптом: вторичные зоны не синхронизированы. Проверка:
# Check if primary allows transfers

dig @ns1.example.com example.com AXFR

# Check secondary logs for errors

tail -f /var/log/named.log

Решения:

Серийный номер не увеличивается

Симптом: изменения не распространяются на вторичные зоны. Решение: всегда увеличивайте серийный номер при каждом изменении зоны.

Делегирование не работает

Симптом: поддомен не разрешается. Проверка:
# Verify delegation

dig example.com NS

dig api.example.com NS

# Should show different nameservers for delegated subdomain

Решения:

DNS-зоны являются основой распределённого управления DNS. Понимание структуры зоны, делегирования и управления позволяет эффективно проектировать DNS для организаций любого масштаба.

Применяйте эти знания на практике

Используйте API DomScan для проверки доступности доменов, их состояния и многого другого.