Як працюють DNS-сервери?


14

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

  • Для того, щоб мій комп'ютер попросив службу DNS вирішити домен, DNS-сервер повинен знати мій комп'ютер. Я ніколи прямо не розповідав своєму комп’ютеру про будь-які DNS-сервери, тож як знати, який DNS-сервер він повинен використовувати? Чи провайдер якось передає цю інформацію на мій комп'ютер?

  • З цього приводу де розташовані ці сервери DNS? Чи є у мого провайдера десь запущені сервери DNS, якими користуються всі його клієнти?

  • DNS-сервер, який використовує мій комп'ютер, повинен знати всі домени, щоб мати змогу вирішити їх, як вони оновлюються / підтримуються записи?

  • Чи є якась центральна особа / реєстр / ..., яка подає зміни DNS-сервера, що відбулися?

  • Якщо я десь замовляю доменне ім’я, продавець повинен встановити зв’язок між IP-адресою та доменним ім’ям, яке вона мені продала. Як усі сервери DNS оновлюються, щоб знати про це посилання? Інакше кажучи, які дії здійснює продавець, щоб повідомити "Інтернет", на який зараз вказує цей домен?

Я знаю, це схоже на купу питань, але я думаю, що вони просто різні аспекти однієї і тієї ж історії. Може хтось скаже мені, як це все працює разом?

Відповіді:


15

На вашому комп’ютері є список серверів DNS, який він може запитувати для отримання додаткової інформації. У системі Unix або Linux це зберігається в /etc/resolv.conf. У Windows це налаштування в мережевих налаштуваннях. Часто ваш DNS-сервер постачається вашим DHCP-сервером, можливо разом з іншими параметрами, такими як домен за замовчуванням, проксі-сервери тощо.

Розташування використовуваного DNS-сервера не має великого значення. Поки ваш комп'ютер має IP-адресу та робочий маршрут за замовчуванням (тобто ви можете pingDNS-сервер), ви повинні мати можливість робити запити DNS.

DNS-сервери не повинні знати "всі" домени. Їм потрібно лише знати, хто «авторитетний», про що він дізнається з набору «кореневих» серверів. На кожному DNS-сервері є список «кореневих» серверів, і цей список змінюється нечасто. На одному з моїх серверів DNS налаштовано 18 кореневих серверів, і ця конфігурація з'явилася, коли я встановив DNS-сервер два роки тому, і якщо список кореневих серверів змінився з того часу, достатньо їх доступно, щоб у мене не було помітив це.

На мій сервер DNS, коли він запитує вирішити домен, який він не знає, робить запит на кореневий сервер, щоб дізнатися, який ще DNS-сервер є авторитетним для домену. Отримана відповідь може містити додаткові записи "NS" і бути позначеними неавторитетними; в цьому випадку мій DNS-сервер знає, що він повинен "слідувати за ланцюжком" і робити новий запит на новий сервер. Врешті-решт, він знаходить DNS-сервер, який забезпечує авторитетну інформацію, і можуть бути зроблені запити, які не є лише записами NS. Звичайно, два (найпоширеніші) - MX (обмін поштою).

Кожен TLD (домен верхнього рівня), як COM, NET, ORG, CA, Великобританія тощо, веде власний реєстр субдоменів. ("Піддомен" - це будь-який домен в іншому домені, тому "example.com" - це субдомен в межах "com", а "com" - це навіть піддомен в межах ".", "Root".) Правила для кожного реєстру застосовуються лише до TLD, який він адмініструє - тобто існує абсолютно різний набір критеріїв для кожного TLD з кодом країни, а "загальні" TLD управляються різними організаціями з різною політикою. Але всі вони підтримують DNS-сервери для свого TLD, що з командного рядка ви можете бачити за допомогою основних інструментів запитів DNS:

[ghoti@pc ~]$ host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$ 

Коли ви купуєте домен у реєстратора (якого існує багато), він реєструє інформацію про домен до реєстру (з них лише один на TLD). Відповідальність кожного реєстру є за підтримку списку зареєстрованих доменів у межах їх TLD та підтримку DNS-серверів, які надають цю інформацію іншим серверам.


-1

Робота DNS-сервера як протокол - це набір правил обміну даними в Інтернеті в приватній мережі, наприклад, протокол TCP / IP. Він просто перетворює зручний для користувачів домен в Інтернет-протокол. Це може бути будь-яке доменне ім’я, придбане власником веб-сайту у будь-якого надійного постачальника домену, такого як domainia або інше. Візьмемо приклад домену як "myweb.com", який, в свою чергу, буде перетворений в IP, наприклад, 71.12.252.1, який буде розпізнаний комп'ютером по мережі.


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