Відмінності між версіями «DNS»
Lithic (обговорення • внесок) |
|||
Рядок 42: | Рядок 42: | ||
'''''Лічильник доповнень''''' - 16-бітове поле, що визначає число записів про ресурси сервера імен у додатковому розділі. | '''''Лічильник доповнень''''' - 16-бітове поле, що визначає число записів про ресурси сервера імен у додатковому розділі. | ||
+ | == Правила формування імен == | ||
+ | Повне доменне (від англ. ''domain'') ім'я машини (FQDN, Fully Qualified Domain Name) можна розбити на дві частини — ім'я області-домена та власне ім'я машини. Наприклад, ''m30.ziet.zhitomir.ua'' — повна доменне ім'я машини ''m30'', яка знаходиться у домені ''ziet.zhitomir.ua''. | ||
+ | |||
+ | За порядок у доменах, як правило, відповідає певний комп'ютер, користувачі-адміністратори якого слідкують за тим, щоб не було, наприклад, різних машин з однаковими ІР-адресами. Наприклад, відповідальність за область-домен ''ziet.zhitomir.ua'' покладається на машину ''alpha.ziet.zhitomir.ua'' Ця влада делегується зверху вниз від машини ''ns.lucky.net'', яка відповідає за домен ''zhitomir.ua''. В свою чергу, відповідальність за область ua делегована машині зверху від так званих кореневих серверів (''root server''). | ||
+ | |||
+ | Всю цю систему можна уявити у вигляді перевернутого дерева. Нижче наведений список імен доменів верхнього рівня (далеко не повний). Повний список географічних областей, в основному, відповідає [[двобуквені ISO-коди країн|двобуквеним ISO-кодам країн]] і його можна знайти, наприклад, на WWW-сервері [[ISOC]] (http://www.isoc.org). | ||
+ | |||
+ | Необхідно розрізняти доменне ім'я, та поштову адресу. В поштовій адресі повинен бути знак «@», якій розділяє поштову адресу на доменне ім'я та ім'я поштової скриньки. | ||
+ | |||
+ | Коли мережа Інтернет була молода та невелика, таблиці відповідності імен та адрес зберігалися у звичайному [[текстовий файл|текстовому файлі]], який періодично просто розсилався всім учасникам електронною поштою. Після того, які кількість машин значно збільшилася, така схема перестала ефективно працювати і програмісти [[Університет Каліфорнії, Берклі|університету штату Каліфорнія в Берклі]] спроектували і написали програму BIND (Berkeley Internet Name Domain), яка відповідає на запити машин користувачів, які стосувалися імен та ІР-адресу. | ||
+ | |||
+ | Служба імен DNS (Domain Name System) — це [[розподілена база даних]] доволі простої структури. Для початкового знайомства можна вважати, що це кілька таблиць, у яких записано: | ||
+ | * яку ІР-адресу має машина з певним іменем; | ||
+ | * яке ім'я має машина з визначеною адресою; | ||
+ | * що це за комп'ютер і яка операційна система встановлена на ньому; | ||
+ | * куди потрібно направляти електронну пошту для користувачів цієї машини; | ||
+ | * які псевдоніми є у даної машини. | ||
+ | |||
+ | Для прикладу розглянемо випадок, коли користувач посилає пошту з машини ''polesye.zhitomir.ua'' користувачу за адресою ''[email protected]'' (знак «@» носить назву ''commercial «at» sign''). При встановленні на машину протоколів TCP/IP системний адміністратор вказує ІР-адресу комп'ютера — найближчого серверу імен. Поштова програма подає цьому найближчому серверу запит: «Куди посилати пошту для ziet.zhitomir.ua» Якщо найближчий сервер не може відповісти, то він, в свою чергу, посилає запит до більш «старшого» серверу. Нарешті, стає зрозумілим, що всю пошту для області ''ziet.zhitomir.ua'' необхідно відправляти на машину ''alpha.ziet.zhitomir.ua'' або ''relay2.lucky.net''. Разом з цим відповіді містять ще адресу цієї машини. Поштова програма зв'язується з цим комп'ютером (використовуючи не ім'я, а адресу) та передає йому пошту. Всі ці переговори та відправка пошти, як правило, відбувається протягом кількох секунд і користувач не помічає цього. Якщо машина ''ziet.zhitomir.ua'' недоступна то тоді пошта на час, в якій неможливо зв'язатися з машиною ''ziet.zhitomir.ua'' (наприклад під час профілактики каналу зв'язку) чекає своєї черги на пересилку на машині ''relay2.lucky.net''. | ||
+ | |||
+ | Це характерна для Internet-програм поведінка. Як правило, поштові програми подають доволі багато запитів службі DNS, і ці питання доволі складні. У більшості випадків у програмах користувачів намагаються дізнатися лише одне — яка ІР-адреса у машини з відповідним іменем. Зрозуміло, що всередині цієї системи імен існує маса нюансів, правил та хитрощів. Більш докладніше з ними можна ознайомитися в описах стандартів Internet або в спеціальних книгах. | ||
[[TCP/IP]] | [[TCP/IP]] | ||
[[category:Комп'ютерні мережі]] | [[category:Комп'ютерні мережі]] |
Версія за 14:04, 11 січня 2010
Протокол DNS (Domain Name Service - служба доменних імен) забезпечує пошук імен хостів, використовуючи розподілену по мережних серверах імен базу даних.
Протокол DNS виконує дві основні функції. Він дозволяє клієнтським комп'ютерам запитувати DNS-сервер про IP-адресу або ім'я якого-небудь хоста в мережі, а також дозволяє робити обмін інформацією між базами даних серверів DNS. У цьому протоколі використовується стандартний формат типу "запит-відповідь", де клієнт посилає пакет запиту, і сервер відповідає або пакетом з інформацією, отриманою з бази даних, або повідомленням про помилку, у якому вказується причина відмови в обробці запиту. У своїй роботі цей протокол використовує порт 53 і добре відомі протоколи — TCP або UDP. Причому останнім часом UDP став більш розповсюдженим методом транспортування пакетів по мережі Internet. Пакет DNS складається з п'яти полів: заголовка, питання, відповіді, повноважень і поля додаткової інформації.
Формат повідомлень DNS показаний на малюнку.
Ідентифікатор - 16-бітове поле для позначення відповідності між запитами і відгуками.
Q - 1-бітовий прапор запиту (query).
Запит - 4-бітовий опис типу повідомлення:
0 стандартний запит (адреса по імені). 1 зворотний запит (ім'я за адресою). 2 запит стану сервера.
A (Authoritative Answer) - 1-бітовий прапор, що показує відгук від уповноваженого (authoritative) сервера імен.
T (Truncation) - відкидання. 1-бітовий прапор, що говорить про відкидання повідомлення.
R - 1-бітовий прапор, який встановлюэться для дозволу запиту рекурсивним шляхом.
V - 1-бітовий прапор підтримки рекурсивного сервісу.
B - 3-бітове поле, зарезервоване для використання в майбутньому (0).
Rcode -
Код відгуку - 4-бітове поле, що встановлюэться сервером імен для позначення стану запиту: 0 немає помилок. 1 неможливо інтерпретувати запит через формальну помилку. 2 обробка неможлива через збій на сервері. 3 запитане ім'я не існує. 4 непідтримуваний тип запиту. 5 відмова від виконання запиту.
Лічильник питань - 16-бітове поле, що містить число записів у розділі питань.
Лічильник відповідей - 16-бітове поле, що містить число записів про ресурси в розділі відповідей.
Лічильник Authority - 16-бітове поле, що визначає число записів про ресурси сервера імен у розділі authority (повноваження).
Лічильник доповнень - 16-бітове поле, що визначає число записів про ресурси сервера імен у додатковому розділі.
Правила формування імен
Повне доменне (від англ. domain) ім'я машини (FQDN, Fully Qualified Domain Name) можна розбити на дві частини — ім'я області-домена та власне ім'я машини. Наприклад, m30.ziet.zhitomir.ua — повна доменне ім'я машини m30, яка знаходиться у домені ziet.zhitomir.ua.
За порядок у доменах, як правило, відповідає певний комп'ютер, користувачі-адміністратори якого слідкують за тим, щоб не було, наприклад, різних машин з однаковими ІР-адресами. Наприклад, відповідальність за область-домен ziet.zhitomir.ua покладається на машину alpha.ziet.zhitomir.ua Ця влада делегується зверху вниз від машини ns.lucky.net, яка відповідає за домен zhitomir.ua. В свою чергу, відповідальність за область ua делегована машині зверху від так званих кореневих серверів (root server).
Всю цю систему можна уявити у вигляді перевернутого дерева. Нижче наведений список імен доменів верхнього рівня (далеко не повний). Повний список географічних областей, в основному, відповідає двобуквеним ISO-кодам країн і його можна знайти, наприклад, на WWW-сервері ISOC (http://www.isoc.org).
Необхідно розрізняти доменне ім'я, та поштову адресу. В поштовій адресі повинен бути знак «@», якій розділяє поштову адресу на доменне ім'я та ім'я поштової скриньки.
Коли мережа Інтернет була молода та невелика, таблиці відповідності імен та адрес зберігалися у звичайному текстовому файлі, який періодично просто розсилався всім учасникам електронною поштою. Після того, які кількість машин значно збільшилася, така схема перестала ефективно працювати і програмісти університету штату Каліфорнія в Берклі спроектували і написали програму BIND (Berkeley Internet Name Domain), яка відповідає на запити машин користувачів, які стосувалися імен та ІР-адресу.
Служба імен DNS (Domain Name System) — це розподілена база даних доволі простої структури. Для початкового знайомства можна вважати, що це кілька таблиць, у яких записано:
- яку ІР-адресу має машина з певним іменем;
- яке ім'я має машина з визначеною адресою;
- що це за комп'ютер і яка операційна система встановлена на ньому;
- куди потрібно направляти електронну пошту для користувачів цієї машини;
- які псевдоніми є у даної машини.
Для прикладу розглянемо випадок, коли користувач посилає пошту з машини polesye.zhitomir.ua користувачу за адресою [email protected] (знак «@» носить назву commercial «at» sign). При встановленні на машину протоколів TCP/IP системний адміністратор вказує ІР-адресу комп'ютера — найближчого серверу імен. Поштова програма подає цьому найближчому серверу запит: «Куди посилати пошту для ziet.zhitomir.ua» Якщо найближчий сервер не може відповісти, то він, в свою чергу, посилає запит до більш «старшого» серверу. Нарешті, стає зрозумілим, що всю пошту для області ziet.zhitomir.ua необхідно відправляти на машину alpha.ziet.zhitomir.ua або relay2.lucky.net. Разом з цим відповіді містять ще адресу цієї машини. Поштова програма зв'язується з цим комп'ютером (використовуючи не ім'я, а адресу) та передає йому пошту. Всі ці переговори та відправка пошти, як правило, відбувається протягом кількох секунд і користувач не помічає цього. Якщо машина ziet.zhitomir.ua недоступна то тоді пошта на час, в якій неможливо зв'язатися з машиною ziet.zhitomir.ua (наприклад під час профілактики каналу зв'язку) чекає своєї черги на пересилку на машині relay2.lucky.net.
Це характерна для Internet-програм поведінка. Як правило, поштові програми подають доволі багато запитів службі DNS, і ці питання доволі складні. У більшості випадків у програмах користувачів намагаються дізнатися лише одне — яка ІР-адреса у машини з відповідним іменем. Зрозуміло, що всередині цієї системи імен існує маса нюансів, правил та хитрощів. Більш докладніше з ними можна ознайомитися в описах стандартів Internet або в спеціальних книгах.