Лабораторна робота №1. Організація роботи DNS служб
Завдання для практичного виконання
1. Здійсніть реєстрацію власної доменної адреси. Для його запису скористайтеся сервісом http://nic.ua, де доступна реєстрація безкоштовних доменів в зоні pp.ua. Можна також скористатися реєстратором доменів другого рівня Dot TK. (Див. інструкцію).
2. Для обслуговування доменного імені і перенаправлення на власний/інший хостинг використайте ДНС-сервіс nic.ua або dnsexit.com. Рекомендується використовувати dnsexit.com як безкоштовний та більш повнофункціональний сервіс. ІР-адреса сервера в ТК - 134.249.112.135.
3. Виконані Вами дії з елементами теоретичних відомостей оформіть як звіт та захистіть у викладача.
Теорія
До́менна систе́ма іме́н (англ. Domain Name System, DNS) — розподілена система перетворення імені хоста (комп'ютера або іншого мережевого пристрою) в IP-адресу.
Кожен комп'ютер в Інтернеті має свою власну унікальну адресу — число, яке складається з чотирьох байтів. Оскільки запам'ятовування десятків чи навіть сотень — не досить приємна процедура, то всі (чи майже всі) машини мають імена, запам'ятати які (особливо якщо знати правила утворення імен) значно легше.
Уся система імен в Інтернеті — ієрархічна. Це зроблено для того, щоб не підтримувати одне централізоване джерело, а роздати владу на місця.
Служба імен DNS (Domain Name System) — це розподілена база даних доволі простої структури. Для початкового знайомства можна вважати, що це кілька таблиць, у яких записано:
- яку ІР-адресу має машина з певним іменем;
- яке ім'я має машина з визначеною адресою;
- що це за комп'ютер і яка операційна система встановлена на ньому;
- куди потрібно направляти електронну пошту для користувачів цієї машини;
- які псевдоніми є у даної машини.
Існує три основні типи серверів DNS, які відрізняються покладеними на них завданнями:
- основний сервер DNS;
- резервний (вторинний) сервер DNS;
- кешуючий сервер DNS.
Основний сервер DNS управляє зоною повноважень. Якщо потрібно додати/видалити домен або вузол або якось інакше модифікувати зону, зміни потрібно проводити на основному сервері DNS. Через певний час, який залежить від настройок сервера, основний сервер передасть зону резервному серверу DNS. Дане явище називається трансфером зони.
Що ж до резервних серверів, то повинен бути хоч би один резервний сервер DNS. Тому є декілька причин: якщо клієнтів багато, то наявність резервного сервера DNS дозволить знизити навантаження на основний сервер DNS і прискорити доступ фізично віддалених від основного сервера клієнтів до бази даних доменних імен.
Ключовими поняттями DNS є:
- Домен (англ.domain - область) - частина простору ієрархічних імен мережі Інтернет, що обслуговується групою серверів доменних імен (DNS-серверів) та централізовано адмініструється. DNS-сервери зберігають інформацію про вузли, імена яких належать домену і виконують трансляцію їх імен в адреси. Кожний домен має унікальне ім'я, а кожен комп'ютер, підключений до Інтернету, має, як правило, доменне ім'я. Домени мають між собою ієрархічні відношення. Два домени, що розташовані на сусідніх рівнях ієрархії, називаються відповідно доменом вищого та нижчого рівнів. Домени найвищого (верхнього) рівня можуть бути сформовані за організаційним або географічним ознаками. Домени, сформовані за географічним ознаками, об'єднують вузли, що належать конкретній державі. За географічними ознаками об'єднуються в основному комп'ютери, що містяться на території США.
- Піддомен (англ. subdomain) - підлеглий домен (наприклад, wikipedia.org - піддомен домену org, а uk.wikipedia.org - домену wikipedia.org). Теоретично такий розподіл може досягати глибини в 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з крапками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду mydomain.ua, ви можете створити для нього різні піддомени виду mysite1.mydomain.ua, mysite2.mydomain.ua і т.д.
- Ресурсний запис - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.
- Зона - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервері, див. нижче), а частіше - одночасно на декількох серверах (див. нижче). Метою виділення частини дерева в окрему зону є передача відповідальності (див. нижче) за відповідний домен іншій особі або організації. Це називається делегуванням (див. нижче). Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів/імен, теж виходить дерево; виправдано говорити про батьківських і дочірніх зонах, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', ua, com, ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підпорядкованих рівнів без виділення їх у дочірні зони.
- Делегування - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність, адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, і розміщенні цієї зони на DNS-сервері (див. нижче), керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючі» ресурсні записи (NS і А), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.
- DNS-сервер - програма, призначена для відповідей на DNS-запити за відповідним протоколом. Також DNS-сервером можуть називати хост, на якому запущено відповідну програму.
- DNS-клієнт (від англ. Domain Name System-client — доменних імен система — клієнт) - програма або модуль в програмі, що забезпечує з'єднання із DNS-сервером для визначення IP-адреси по його доменному імені.
- Авторитетність (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: авторитетні (коли сервер заявляє, що сам відповідає за зону) і неавторитетні (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).
- DNS-запит (англ. DNS query) - запит від клієнта (або сервера) сервера. Запит може бути рекурсивним або нерекурсивний (див. Рекурсія).
- Система DNS містить ієрархію DNS-серверів, відповідну ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. Authoritative - авторитетний), на якому розташована інформація про домен.
- Ім'я та IP-адресу не тотожні - одна IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені може бути зіставлено безліч IP-адрес: це дозволяє створювати балансування навантаження.
- Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.
- Протокол DNS використовує для роботи TCP-або UDP-порт 53 для відповідей на запити. Традиційно запити та відповіді відправляються у вигляді однієї UDP дейтаграми. TCP використовується для AXFR-запитів.
-
Принцип роботи
Система імен DNS - це ієрархічна деревоподібна система. У цьому дереві існує корінь - він позначається «.» (root). Список кореневих серверів повинен бути у кожного сервера: він міститься у файлі named. са.
Цей файл може називається і по-іншому - залежно від налаштувань сервера. Існує певна кількість доменів верхнього рівня. Найбільш відомі ви знаєте: com, gov, net, org та інші (у тому числі і домени країн - ru, ua, fr та ін.).
Нехай користувач вводить у вікні браузера адрес http :// server . Проте адресація в локальній мережі (так само як і в Інтернет) побудована на основі IP-протоколу. Тому для того, щоб встановити з’єднання з комп’ютером server комп’ютеру користувача необхідно знати його IP-адресу, тому операційна система користувача намагається вирішити (перевести) ім’я комп’ютера в IP-адресу. З цією метою вона спочатку використовує свої стандартні засоби (той же файл hosts), а потім звертається до служби DNS. Розглянемо тепер інтернет-адресу www.yahoo.com (насправді абсолютно неважливо це інтернет-адреса або адреса в локальній мережі - все те ж саме). Сервер DNS спочатку намагається вирішити ім’я даного комп’ютера, використовуючи свій власний кеш імен. Якщо необхідне ім’я комп’ютера в нім відсутнє, то сервер DNS звертається до одного з кореневих серверів DNS, про які ми поговоримо пізніше.
Запит обробляється рекурсивно: кореневий сервер звертається до сервера, який відповідає за домен com, а той, у свою чергу, до сервера DNS домена yahoo.com.
Сервер DNS домена yahoo.com повертає IP-адресу комп’ютера www - 64.58.76.222 або всі адреси, які зіставлені цьому імені (багато мережевих операційних систем, у тому числі і Linux, дозволяють одному імені зіставляти декілька IP-адрес).
А офіційне ім’я комп’ютера www.yahoo.com (це його канонічне ім’я - про канонічні імена і як їх використовувати буде сказано нижче) - www. yahoo . akadns. netСхеми запитів DNS-імен
Нерекурсивна процедура:
1.DNS-клієнт звертається до кореневого DNS-сервера з вказівкою повного доменного імені;
2.DNS-сервер відповідає клієнту, вказуючи адресу наступного DNS-сервера, який виконує обслуговування домену верхнього рівня, заданого в наступній старшій частині імені;
3.DNS-клієнт виконує запит наступного DNS-сервера, який його надсилає до DNS-сервера потрібного піддомена і т.д., доти, доки не буде знайдено DNS-сервер, який повністю відповідає запитуваному імені IP-адреси. Сервер дає кінцеву відповідь клієнту.
Рекурсивна процедура:
1.DNS-клієнт запитує локальний DNS-сервер, який обслуговує піддомен, якому належить клієнт;
2.Далі, якщо локальний DNS-сервер відповідь знає, то повертає її клієнту, в протилежному випадку виконує ітеративні запити до кореневого сервера до тих пір, поки не отримає відповідь.
Після отримання відповіді сервер передає її клієнту. Таким чином, при рекурсивній процедурі клієнт фактично передоручає роботу власному серверу. Для прискорення пошуку IP-адрес DNS-сервери часто застосовують кешування (на час від годин до декількох днів) відповідей, які проходять через них.Записи DNS
Записи DNS, або Ресурсні записи (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожний ресурсний запис складається з наступних полів:
- ім'я (NAME) - доменне ім'я, до якого прив'язана або яким «належить» даний ресурсний запис;
- TTL (Time To Live) - допустимий час зберігання даного ресурсного запису в кеші не відповідального DNS-сервера;
- тип' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;
- клас (CLASS) ресурсної записи; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код в полеклас визначає тип мережі;
- довжина поля даних (RDLEN);
- поле даних (RDATA), формат та зміст якого залежить від типу запису.
Найбільш важливі типи DNS-записів:
- Запис A(address record) або запис адреси зв'язує ім'я хоста з адресою IP. Наприклад, запит A-запису на ім'я referrals.icann.org поверне його IP адресу - 192.0.34.164
- Запис AAAA (IPv6 address record) зв'язує ім'я хоста з адресою протоколу IPv6. Наприклад, запит AAAA-запису на ім'я K.ROOT-SERVERS.NET поверне його IPv6 адресу - 2001:7 fd :: 1
- Запис CNAME (canonical name record) або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я
- Запис MX (mail exchange) або поштовий обмінник вказує сервер(и) обміну поштою для даного домену.
- Запис NS (name server) вказує на DNS-сервер для даного домену.
- Запис PTR (pointer) або запис покажчика зв'язує IP хоста з його канонічним ім'ям. Запит в домені in-addr.arpa на IP хоста в reverse формі поверне ім'я (FQDN) даного хоста (див. Зворотній DNS-запит). Наприклад, (на момент написання), для IP адреси 192.0.34.164: запит запису PTR 164.34.0.192.in-addr.arpa поверне його канонічне ім'я referrals.icann.org. З метою зменшення обсягу небажаної кореспонденції (спаму) багато серверів-одержувачів електронної пошти можуть перевіряти наявність PTR запису для хоста, з якого відбувається відправлення. У цьому випадку PTR запис для IP адреси повинна відповідати імені відправляючого поштового сервера, яким він представляється в процесі SMTP-сесії.
- Запис SOA (Start of Authority) або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідальної за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодію DNS-серверів.
- SRV-запис (server selection) вказує на сервери для сервісів, використовується зокрема для Jabber і Active Directory.