Назад | Перейти на главную страницу

В чем разница между записями @ и ns

Я пытаюсь понять разницу между записью A с @ и ns записи.

Я пытаюсь указать субдомен testing.example.com на другой сервер, у которого будет собственный DNS сервер mail сервер и сможет опубликовать свой dkim, spf & dmarc записи.

Насколько я понимаю из ответа sysadmin1138 здесь: Склеить записи для поддоменов?

Мне нужны следующие записи клея в example.com домен

example.com:
[...]
testing.example.com.     IN NS ns1.testing.example.com.
testing.example.com.     IN NS ns2.testing.example.com.
ns1.testing.example.com. IN  A 113.197.55.206
ns2.testing.example.com. IN  A 113.197.55.206

Так что я должен также добавить A запись с @ и укажите на 113.197.55.206?

@ - это просто «происхождение». Он используется там, где синтаксически должно идти доменное имя, но это имя совпадает с исходным. Т.е. в конфигурации BIND вы сказали zone "domain.com", то начало координат domain.com (до переустановки директивой $ ORIGIN в файле зоны) и @ NS ns такой же как domain.com. NS ns.domain.com.. Обратите внимание: к любой записи без конечной точки автоматически добавляется источник, но для использования этой функции вам нужно было оставить «пустое имя» для записи NS, что означает другие вещи (в этом случае подумайте о неправильном синтаксисе). Так был изобретен символ @.

Это означает, что это не имеет ничего общего с связующими записями или записями делегирования. Вы даже можете вообще не использовать его где-либо, вы можете написать все прямо. Вот так: если вы хотите сделать запись A, вы можете использовать для этого @, например @ A 192.0.2.1, но вы также можете не использовать его и писать как domain.com. A 192.0.2.1 (при условии, что происхождение по-прежнему domain.com).

Читать http://www.zytrax.com/books/dns/apa/origin.html

Клей нужен, когда поддомен имеет имя DNS-сервера внутри своей зоны. Давайте делегировать sub.example.com к ns.sub.example.com который имеет адрес 192.0.2.2. Чтобы это сработало, нам нужно решить, что ns.sub.example.com Запись заранее, но кто должен ответить на запрос? Сервер, на котором мы делегируем зону, не смог, потому что мы все еще не знаем его адрес, пока не разрешим этот запрос. Эта проблема с курицей и яйцом решена с помощью клейкой записи: делегирование сервер будет хранить ns.sub.example.com A 192.0.2.2 запись. Затем мы также можем использовать запись делегирования сервера имен, sub.example.com. NS ns.sub.example.com..

Или, если ваше происхождение example.com, это было бы ns.sub A 192.0.2.2 - клей и sub NS ns.sub - делегирование. Символ @ здесь не используется, потому что мы нигде не встречаем «пустое имя».

Или вы можете установить $ORIGIN sub.example.com и тогда нужно будет использовать @: наши записи будут записаны как ns A 192.0.2.2 и @ NS ns.

Обратите внимание: несмотря на то, что я предложил три способа выразить это делегирование с помощью клейкой записи, все три случая выражают одну и ту же информацию и будут работать одинаково. Это просто синтаксическая разница, а не принципиальная.

Если вы делегируете зону серверу, имя которого не находится внутри этой зоны, клей не нужен. Например, если sub.example.com делегируется ns.example.org, затем один sub.example.com. NS ns.example.org. необходимо, потому что ns.example.orgАдрес будет разрешен другим способом.

И замечание. Тот факт, что регистраторы DNS требуют, чтобы вы указали как минимум два DNS-сервера, не означает, что вам также нужно требовать несколько DNS-серверов. Если вы укажете один и тот же сервер дважды, это ничего не улучшит. В вашем конкретном случае будет достаточно одного клея и одной записи о делегировании.