Відмінності між версіями «DNS клієнт»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показані 4 проміжні версії цього учасника)
Рядок 1: Рядок 1:
'''DNS-сервер''' — додаток, призначений для відповідей на DNS-запити за відповідним протоколом. Також DNS-сервером можуть називати хост, на якому запущено програму.
+
'''DNS-клієнт''' - програма (або модуль в програмі), що забезпечує визначення адреси вузла по його повного імені.
  
== Типи DNS-серверів ==
+
Функція клієнта DNS вбудована майже в будь-яку програму, призначену для роботи в мережі '''Internet'''. Однак, більшість DNS-клієнтів не вміють самостійно виконувати рекурсію, тому що в противному випадку їх алгоритми довелося б невиправдано ускладнювати. Крім цього використання рекурсії DNS-клієнтами не дозволило б здійснювати режими обмеження доступу в зовнішню мережу і кешування DNS.
За виконуваними функцій DNS-сервери поділяються на декілька груп, залежно від конфігурації конкретний сервер може відноситися до декількох типів;
+
* '''''Авторитативний DNS-сервер''''' — сервер, що відповідає за будь-яку зону.
+
** '''''Майстер''''' або ''первинний сервер'' (в термінології '''BIND''') — сервер, що має право на внесення змін в дані зони. Зазвичай для зони буває тільки один майстер сервер. У випадку Microsoft DNS-сервера і його інтеграції з Active Directory майстер-серверів може бути декілька (так як реплікація змін здійснюється не засобами DNS-сервера, а засобами Active Directory, за рахунок чого забезпечується рівноправність серверів і актуальність даних).
+
** '''''Слейв''''' або ''вторинний сервер'', що не має права на внесення змін в дані зони і отримує повідомлення про зміни від майстер-сервера. На відміну від майстер-сервера їх може бути (практично) необмежена кількість. Слейв так само є авторитативним сервером (і користувач не може розрізнити майстер і слейв, різниця з'являється тільки на етапі конфігурації / внесення змін до налаштувань зони).
+
* '''''Кешуючий DNS-сервер''''' — сервер, який обслуговує запити клієнтів, (отримує рекурсивний запит, виконує його за допомогою нерекурсивних запитів до авторитативних серверів або передає рекурсивний запит DNS-серверу, що стоїть вище за ієрархією)
+
* '''''Локальний DNS-сервер''''' - використовується для обслуговування DNS-клієнтів, що виконуються на локальній машині. Фактично, це різновид кешуючого DNS-сервера, сконфігурований для обслуговування локальних додатків.
+
* '''''Перенаправляючий DNS-сервер''''' - сервер, що перенаправляє отримані рекурсивні запити кешуючому серверу (який знаходиться вище за ієрархією) у вигляді рекурсивних запитів. Використовується переважно для зниження навантаження на кешуючий DNS-сервер.
+
* '''''Кореневі сервери DNS''''' — сервер, який є авторитативним за кореневу зону. Загальновживаних кореневих серверів у світі всього 13 штук, їх доменні імена знаходяться в зоні '''''root-servers.net''''' і називаються '''''a.root-servers.net''''', '''''b.root-servers.net''''', …, '''''m.root-servers.net'''''. У певних конфігураціях локальної мережі можлива ситуація налаштування локальних кореневих серверів.
+
* '''''Реєструючий DNS-сервер'''''. Сервер, що приймає динамічні оновлення від користувачів. Часто поєднується з DHCP-сервером. У Microsoft DNS-сервер при роботі на контролері домену сервер працює в режимі реєструючого DNS-сервера, приймаючи від комп'ютерів домену інформацію про відповідність імені та IP-адресу комп'ютера і оновлюючи відповідно до неї дані зони домену.
+
* '''''DNSBL-сервер''''' (сервер з чорними списками адрес та імен). Формально, такий сервер не входить в ієрархію DNS, однак використовує той же механізм і протокол для роботи, що і DNS-сервера.
+
  
== Види DNS-запитів ==
+
== Спеціалізовані програми ==
  
=== Прямий запит ===
+
Для діагностики DNS використовуються спеціалізовані програми - '''''nslookup''''' і '''''dig'''''. Версія '''''nslookup''''' для '''Windows''' (як і багато DNS-клієнти для windows) підтримує '''WINS''', що може створювати плутанину при розрізняються відповідях '''WINS''' і '''DNS''' серверів. Деякі версії '''''nslookup''''' в '''Unix''' підтримують крім DNS ще й '''''Network Information Service''''', що так само ускладнює діагностику. При перевірці інтегрованих з '''''Active Directory DNS-серверів''''' може використовуватися утиліта '''''dcdiag'''''.
Прямий (''forward'') запит — запит на перетворення доменне ім'я (символьної адреси) хоста в числову IP-адресу.
+
  
=== Зворотний запит ===
+
== Режими роботи DNS-сервера ==
Зворотний (''reverse'') запит — запит на перетворення IP-адреси в ім'я хоста.
+
  
== Режим View ==
+
DNS-сервер, що виконує запит клієнта може працювати в одному з трьох режимів:
Деякі сервера підтримують можливість працювати в різних режимах для різних сегментів мережі. У '''Bind''' цей режим називається «view». Наприклад, сервер може для локальних адрес (наприклад, 10.0.0.0 / 8) віддавати локальні адреси серверів, для користувачів зовнішньої мережі — зовнішні адреси. Також сервер може бути авторитативним для заданої зони тільки для вказаного діапазону адрес (наприклад, у мережі 10.0.0.0 / 8 сервер оголошує себе авторитативним за зону internal, при цьому для зовнішніх адрес у відповідь на запит імені із зони internal буде віддаватися відповідь «не відомий»).
+
  
== Використовувані порти ==
+
* Режим форвардингу (передачі) запитів іншому DNS-сервера - у цьому випадку запит майже не відрізняється від запиту DNS-клієнта. (Така схема використовується при використанні кешує '''DNS-серверів''' і серверів в '''DMZ''').
Усі DNS-сервера за стандартом RFC 1035 відповідають на 53 порту TCP і UDP. При відправленні запитів ранні версії '''BIND''' використовували 53 порт, новіші поводять себе як DNS-клієнти, використовуючи вільні незареєстровані адреси.
+
* Режим самостійного виконання рекурсивного запиту.
 +
* Режим обслуговування зони (в цьому випадку запити на сторонні (не авторітатівние) зони не приймаються, замість цього повертаються адреси кореневих серверів).
 +
 
 +
У багатьох версіях '''BIND''' запит до інших DNS-серверів виходив з 53-го порту (порту, за якою приймаються запити DNS, як '''TCP''', так і '''UDP'''), на відміну від клієнтських додатків, що використовують довільний порт відправника (з незареєстрованої діапазону).
 +
 
 +
=== Робота з DNS різних програм ===
 +
 
 +
Поштовий сервер використовує клієнт DNS, для запиту '''MX''', '''SPF''', '''A-запис''' (наприклад, '''''sendmail''''' використовує '''MX-запис''' в порядку зростання пріоритету, але в разі відсутності відповідного маршруту, в якості останньої спроби використовує '''A-запис'''), '''PTR-записів''' (для визначення імені хоста). Крім того, багато версії поштових серверів використовують імена, отримані через запит '''PTR-запису''' для визначення наявності '''MX-запису''' у даного імені, це використовується для автоматичного відмови в доставці у не-поштових серверів (у більшості своїй бот-нетов).
 +
 
 +
У загальному випадку можлива конфігурація, коли для різних серверів і зон DNS-сервер веде себе по-різному (наприклад, з локальної мережі приймає рекурсивні запити, із зовнішнього - тільки запити на авторитативні зони, або форвард запити на інший сервер тільки для заданих зон).
 +
 
 +
Робочі станції та сервери в складі '''''Active Directory''''' використовують безліч DNS-записів типу '''SRV''' для визначення положення найближчого контролера домену в сайті і для виконання динамічного оновлення DNS-записи щодо робочої станції.
 +
 
 +
== Інтерфейс між програмою і DNS-клієнтом ==
 +
 
 +
Більшість програм, що використовують функції DNS, не реалізують його функціональність самостійно (через сокети), а використовують або надаються операційною системою функції '''DNS-клієнта''', або використовують готову бібліотеку клієнта. До меншості відносяться в основному низькорівневі утиліти і серверне ПЗ, якому необхідна більш специфічна функціональність, ніж надається '''DNS-клієнтом'''.

Поточна версія на 09:54, 19 жовтня 2010

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

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

Спеціалізовані програми

Для діагностики DNS використовуються спеціалізовані програми - nslookup і dig. Версія nslookup для Windows (як і багато DNS-клієнти для windows) підтримує WINS, що може створювати плутанину при розрізняються відповідях WINS і DNS серверів. Деякі версії nslookup в Unix підтримують крім DNS ще й Network Information Service, що так само ускладнює діагностику. При перевірці інтегрованих з Active Directory DNS-серверів може використовуватися утиліта dcdiag.

Режими роботи DNS-сервера

DNS-сервер, що виконує запит клієнта може працювати в одному з трьох режимів:

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

У багатьох версіях BIND запит до інших DNS-серверів виходив з 53-го порту (порту, за якою приймаються запити DNS, як TCP, так і UDP), на відміну від клієнтських додатків, що використовують довільний порт відправника (з незареєстрованої діапазону).

Робота з DNS різних програм

Поштовий сервер використовує клієнт DNS, для запиту MX, SPF, A-запис (наприклад, sendmail використовує MX-запис в порядку зростання пріоритету, але в разі відсутності відповідного маршруту, в якості останньої спроби використовує A-запис), PTR-записів (для визначення імені хоста). Крім того, багато версії поштових серверів використовують імена, отримані через запит PTR-запису для визначення наявності MX-запису у даного імені, це використовується для автоматичного відмови в доставці у не-поштових серверів (у більшості своїй бот-нетов).

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

Робочі станції та сервери в складі Active Directory використовують безліч DNS-записів типу SRV для визначення положення найближчого контролера домену в сайті і для виконання динамічного оновлення DNS-записи щодо робочої станції.

Інтерфейс між програмою і DNS-клієнтом

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