Dns сервер забезпечує. Як працює DNS

визначення

DNS (Domain Name System, «система доменних імен») - комп'ютерна розподілена система для отримання інформації про домени. Основна область застосування даної системи - перетворення імені хоста в IP-адресу і надання даних про маршрутизації пошти. Хост - це будь-який комп'ютер або сервер, підключений до локальної мережі або інтернету.

Принцип роботи

Схематичне представлення процесу визначення визначення IP-адреси по вводиться імені домена

Робота DNS досить проста, але через незнання її основ виникає основна маса проблем і питань при перенесенні існуючого доменного імені та реєстрації нового.

Зупинимося трохи докладніше на описі самої схеми.

  • Коли користувач запускає веб-браузер і вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).
  • Якщо DNS-сервери провайдера чи не виявляють в своєму кеші інформації про запитуваній сайті, то відправляють запит на кореневі DNS-сервери (2).
  • Кореневої DNS-сервер шукає в своїй базі даних інформацію про серверах імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє їх Кешуються DNS-сервера провайдера (3).
  • Після того, як кешуючий DNS-сервер інтернет-провайдера отримує інформацію про серверах імен хостинг-провайдера він опитує кожен з них (4) і, в разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш. Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту.
  • Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, яке здійснило запит сайту (6).
  • І вже після цього браузер, отримавши IP-адреса запитуваного сайта, переходить на сам сайт (7 і 8).

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

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

В основному якщо у вас виникла вищеописана ситуація, то хвилюватися не варто. Слід почекати деякий час для оновлення інформації на кореневих DNS-серверах і DNS-серверах провайдера.

А поки ви очікуєте, про всяк випадок можете самостійно продіагностувати коректність налаштувань свого домену, або звернутися в технічну підтримку.

Діагностика і рішення проблем

Діагностика проблем та їх вирішення розглянуто в статті

DNS - це служба, яка забезпечує обмін між різними сегментами мережі. Її застосування дозволяє значно скоротити час роботи на пошук інформації. У цій статті ви дізнаєтеся про основні принципи функціонування служби, а також способи та форми передачі даних в Інтернеті.

Як працює

На зорі розвитку Інтернету існувала «плоска» система найменувань: у кожного користувача був окремий файл, в якому містилися списки необхідних йому контактів. Коли він підключався до Всесвітньої павутини, то його дані розсилалися на інші пристрої.

Однак через стрімкого розвитку Інтернету необхідно було максимально спростити обмін даними. Тому його розділили на менші сегменти-домени. У свою чергу, вони поділяються на піддомени. На вершині адреси, поданого в іменний формі, знаходиться корінь - основний домен.

Оскільки Інтернет - це американська розробка, то існує два типи первинних доменів:

  • загальні домени, які належать установам США:
  1. com - бізнес-організації;
  2. gov - урядові заклади;
  3. edu - освітні установи;
  4. mil - військові представництва;
  5. org - приватні організації;
  6. net - інтернет-провайдера.
  • корінні домени інших країн складаються з двох букв.

Другий рівень складається з скорочень міст або областей, а домени третього порядку позначають різні організації та підприємства.


Точка виконує роль роздільника між доменами різними порядку. В кінці імені крапка не ставиться. Кожен окремий домен з точкою називається міткою.

Її довжина не повинна перевищувати 63 символи, а повна довжина адреси - 255 знаків. В основному, використовуються латиниця, цифри і знак дефіса, проте кілька років тому почали використовувати почали використовувати приставки на основі інших систем писемності. Регістр букв не має значення.


Сервера - це такі комп'ютери, на яких міститься перелік інших об'єктів всередині одного рівня мережі, що дозволяє прискорити обмін між користувачами. Вони і стали основою нової системи.

У кожного рівня мережі повинен бути власний сервер, який містить інформацію про адреси користувачів свого сегмента.

Пошук необхідних даних відбувається так:



основи DNS

Вузол, що складається з декількох доменів, називається зоною. В її файлі містяться основні параметри свого сегмента. У тому числі він включає інформацію про FQDN або повністю певному доменному імені. Якщо такий запис закінчується крапкою, це означає, що ім'я об'єкта задано правильно.


Існує кілька типів комп'ютерів, які обслуговують DNS:

  • master - головний агент мережі. Він може змінювати її конфігурацію;
  • slave - пристрої другого порядку. Вони обслуговують клієнтів нарівні з master і можуть замінювати його замінювати в разі неполадок. Це дозволяє розвантажити мережу;
  • кешуючий. Містить в своєму інформацію про домени сторонніх зон;
  • невидимий. Відсутня в описі зони. Найчастіше цей статус надається користувачам зі статусом master для того, щоб уберегти їх від атаки.

До них користувач може відправити один з двох типів запиту.

Браузер посилає його через програму-resolver:

  • рекурсивний. Якщо сервер не містить необхідної інформації, цьому випадку він дізнається необхідні дані у комп'ютерів вищого рівня і надсилає клієнтові відповідь. Це дозволяє зменшити кількість запитів і забезпечує економію часу і вашого трафіку;
  • ітеративний. Сервер надсилає готову відповідь, відбираючи інформацію тільки з власного кешу (пам'яті). Якщо у нього немає відповідних даних, то він надає посилання на інші комп'ютери. Потім браузер переходить за цією адресою.

Існує два типи відповідей:

  1. авторитативні - якщо дані відправляються з пристрою, які обслуговують мережу;
  2. неавторітатівний. Надсилається стороннім комп'ютером, який отримує необхідні дані з власного кешу або після итеративного запиту.

Відео: служба DNS

Імена і IP-адреси

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

Однак це досить умовно, так як комп'ютер може не мати доменного імені, але використовувати кілька адрес. Крім того, кожен IP-адреса повинна відповідати всім доменних імен. Однак домен може містити інформацію тільки про одне IP-адресу.

Режим роботи

Сервера можуть працювати в режимах:

  1. обслуговування власної зони. Обмін даними здійснюється між головним і підлеглими комп'ютерами. При цьому запити від неавторітатівних користувачів не приймаються;
  2. виконання рекурсивного питання;
  3. форвардного - сервер відправляє запит в іншу зону.

Зміна DNS параметрів

Зазвичай ці параметри задаються мережею в автоматичному режимі. Для того щоб скинути дані необхідно зайти в розділ «Мережеві підключення».

Після того, необхідно зайти в протокол, який використовується для обслуговування мережі.

У розділі «Властивості» можна задати необхідні параметри. Зазвичай вказуються основний IP-адреса сервера і альтернативний.

формат повідомлення

Повідомлення, які використовуються для обміну інформацією службою, починається з 12-байтного заголовка. Потім слід поле ідентифікації, яке дозволяє визначити, на який запит надійшла відповідь.


Поле прапорів (наступні 16 біт) включає інформацію:

  1. тип повідомлення;
  2. код операції;
  3. ідентифікація авторитативні (тобто показує, чи належить обслуговуючий комп'ютер до мережі);
  4. ТС-прапор. Показує, прийшло повідомлення обрізаним або повним.
  5. прапор рекурсії, тобто вимоги сервера послати запити комп'ютерів вищого порядку;
  6. прапор можливості рекурсії. Показує здатність сервера здійснювати перенаправлення повідомлення;
  7. код повернення. Показує, посланий відповідь з помилками чи ні.

Останнє 16-бітове поле показує загальна кількість врахованих параметрів.

Питання в DNS запиті

Частина записи ресурсу у відгуку

Будь відгук містить відомості про сторону, що відправила повідомлення. У ньому містяться такі дані: відповідь, повноваження сервера і додаткова інформація про нього.


Крім них, в електронному листі є:

  • ім'я домену;
  • тип запиту;
  • термін актуальності кешованої версії;
  • довжина запису ресурсу - оцінка обсягу інформації.

запити покажчика

Запити покажчика спрямовані на пошук сторінки в інверсівние режимі, тобто пошук імені ресурсу по IP-адресою, поданого у вигляді текстового рядка, розділеної точками.


Для його відправки адреса вузла записується в протилежному порядку з додаванням певного суфікса (найчастіше у формі in-addr.arpa).

Здійснити операцію можна, якщо ресурс містить PTR-запис. Це дозволяє передати управління зоною власнику IP-адрес.

записи ресурсів

Це - список основних програм, які використовуються службою. В рамках одного домена ці записи є унікальними. На різних рівнях мережі можуть існувати дублі цих записів.

Ці дані включають такі види записів:

  1. SOA -старт повноважень. Вона дозволяє зіставити домен і обслуговуючі його комп'ютери. Також в них містяться відомості про термін актуальності кешованої версії, і контактну особу, яка обслуговує сервер певного рівня;
  2. А містять перелік IP-адрес і відповідних їм хостів. Вони дозволяють ідентифікувати адреса ресурсів домена;
  3. NS (Name Server) включають список комп'ютерів, які обслуговують домен;
  4. SRV (Service) відображають всі ресурси, які виконують найважливіші функції служби;
  5. MX (Mail Exchanger) дозволяють автоматично налаштувати розсилку даних обслуговуючим комп'ютерів в межах одного домену;
  6. PTR (Pointer) використовуються для пошуку імені ресурсу, якщо користувач знає його IP-адреса;
  7. CNAME (Canonical Name) дозволяють серверу згадуватися під кількома псевдонімами в службі.

кешування

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

Однак якщо операція не вдалася, то клієнт подає запит.Щоб прискорити пошук інформації, використовуються кешированниє сервера. Якщо він не знаходить потрібних даних, то він виконує рекурсивний запит. При подачі він копіює дані інших мереж.


Це дозволяє економити трафік, не звертаючись згодом до авторитативним користувачам. Але відкрита запис залишається дійсною протягом обмеженого терміну. Термін його актуальності встановлений у файлі зони. За замовчуванням мінімально він становить 1 годину.

UDP або TCP

Служба підтримує як протокол UDP, так і TCP.

UDP використовується для відправки повідомлень з глобальних мереж. Розмір повідомлень, що пересилаються за цим протоколом, лімітований. Неповні відповіді містять мітку ТС. Це означає, що розмір відгуку перевищив 512 байт, тому інша частина не дійшла до комп'ютера.


Він відрізняється меншою надійністю, оскільки для нього не встановлено певний тайм-аут на відгук запиту. Однак така система підходить для передачі великої кількості інформації.

TCP використовується для передачі таких даних, оскільки він дозволяє отримувати будь-який обсяг даних, розділений на сегменти певного розміру.

Також цей протокол використовуються вторинними серверами, коли вони запитують дані від головних комп'ютерів кожні три години, щоб дізнатися про оновлення файлу конфігурації мережі.

Служба DNS має складну ієрархічну структуру. Однак система серверів забезпечує гнучке і швидке взаємодія між усіма користувачами та пристроями Мережі.

Щоб дізнатися необхідну інформацію, клієнт посилає запит. Відгук містить основні дані про цікавить об'єкті і комп'ютері, що обслуговує зону. Для здійснення цього обміну використовуються протоколи UDP і TCP.

Доменне ім'я складається, щонайменше, з двох частин (міток), між якими ставлять крапку. Нумерація міток ведеться справа наліво .. Усі наступні мітки - піддомени, тобто hosting - піддомен домену web-3, а web-3 - домену ru.

Умовно такий поділ може розтягнутися на 127 рівнів. Будь-яка мітка може складатися (максимально) з 63 символів, але довжина доменного імені не може бути більше 254 знаків, включаючи точки. Втім, дійсність і теорія, як відомо, - різні речі, тому реєстратори доменів часто встановлюють власні ліміти.

Сервери DNS знаходяться в певному порядку, який організовує ієрархічна система DNS. Всякий піддомен або домен підтримується декількома авторизованими серверами DNS, що містять про нього всі необхідні відомості. Слід сказати, що спостерігається тотожність підпорядкування доменів і серверів DNS.

Для передачі даних за допомогою стека протоколів TCP / IP необхідно знати IP-адресу зазначеного сервера, але той, як правило, має лише відомості про адресу сервера DNS (зазвичай інтернет-провайдер надає адресу одного основного і одного резервного DNS-сервера) .. Той, в свою чергу, вимагає інформації у центрального сервера, наприклад 195.42.0.3 (всі IP-адреси наведено для прикладу і можуть відрізнятися від дійсних). Сервер відповідає, що не володіє інформацією про необхідний адресу, однак, знає, що доменної зоной.ru займається сервер 214.74.142.1 ( прим. ред. Це так званий авторитетний сервер). У цьому випадку сервер DNS запитує інформацію у 214.74.142.1. Відповіддю може бути: «web-3.ru займається сервер 247.142.130.234». Цей третій за рахунком сервер повертає браузеру IP-адресу потрібного сайту ( прим. ред.Дуже часто рекурсивний підхід замінюється запитами до буферу сервера. Якщо Неавторитетний сервер недавно отримував запит на IP адресу сайт, то замість звернення до наступного DNS сервера він видасть результат з буфера. ).

Для реагування на запитувану інформацію DNS-протокол застосовує UDP- або TCP-порт 53. Зазвичай запити і готова інформація по ним надсилаються в формі UDP-датаграми. А TCP залишається для AXFR-запитів або відповідей вагою понад 512 байт. Для того щоб дізнатися IP-адресу цікавить вас сайту, необхідно скористатися командою ping. Якщо ви користуєтеся операційною системою Windows XP, натисніть «Пуск» - «Виконати» ( прим. ред. Швидкий доступ win + r) і наберіть в рядку команду cmd. з'явиться віконце командного рядка. У ній наберіть команду ping і ім'я сайту, наприклад, ping сайт. У рядках, які з'являться після натискання Enter побачите групу чисел 87.242.76 ..

Важливо пам'ятати, що IP-адреса не дорівнює імені хоста і навпаки. Один комп'ютер може мати велику кількість web-сайтів, а це говорить про можливість хоста з тією чи іншою IP-адресою володіти цілим списком імен. Подібно до цього одне ім'я може бути пов'язане з різними хостами. Так досягається регуляція навантаження.

З метою збільшення стабільності системи в роботу вводять певну кількість серверів, які вміщують в себе однакові відомості. Так, в світі налічується 13 подібних серверів. Кожен має відношення до будь-якої території. Дані про них є у всякій операційній системі, оскільки такі сервери не змінюють первісного адреси. Ці сервер називають кореневими, тому що на них тримається вся мережа Інтернет.

Тепер поговоримо про зворотне DNS-запит. Крім перекодування символьних імен в IP-адреси DNS виконує зворотний роботу. Оскільки з записами DNS можна співвіднести дані різних форматів, включаючи символьні.

відомо доменне ім'я in-addr.arpa, дані якого служать для реконструювання IP-адреси в ім'я із символів. Наведемо приклад: щоб з'ясувати ім'я відомого адреси (припустимо, 12.13.14.15) допустимо зробити запит в наступному вигляді: 15.14.13.12.in-addr.arpa. Результатом виявиться належне символьне ім'я. Чим можна це пояснити? Тим, що в IP-адреси біти, розташовані біля кореня, стоять на початку, а в DNS-імена - в кінці.

Що стосується записів DNS, то виділяють кілька категорій:

  1. Address record (запис А) служить для зв'язку адреси IP і хоста.
  2. Canonical name record (скорочено CNAME, канонічний запис імені) - інструмент переадресації на альтернативне ім'я.
  3. Mail exchange (МХ, поштовий обмінник) посилається на сервер обміну поштою для представленого домену.
  4. PTR (pointer, або запис покажчика) з'єднує ім'я хоста з його встановленим (канонічним) ім'ям.
  5. NS (name server) називає DNS-сервер представленого доменного імені.
  6. SOA (start of authority record) - запис, що посилається на той сервер, який містить загальні відомості про представленому домені.

Необхідно сказати про зарезервованих доменах(Reserved Top Level DNS Names). Документ RFC 2606 вказує на ті імена доменів, які потрібно застосовувати в ролі моделі (що особливо важливо в документації) і при тестуванні. Як приклад можна привести test.com, test.org, test.net, а також invalid, example і т.д.

У розмові про доменні імена варто згадати про те, що вони можуть складатися з невеликої комплектації ASCII символів. Це робить можливим набір доменної адреси незалежно від того мови, якою говорить користувач. Тому такі імена - інтернаціональні. ICANN ратифікував систему IDNA, що базується на Punycode. Вона здатна конвертувати будь-яку фразу в кодуванні Unicode в той набір знаків, який буде можливий для коректної роботи DNS.

Деякі способи дії додатка DNS застосовуються в BIND (Berkeley Internet Name Domain), MaraDNS NSD (Name Server Daemon), DJBDNS (Daniel J. Bernstein "s DNS), PowerDNS Microsoft DNS Server (в серверних варіантах операційних систем Windows NT).

Щоб дізнатися, хто володіє будь-яким доменом або IP-адресою досить скористатися наявними можливостями мережевого протоколу whois (Від англ. Who is - «хто?»). Первісною ідеєю, що поклала початок створенню даної системи, було прагнення не дозволяти системним адміністраторам знаходити дані інших адміністраторів IP-адрес і доменів. Нині доменне ім'я визнається незареєстрованим на певне ім'я, поки не можна знайти загальнодоступні відомості про нього в цьому сервісі.

  • Переклад

Уважний читач знайде на цій картинці IPv6


Люди часто розмірковують над доменами. Чому мій сайт не працює? Чому ця хрень поламана, нічого не допомагає, я просто хочу, щоб це працювало! Зазвичай, хто викликає духа або не знає про DNS, або не розуміє фундаментальних ідей. Для багатьох DNS - страшна і незрозуміла штука. Ця стаття - спроба розвіяти такий страх. DNS - це просто, Якщо зрозуміти кілька базових концепцій.

Що таке DNS

DNS розшифровується як Domain Name System. Це глобальне розподілене сховище ключів і значень. Сервера по всьому світу можуть надати вам значення по ключу, а якщо їм невідомий ключ, то вони попросять допомоги у іншого сервера.


От і все. Правда. Ви або ваш браузер запитує значення для ключа www.example.com, і отримує у відповідь 1.2.3.4.

базові штуки

Великий плюс DNS в тому, що це публічна послуга, і можна потикати в сервера якщо хочеться розібратися. Давайте спробуємо. У мене є домен petekeen.net, який хоститься на машині web01.bugsplat.info. Команди, що використовуються нижче, можна запустити з командного рядка OS X ( ой, тобто macOS, - прим. пер.).


Давайте поглянемо на маппинг між ім'ям і адресою:


$ Dig web01.bugsplat.info

Команда dig це такий швейцарський армійський ніж для DNS-запитів. Крутий, багатофункціональний інструмент. Ось перша частина відповіді:


; <<>\u003e DiG 9.7.6-P1<<>\u003e Web01.bugsplat.info ;; global options: + cmd ;; Got answer: ;; - \u003e\u003e HEADER<<- opcode: QUERY, status: NOERROR, id: 51539 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

Тут є тільки одна цікава деталь: інформація про самому запиті. Йдеться про те, що ми запросили запис і отримали рівно один відповідь. ось:


;; QUESTION SECTION:; web01.bugsplat.info. IN A

dig за замовчуванням запитує A -запісі. A це address (Адреса), і це один з фундаментальних видів записів в DNS. A містить один IPv4-адреса. Є еквівалент для IPv6-адрес - AAAA. Давайте поглянемо на відповідь:


;; ANSWER SECTION: web01.bugsplat.info. 300 IN A 192.241.250.244

Частина, що залишилася відповіді описує сам відповідь:


;; Query time: 20 msec ;; SERVER: 192.168.1.1 # 53 (192.168.1.1) ;; WHEN: Fri Jul 19 20:01:16 2013 ;; MSG SIZE rcvd: 56

Зокрема, тут йдеться про те, як довго сервер відгукувався, який у сервера IP-адреса (192.168.1.1), на який порт стукав dig (53, DNS-порт за замовчуванням), коли запит був завершений і скільки байтів було у відповіді.


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


Але в цьому прикладі не видно, що DNS-сервер 192.168.1.1 зв'язався з купою інших серверів щоб відповісти на просте запитання: «куди вказує адресу web01.bugsplat.info?». Давайте запустимо трейс щоб дізнатися про всю можливу ланцюжку, яку довелося б пройти dig "у, якби інформація ні закешовану:


$ Dig + trace web01.bugsplat.info;<<>\u003e DiG 9.7.6-P1<<>\u003e + Trace web01.bugsplat.info ;; global options: + cmd. 137375 IN NS l.root-servers.net. . 137375 IN NS m.root-servers.net. . 137375 IN NS a.root-servers.net. . 137375 IN NS b.root-servers.net. . 137375 IN NS c.root-servers.net. . 137375 IN NS d.root-servers.net. . 137375 IN NS e.root-servers.net. . 137375 IN NS f.root-servers.net. . 137375 IN NS g.root-servers.net. . 137375 IN NS h.root-servers.net. . 137375 IN NS i.root-servers.net. . 137375 IN NS j.root-servers.net. . 137375 IN NS k.root-servers.net. ;; Received 512 bytes from 192.168.1.1 # 53 (192.168.1.1) in 189 ms info. 172800 IN NS c0.info.afilias-nst.info. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS d0.info.afilias-nst.org. info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS a0.info.afilias-nst.info. ;; Received 443 bytes from 192.5.5.241 # 53 (192.5.5.241) in 1 224 ms bugsplat.info. 86400 IN NS ns-1356.awsdns-41.org. bugsplat.info. 86400 IN NS ns-212.awsdns-26.com. bugsplat.info. 86400 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 86400 IN NS ns-911.awsdns-49.net. ;; Received 180 bytes from 199.254.48.1 # 53 (199.254.48.1) in 239 ms web01.bugsplat.info. 300 IN A 192.241.250.244 bugsplat.info. 172800 IN NS ns-1356.awsdns-41.org. bugsplat.info. 172800 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 172800 IN NS ns-212.awsdns-26.com. bugsplat.info. 172800 IN NS ns-911.awsdns-49.net. ;; Received 196 bytes from 205.251.195.143 # 53 (205.251.195.143) in 15 ms

Інформація виводиться в ієрархічній послідовності. Пам'ятайте як dig вставив точку. після хоста, web01.bugsplat.info? Так ось, точка. це важлива деталь, і вона означає корінь ієрархії.


Кореневі DNS-сервера обслуговуються різними компаніями і державами по всьому світу. Спочатку їх було мало, але інтернет зростав, і зараз їх 13 штук. Але у кожного з серверів є десятки або сотні фізичних машин, які ховаються за одним IP.


Отже, в самому верху Трейса знаходяться кореневі сервери, кожен визначений за допомогою NS- записи. NS -запис пов'язує доменне ім'я (в даному випадку, кореневої домен) з DNS-сервером. Коли ви реєструєте доменне ім'я у реєстратора типу Namecheap або Godaddy, вони створюють NS -запісі для вас.


У наступному блоці видно, як dig вибрав випадковий кореневий сервер, і запросив у нього A -запис для web01.bugsplat.info. Видно тільки IP-адреса кореневого сервера (192.5.5.241). То який саме кореневий сервер це був? Давайте дізнаємося!


$ Dig -x 192.5.5.241;<<>\u003e DiG 9.8.3-P1<<>\u003e -X 192.5.5.241 ;; global options: + cmd ;; Got answer: ;; - \u003e\u003e HEADER<<- opcode: QUERY, status: NOERROR, id: 2862 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;241.5.5.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 241.5.5.192.in-addr.arpa. 3261 IN PTR f.root-servers.net.

Прапор -x змушує dig провести зворотний пошук по IP-адресою. DNS відповідає записом PTR, яка з'єднує IP і хост, в даному випадку - f.root-servers.net.


Повертаючись до нашого початкового запиту: кореневий сервер F повернув інший набір NS-серверів. Він відповідає за домен верхнього рівня info. dig запитує в одного з цих серверів запис A для web01.bugsplat.info, і отримує у відповідь ще один набір NS-серверів, і потім запитує у одного з цих серверів запис A для web01.bugsplat.info. . І, нарешті, отримує відповідь!


Уф! Згенерованого б багато трафіку, але майже всі ці записи були надовго закешовану кожним сервером в ланцюжку. Ваш комп'ютер теж кешируєт ці дані, як і ваш браузер. Найчастіше DNS-запити ніколи не доходять до кореневих серверів, тому що їх IP-адреси майже ніколи не змінюються ( «Напевно все таки мова йде про великий TTL для записів в їх базі. Якщо у DNS сервера IP адреса взагалі жодного разу не змінювався, то це не означає, що його база навічно закеширувалася » - прим. від). Домени верхнього рівня com, net, org, і т.д. теж зазвичай сильно закешовану.

інші типи

Є ще кілька типів, про які варто знати. Перший це MX. Він з'єднує доменне ім'я з одним або декількома поштовими серверами. Електронна пошта настільки важлива, що у неї є свій тип DNS-записи. Ось значення MX для petekeen.net:


$ Dig petekeen.net mx;<<>\u003e DiG 9.7.6-P1<<>\u003e Petekeen.net mx ;; global options: + cmd ;; Got answer: ;; - \u003e\u003e HEADER<<- opcode: QUERY, status: NOERROR, id: 18765 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;petekeen.net. IN MX ;; ANSWER SECTION: petekeen.net. 86400 IN MX 60 web01.bugsplat.info. ;; Query time: 272 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:33:43 2013 ;; MSG SIZE rcvd: 93

Зауважте, що MX -запис вказує на ім'я, а не на IP-адресу.


Ще один тип, який вам швидше за все знаком, це CNAME. Расшіфровиваетя як Canonical Name (Канонічне ім'я). Він пов'язує одне ім'я з іншим. Давайте подивимося на відповідь:


$ Dig www.petekeen.net;<<>\u003e DiG 9.7.6-P1<<>\u003e Www.petekeen.net ;; global options: + cmd ;; Got answer: ;; - \u003e\u003e HEADER<<- opcode: QUERY, status: NOERROR, id: 16785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.petekeen.net. IN A ;; ANSWER SECTION: www.petekeen.net. 86400 IN CNAME web01.bugsplat.info. web01.bugsplat.info. 300 IN A 192.241.250.244 ;; Query time: 63 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:36:58 2013 ;; MSG SIZE rcvd: 86

Відразу видно, що ми отримали дві відповіді. Перший говорить, що www.petekeen.net вказує на web01.bugsplat.info. Другий повертає запис A для того сервера. Можна вважати, що CNAME це псевдонім (або алиас) для іншого сервера.

Що не так з CNAME

Записи CNAME дуже корисні, але є важливий момент: якщо є CNAME з якимось ім'ям, то не можна створити інший запис з таким же ім'ям. Ні MX, ні A, ні NS, нічого.


Причина в тому, що DNS робить заміну таким чином, що всі записи того місця, куди вказує CNAME, також валідність для CNAME. У нашому прикладі, записи у www.petekeen.net і web01.bugsplat.info будуть збігатися.


Тому не можна робити CNAME на кореневому домені начебто petekeen.net, тому що зазвичай там потрібні інші записи, наприклад, MX.

Запити до інших серверів

Давайте уявимо, що конфігурація DNS зіпсована. Вам здається, що ви виправили проблему, але не хочете чекати коли оновиться кеш щоб упевнитися. За допомогою dig можна зробити запит до публічного DNS-сервера замість свого дефолтного, ось так:


$ Dig www.petekeen.net @ 8.8.8.8

Символ @ з IP-адресою або хостом змушує dig прозводить запит до вказаного серверу через порт за замовчуванням. Можна використовувати публічний DNS-сервер Гугла або майже-публічний-сервер Level 3 за адресою 4.2.2.2.

типові ситуації

Давайте розглянемо типові ситуації, знайомі багатьом веб-розробникам.

Редирект домену на www

Часто потрібно зробити редирект домену iskettlemanstillopen.com на www.iskettlemanstillopen.com. Реєстратори типу Namecheap або DNSimple називають це URL Redirect. Ось приклад з адмінки Namecheap:




Символ @ означає кореневої домен iskettlemanstillopen.com. Давайте подивимося на запис A у цього домену:


$ Dig iskettlemanstillopen.com ;; QUESTION SECTION:; iskettlemanstillopen.com. IN A ;; ANSWER SECTION: iskettlemanstillopen.com. 500 IN A 192.64.119.118

Цей IP належить Namecheap "у, і там крутиться маленький веб-сервер, який просто робить перенаправлення на рівні HTTP на адресу http://www.iskettlemanstillopen.com:


$ Curl -I iskettlemanstillopen.com curl -I iskettlemanstillopen.com HTTP / 1.1 302 Moved Temporarily Server: nginx Date: Fri, 19 Jul 2013 23:53:21 GMT Content-Type: text / html Connection: keep-alive Content-Length : 154 Location: http://www.iskettlemanstillopen.com/

CNAME для Heroku або Github

Погляньте на скріншот вище. На другому рядку там CNAME. В цьому випадку www.iskettlemanstillopen.com вказує на додаток, запущене на Heroku.


$ Heroku domains \u003d\u003d\u003d warm-journey-3906 Domain Names warm-journey-3906.herokuapp.com www.iskettlemanstillopen.com

З Github схожа історія, але там потрібно створити спеціальний файл в корені сховища, і назвати його CNAME. Див. Документацію .dns Додати мітки

Інтернет - це мережа, в якій кожному персональному комп'ютеру відповідає якийсь персональний номер, який називається IP-адресою. Цифрова адресація виявилася не найзручнішою на зорі розвитку і формування Інтернету, тому було вирішено використовувати букви для написання адрес. Саме тому, коли людина вирішує зайти на який-небудь сайт, він вводить букви, а не цифри. Проблема ж у тому, що комп'ютер вміє сприймати виключно інформацію в цифровому вигляді - послідовність нулів і одиниць. Він апріорі не здатний розуміти інформацію у вигляді букв. Тому і була створена служби, чиїм основним завданням став переклад літерного написання адрес в форму цифр. І служба ця була названа DNS (в розшифровці це означає Domain Name System). Але як вона працює? Що таке DNS?

Що являє собою ця служба?

Так що таке DNS? Це величезна база даних, в якій міститься інформація про те, чи відповідає доменне ім'я IP-адресою чи ні. DNS - це так званий протокол, який являє собою комп'ютерну, чітко розподілену систему, спрямовану на отримання інформації про різні стани того чи іншого домену. У перекладі з англійської мови Domain Name System означає «система імен доменів». Всю цю інформацію зберігає так званий DNS-сервер. Найчастіше даний протокол використовують, щоб отримати IP-адресу, грунтуючись на імені того чи іншого необхідного хоста (хостом може виступати комп'ютер або інший пристрій з виходом в Інтернет). Що таке DNS крім цього? Також ця служба необхідна для отримання інформації на вимогу про маршрут, який пройшла пошта, яку обслуговує вузлами під протоколи в домені.

ієрархічна структура

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


захист

Кілька років тому в системах доменних імен стали з'являтися засоби для перевірки цілісності переданих даних. Це кошти стали називатися Security Extensions. Інформація, яка передається, не береться шифрування, але достовірність даних перевіряють за допомогою методів криптографії. Впроваджений стандарт під назвою DANE передає достовірні криптографічні дані. Потім їх використовують для встановлення безпечних і захищених з'єднань транспортного і прикладного рівнів. Власники доменів і серверів повинні оновлювати періодично прошивки DNS для забезпечення надійної перевірки і гідного рівня захисту переданої інформації. В іншому випадку збереження і достовірність даних може не гарантуватися.


Які функції виконує ДНС?

Що таке DNS і які цього протоколу функції?

1. Розподіл адміністрування. Це означає, що різні організації і люди несуть за свої частини структури відповідальність.

2. Розподіл інформації, яка зберігається. Кожен мережевий вузол окремо повинен зберігати не тільки ту інформацію, яка знаходиться в зоні його відповідальності, а й інші адреси з так званих «кореневих» серверів.

3. Кешування даних. Певні вузли здатні зберігати певний певну кількість даних з невласних зон відповідальності для зменшення мережевих навантажень.

4. Створення і підтримування структури ієрархії, де всі вузли з'єднуються в єдине дерево, в якому кожен вузол здатний визначати роботу підлягають вузлів, делегувати повноваження іншим суміжним вузлам.

5. Резервування - зберігання і обслуговування зон власних, за що відповідають кілька ДНС-серверів. Вони підрозділяються на логічні і фізичні, що гарантує абсолютну безпеку інформації і можливість продовжувати роботу при збої одного вузла.

Робота ДНС-системи

Що таке DNS і як це працює? Цей механізм прийнятий з тієї причини, що ім'я домену має різні адреси. Кожен сервер в мережі Інтернет має IP, який представляє з себе набір цифр. Кожен раз, змінюючи провайдера, користувач змінює хостинг і разом з ним сервер, а також і адреса IP. Іноді, для нормальної роботи в мережі Інтернет, необхідно оновлювати на комп'ютері драйвера. DNS (сервер імен доменів) зберігає запис імені домена користувача і IP, на який необхідно запити відсилати. Коли користувач заповнює ДНС запис в своєму домені, він повідомляє інформацію про розташування свого сайту. І коли вперше йде відкриття хостингу або реєстрація імені домена, відправляється інформація про з'явилася записи на всі інші сервери. Може бути, сайт запрацює і відразу, але в середньому інформація поширюється в перебігу двох-трьох діб. Така затримка відбувається з тієї причини, що багато серверів доменних імен налаштовані на оновлення даних за певний період.