# Редактирование файла .zone на DNS-сервере NSD

Заходим по ssh на сервер primary-dns: **ns1.trotoscoping.tech** (`89.111.140.138`)

<pre class="language-markup"><code class="lang-markup">cd /var/mydns
sudo nano /var/mydns/nsd/trotoscoping.online.zone

1. Меняем значение serial зоны - 7-я строка файла
**serial** в формате &#x3C;год>&#x3C;месяц>&#x3C;день>&#x3C;релиз_за_день> например: 2024082101

$ORIGIN trotoscoping.online.
$TTL 86400

@ IN SOA ns1.trotoscoping.tech. admin.trotoscoping.online. (
                <a data-footnote-ref href="#user-content-fn-1">2024091302</a>      ; serial
                28800           ; refresh
                7200            ; retry
                86400           ; expire
                3600            ; min TTL
                )

2. Вносим другие изменения/дополнение записей dns
3. Сохраняем
4. Проверяем, что в файле нет ошибок:
docker exec mydns /usr/sbin/nsd-checkzone -p trotoscoping.online /etc/nsd/trotoscoping.online.zone
На экран выводятся все записи dns зоны и в последней строке статус "zone trotoscoping.online is ok" или сообщения об ошибках.

5. Даём primary серверу команду на загрузку нового файла и обновление зоны:
/var/mydns/reload_zone.sh trotoscoping.online

6. Можем убедиться, что secondary сервер также обновил данные зоны, 
посмотрев последние записи в log-файле:
tail -n 5 /var/mydns/log/nsd.log
 
Видим примерно такое:
[2024-08-20 15:43:33.872] nsd[32]: info: control cmd:  reload trotoscoping.online
[2024-08-20 15:43:33.875] nsd[33]: info: zone trotoscoping.online read with success
[2024-08-20 15:43:33.892] nsd[110]: info: ixfr for trotoscoping.online. from 89.111.141.145

7. При желании, можем сделать запрос самому серверу по вновь введенным данным:
dig &#x3C;запись_dns> @&#x3C;адрес_сервера> &#x3C;тип_записи> например:
dig test.trotoscoping.online @127.0.0.1 NS
@127.0.0.1 - если мы все еще в консоли сервера
с любого другого компьютера: @ns1.trotoscoping.tech


</code></pre>

{% hint style="info" %}
До шага 5 инструкции выше, серверы dns работают с прежней версией записей зоны, которые хранятся в БД серверов. То есть, можно редактировать и проверять как угодно долго.\
Реальное обновление информации на серверах происходит **только на шаге 5**.\
При этом, в момент обновления зоны primary сервер сам **автоматически синхронизирует данные** зоны с secondary сервером(-ами) (отдельных команд не требуется).
{% endhint %}

[^1]: Serial


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.sunbay4.ru/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
