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

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

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

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

Мне нужны следующие связующие записи в домене 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 ?

0
задан 30 October 2019 в 13:24
1 ответ

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

Это означает, что он не имеет ничего общего с связующими записями или записями делегирования конкретно. Вы даже можете вообще не использовать его нигде, вы можете написать все прямо. Как это:если вы хотите сделать запись A, вы можете использовать для этого @, например @ A 192.0.2.1 , но вы также можете не использовать его и написать как domain.com. 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 A запись заранее, но кто должен ответить на запрос? Сервер, на котором мы делегируем зону, не смог, потому что мы все еще не знаем его адрес, пока не разрешим этот запрос. Эта проблема с курицей и яйцом решается связующей записью: делегирующий сервер будет хранить запись 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 - glue и 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-серверов. Если вы укажете один и тот же сервер дважды, это ничего не улучшит. В вашем конкретном случае будет достаточно одного связующего и одной записи делегирования.

1
ответ дан 4 December 2019 в 15:35

Теги

Похожие вопросы