DNS A против NS записи

42

Я пытаюсь понять DNS немного лучше, но я все еще не получаю записи A и NS полностью.

Насколько я понял, запись A говорит, какой IP-адрес принадлежит (суб) домену, пока мне все еще было ясно. Но, как я понял, запись NS сообщает, какие точки сервера имен принадлежат (суб) домену, и этот сервер имен должен сообщать, какой IP-адрес принадлежит (суб) домену. Но это уже было указано в записи A в том же файле DNS. Так может кто-нибудь объяснить мне, что именно делают записи и серверы имен NS, потому что, вероятно, я что-то понял неправильно.

edit: Как я правильно понимаю, запись NS говорит вам, что вы должны найти DNS-сервер с записью A для определенного домена, а запись A сообщает вам, какой ip-адрес принадлежит домену. Но какая польза от записи A и NS в один и тот же файл DNS? Если для определенного домена уже существует запись A, то зачем вам указывать на другой DNS-сервер, который, вероятно, предоставит вам ту же информацию?

Тиддо
источник
Простите высокомерие по старому вопросу, но я администратор DNS, и я не считаю, что какие-либо из проголосовавших ответов адекватно объясняют проблему. Я могу относиться к этому вопросу, потому что у меня было то же самое замешательство в мои первые годы. Я внес свой ответ.
Андрей Б

Ответы:

44

Некоторые примеры из foo.comфайла фиктивной зоны

 ....... SOA record & lots more stuff .......
 foo.com.      IN        NS        ns1.bar.com.

 foo.com.      IN        A         192.168.100.1
 ....... More A/CNAME/AAAA/etc. records .......

A Record = "Вызываемый хост foo.comживет по адресу 192.168.100.1"
NS Record = "Если вы хотите узнать о хостах в foo.comзоне, спросите имя сервера ns1.bar.com"

voretaq7
источник
3
Я люблю ссылки на foobar. : D
JohnThePro
2
@ Большая причина в том, что подчиненные серверы обычно уведомляются об изменениях зоны, потому что они перечислены как записи NS. Кроме того, если вы запрашиваете адрес авторитетного сервера ns1.foo.comв процессе поиска чего-то другого, и записи там не будет, вы получите, NXDOMAINи произойдут плохие вещи (но это будет работать для людей, которые опрашивали comродительский сервер, так как по-видимому, там были бы
клейкие
1
@JohnThePro - мой другой вариант был example.com, и я ненавижу ссылки на example.com :-)
voretaq7
3
@ voretaq7, поэтому в основном записи NS используются в качестве механизма резервного копирования и для уведомления этих серверов имен при изменении ip-адреса домена?
Тиддо
2
@tiddo и в качестве указателя, как описано выше и во многих других ответах. Могут быть и другие вещи, которые смотрят на записи NS, о которых я забыл, но это две большие, которые приходят на ум.
voretaq7
18

Это старый вопрос, но я думаю, что другие ответы на самом деле не касаются источника путаницы. NSзаписи на вершине следуют другому набору правил, чем NSзаписи под вершиной.

Из этих правил мы можем получить два разных поведения для того, что происходит, когда Aзапись существует на DNS-сервере с тем же именем:

  • Если NSзапись не определяет ссылку, другие данные могут существовать рядом с ней в той же зоне. Поскольку сервер считает себя авторитетным как для NSзаписи, так и для Aзаписи, конфликт отсутствует. Вот почему другие данные обычно живут рядом с NSзаписями на вершине зоны.
  • Если NSзапись действительно определяет реферала, то Aзапись эффективно «маскируется» срезом зоны . Эта Aзапись не является достоверной и не должна отображаться в разделе ответов авторитетного ответа. Потенциально его можно использовать как связующие данные, которые отображаются в дополнительном разделе реферала, но это все.

Смешение? Да это оно. Оставьте заметку в комментариях, если у вас возникнут проблемы с этим, и я посмотрю, что я могу сделать.

Андрей Б
источник
Что вы подразумеваете под APEX?
Райан-Нил Мес
@ Райан-Нил NSЗаписи в верхней части файла зоны.
Эндрю Б
9

Записи NS указывают серверы, предоставляющие службы DNS для этого доменного имени.

Записи A указывают имена хостов (например, www, ftp, mail) на один или несколько IP-адресов.

mrdenny
источник
7

запись A сопоставляет имя с IP-адресом. например

binary.example.com. В 192.168.1.42

утверждает, что binary.example.com. разрешает до 192.168.1.42

запись NS отображает имя на другой сервер имен, то есть на другой DNS-сервер, который обслуживает этот домен. то есть «я понятия не имею об IP-адресе этого имени, но если вы спросите там этот сервер имен, он может знать»

binary.example.com. IN NS otherbox.example.com
otherbox.example.com. В 192.168.1.2

Если вы спросите DNS-сервер, на котором есть 2 вышеуказанные записи для binary.example.com. (или www.binary.example.com. или foo.bar.binary.example.com). он скажет вам, что вам нужно будет попросить 192.168.1.2 перевести эти имена (ну, или DNS-сервер может сделать это за вас, или он может кэшировать разрешенные имена и вернуть их вам).

н.у.к.
источник
часто вы увидите записи DNS, в которых указаны записи NS и A для одних и тех же доменов. Но если запись NS сообщает, что нужно найти запись A, то какая польза от записи NS в этом же файле, если запись A уже существует?
Тиддо
это было мое любимое объяснение среди всех!
Бенджамин
6

Важно иметь записи NS и A в зоне, если вам нужно делегировать подзону на другой DNS-сервер.

Например, у нас есть DNS-сервер ns1.bar.com, уполномоченный для зоны bar.com. И нам нужно делегировать foo.bar.com на ns1.foo.bar.com. Поэтому нам нужно создать зону foo.bar.com и поместить туда следующие записи:

foo.bar.com.     IN NS ns1.foo.bar.com.
ns1.foo.bar.com. IN A  10.10.10.10

Если у нас не будет записи, делегирование не будет работать. Такие пары записей называются клейкими записями.

Склеивание записей - это единственный способ для DNS-системы найти точный IP-адрес уполномоченного DNS-сервера для некорневой зоны. Если вы проверите любой домен для записи NS с использованием digили увидите дамп трафика с помощью wireshark, вы увидите, что в ответе есть «дополнительный» раздел.

;; ANSWER SECTION:
foo.bar.com.             10800   IN      NS      ns1.foo.bar.com.

;; ADDITIONAL SECTION:
ns1.foo.bar.com.         7972    IN      A       10.10.10.10

при выполнении рекурсивного запроса, например, www.foo.bar.com, ваш DNS-клиент запросит полномочия DNS для зоны foo.bar.com и получит ответ ns1.foo.bar.com.

Чтобы пойти дальше, нужно отправить запрос на ns1.foo.bar.com, который обслуживается ... ns1.foo.bar.com. Чтобы разорвать цикл, делегирующий DNS-сервер должен добавить этот дополнительный раздел с записью А.

Сервер ns1.foo.bar.com должен иметь те же записи в своей зоне, поэтому он может быть доверенным для зоны foo.bar.com.

DukeLion
источник
Трудно было разобраться с проблемой курицы и яйца, пока я не увидел объяснение вашей записи клея!
Джон Скарпетейг
3

Записи NS существуют ЕДИНСТВЕННО с целью определения, КОТОРЫЕ ИМЕНИ ОБЯЗАТЕЛЬНО несут ответственность за определенный домен.

Запись A существует для «АДРЕСА» конкретного компьютера или службы.

Примеры для вас:

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

NS1.CP.COM NS2.CP.COM

Также внутри вашей панели DNS у вас будет домен, которым вы владеете (т.е. -mikesfunhouse.com), для которого вам нужны некоторые службы, например, веб-сайт.

Итак, у вас есть основная запись A, указывающая «mikesfunhouse.com» на «76.19.87.956» (очевидно, поддельный IP).

Затем вы создадите еще одну запись, www-запись, которая перенаправит поддомен «www». часть вашего основного сайта.

Короче говоря, вы используете записи A для преобразования пространства имен в IP-адрес.

JohnThePro
источник
1

Запись сервера имен сообщает Интернету, какой DNS-сервер содержит записи A, поэтому поиск записи A для субдомена - это примерно следующий процесс:

Поиск серверов имен для домена -> Запрос сервера имен для записи A субдомена

Джеймс Л
источник
Но если записи A уже находятся в этом же файле, зачем указывать записи NS?
Тиддо
1
Это все о том, что вы ищете. Запись NS похожа на отправную точку. Если сервер НИКОГДА не посещал ваш домен раньше, он сначала обнаружит, что сервер NS отвечает за ваш домен. После того как он идентифицирует этот сервер, он запросит у него запись A соответствующего домена.
JohnThePro