Запис DNS A проти NS


42

Я намагаюся зрозуміти DNS трохи краще, але я все одно не отримую записи A і NS повністю.

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

редагувати: Як я вас правильно зрозумів, запис 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"


3
Я люблю посилання на foobar. : D
JohnThePro

2
@ Тіддо великою причиною є те, що рабовласницькі сервери зазвичай отримують повідомлення про зміни в зоні, оскільки вони перераховані як записи NS. Також якщо ви запитаєте авторитетний сервер на ns1.foo.comадресу адреси в процесі пошуку чогось іншого, а запис там не існує, ви отримаєте NXDOMAINі погані речі відбудуться (але це буде працювати для людей, які запитували comбатьківський сервер, оскільки імовірно, там буде клей A записи)
voretaq7

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?
Райан-Ніл Мес

@ Ryan-Neal NSЗаписи у верхній частині файлу зони.
Ендрю Б

9

Записи NS вказують сервери, які надають послуги DNS для цього доменного імені.

A записи хостів імена (наприклад, www, ftp, пошта) на одну або кілька IP-адрес.


7

a Запис відображає ім'я до IP-адреси. напр

binary.example.com. В А 192.168.1.42

зазначає, що binary.example.com. вирішує до 192.168.1.42

запис NS відображає ім'я іншому серверу імен, тобто іншому DNS-серверу, який обслуговує цей домен. тобто "Я не маю уявлення про IP-адресу цього імені, але якщо ви перейдете до цього сервера імен, він може знати"

binary.example.com. В НС 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або побачите дамп трафіку за допомогою проводки, ви побачите, що у відповідь є "додатковий" розділ.

;; 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-сервер, слід додати цей додатковий розділ із записом A.

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


Мені було важко обернутись головою навколо проблеми з куркою та яйцями, поки я не побачив пояснення вашого запису з клеєм!
Джон Скарпетейг

3

Записи NS існують САМО для того, щоб визначити, ЯКІ НАЗВАЛЬНИКИ відповідають за певний домен.

Існує запис про "АДРЕСУ" певної машини чи послуги.

Приклади для вас:

На панелі керування DNS ви побачите деякі записи NS, це ваші NAMESERVERS або основний апарат, який відповідає за Інтернет в Інтернеті, де розміщені речі у вашому домені.

NS1.CP.COM NS2.CP.COM

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

Тож, що ви будете робити, - це запис первинного A, вказуючи на "mikesfunhouse.com" на "76.19.87.956" (явно підроблений IP).

Тоді ви зробите ще один запис, запис www, який перенаправить піддомен "www". частина на ваш основний сайт.

Словом, ви використовуєте записи A для перетворення простору імен в IP-адресу.


1

Запис сервера імен повідомляє Інтернету, на якому DNS-сервері зберігаються записи A, тож для пошуку запису A для субдомену це приблизно такий процес:

Знайдіть сервери імен для домену -> Запитайте сервер імен для запису A піддомену


Але якщо записи A вже є в тому самому файлі, навіщо вам вказувати записи NS?
Тіддо

1
Це все про те, що ви шукаєте. Запис NS - це як відправна точка. Якщо сервер ніколи раніше не відвідував ваш домен, він спершу знайде сервер NS, який відповість за ваш домен. Після того, як він ідентифікував цей сервер, він запитав його на запис A відповідного домену.
JohnThePro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.