DNS та DHCP сервера
Основи DNS
Як відомо, для звернення до хостів у мережі Internet використовуються 32-х розрядні IP-адреси, які однозначно ідентифікують будь-який мережевий комп'ютер у глобальній мережі. Однак для користувачів застосування IP-адрес при звернені до хостів не дуже зручне. Тому в Internet прийнято присвоювати імена всіх комп'ютерів в Мережі. Використання імен дає користувачеві можливість краще орієнтуватися в кіберпросторі. В Internet - куди простіше запам'ятати, наприклад, ім'я http://www.ferrari.it/, ніж чотирьох ланковий ланцюжок IP-адреси. Застосування в Internet мнемонічних, зрозумілих для користувачів імен породило проблему їх перетворення в IP-адреси. Таке перетворення необхідно, так як на мережному рівні адресація пакетів здійснюється не по іменах, а по IP-адресами, отже, для безпосередньої адресації повідомлень в Internet імена не пригодні. На ранньому етапі розвитку Internet, коли в мережу (тоді вона ще не називалася Мережа) було об'єднано невелику кількість комп'ютерів, Інформаційний центр мережі (Network Information Center, NIC) для вирішення проблеми перетворення імен в адреси завів спеціальний файл (файл hosts), в який вносилися імена і відповідні ним IP-адреси всіх хостів у мережі. Даний файл регулярно оновлювався і розповсюджувався по всій мережі. Але в міру розвитку Internet число хостів, об'єднаних в мережу, збільшувалася, і дана схема ставала все менш і менш працездатною. Тому була створена нова система перетворення імен, що дозволяє користувачеві в разі відсутності у нього інформації щодо відповідності імен і IP-адрес отримати необхідні відомості від найближчого інформаційно-пошукового сервера (DNS сервер). Ця система одержала назву системи імен доменів - DNS (Domain Name System).
Для реалізації системи DNS був створений спеціальний мережевий протокол - DNS. Крім того, в мережі створювалися спеціальні виділені інформаційно-пошукові сервери - DNS-сервери. Пояснимо основне завдання, вирішуване службою DNS. У сучасній Мережі хост при зверненні до віддаленого сервера звичайно обізнаний тільки про його імені і не знає IP-адреси, який необхідний для безпосередньої адресації. Отже, перед хостом виникає стандартна проблема віддаленого пошуку: по імені віддаленого хоста знайти його IP-адресу. Вирішенням цієї проблеми і займається служба DNS на базі протоколу DNS.
Простір імен DNS має структуру, зовні схожу на файлову систему Unix.
Домен | Опис |
---|---|
com | Комерційні організації |
edu | Учбові організації |
gov | Урядові організації США |
int | Міжнародні організації |
mil | Військові організації США |
net | Мережі |
org | Інші організації |
Кожен вузол має позначку довжиною до 63 символів. Корінь дерева це спеціальний вузол без позначки. Мітки можуть містити великі літери або маленькі. Ім'я домену (domain name) для будь-якого вузла в дереві - це послідовність міток, яка починається з вузла виступає в ролі кореня, при цьому мітки розділяються крапками. Кожен вузол дерева повинен мати унікальне ім'я домену, проте однакові мітки можуть бути використані в різних точках дерева.
Ім'я домену, яке закінчується крапкою, називається абсолютним ім'ям домену (absolute domain name) або повним ім'ям домену. Якщо ім'я домену не закінчується на крапку, мається на увазі, що ім'я має бути завершено. Як буде закінчено ім'я, залежить від використовуваного програмного забезпечення DNS. Якщо незакінчену ім'я складається з двох або більше позначок, його можна сприймати як закінчену чи повне; інакше праворуч від імені повинен бути доданий локальний суфікс.
Домени верхнього рівня поділені на три зони:
- "arpa" це спеціальний домен, використовуваний для зіставлення адреса - ім'я
- Сім 3-символьних доменів називаються загальними (generic) доменами. У деяких публікаціях вони називаються організаційними (organizational) доменами.
- Усі 2-символьні домени, засновані на кодах країн, можна знайти в ISO 3166. Вони називаються доменами країн (country), або географічними (geographical) доменами.
DHCP
DHCP (Dynamic Host Configuration Protocol — протокол динамічної конфігурації вузла) — це мережний протокол, що дозволяє комп'ютерам автоматично одержувати IP-адресу й інші параметри, необхідні для роботи в комп'ютерна мережа|мережі TCP/IP. Для цього комп'ютер звертається до спеціального серверу, під назвою сервер DHCP. Мережевий адміністратор може задати діапазон адрес, що розподіляють серед комп'ютерів. Це дозволяє уникнути ручного настроювання комп'ютерів мережі й зменшує кількість помилок. Протокол DHCP використовується в більшості великих мереж TCP/IP.
DHCP є розширенням протоколу BOOTP, що використовувався раніше для забезпечення бездискова робоча станція|бездискових робочих станцій IP-адресами при їхньому завантаженні. DHCP зберігає зворотну сумісність з BOOTP.
Стандарт протоколу DHCP був прийнятий у жовтні 1993 року. Остання версія протоколу березень 1997 року. Нова версія DHCP, призначена для використання в середовищі IPv6, зветься DHCPv6.
Способи розподілу IP-адрес
Ручний розподіл. При цьому способі мережевий адміністратор зіставляє апаратну адресу (для Ethernet мереж це MAC-адреса) кожного клієнтського комп'ютера певні IP-адресі. Фактично, даний спосіб розподілу адрес відрізняється від ручної настройки кожного комп'ютера лише тим, що відомості про адреси зберігаються централізовано (на сервері DHCP), і тому їх простіше змінювати при необхідності.
Автоматичний розподіл. При даному способі кожного комп'ютера на постійне використання виділяється довільний вільний IP-адреса з визначеного адміністратором діапазону.
Динамічний розподіл. Цей спосіб аналогічний автоматичного розподілу, за винятком того, що адреса видається комп'ютера не на постійне користування, а на певний термін. Це називається орендою адреси. Після закінчення терміну оренди IP-адреса знову вважається вільною, і клієнт зобов'язаний запитати нову (вона, втім, може виявитися тією же самою). Крім того, клієнт сам може відмовитися від отриманого адреси.
Етапи процесу отримання IP-адреси від DHCP-сервера
1. Виявлення DHCP
Спочатку клієнт виконує широкомовний запит по всій фізичної мережі з метою виявити доступні DHCP-сервери. Він відправляє повідомлення типу DHCPDISCOVER, при цьому в якості IP-адреси джерела вказується 0.0.0.0 (так як комп'ютер ще не має власного IP-адреси), а в якості адреси призначення - широкомовна адресу 255.255.255.255. Клієнт заповнює кілька полів повідомлення початковими значеннями: У полі xid поміщається унікальний ідентифікатор транзакції, який дозволяє відрізняти цей процес отримання IP-адреси від інших, що протікають в той же час. У полі chaddr поміщається апаратна адреса (MAC-адресу) клієнта. У поле опцій вказується останній відомий клієнту IP-адресу. У даному прикладі це 192.168.1.100. Це необов'язково і може бути проігноровано сервером. Повідомлення DHCPDISCOVER може бути поширене за межі локальної фізичної мережі за допомогою спеціально налаштованих агентів ретрансляції DHCP, що перенаправляє надходять від клієнтів повідомлення DHCP серверів в інших підмережах.
2. Пропозиція DHCP
Отримавши повідомлення від клієнта, сервер визначає необхідну конфігурацію клієнта згідно із зазначеними мережевим адміністратором настройками. В даному випадку DHCP-сервер згоден з замовленим клієнтом адресою 192.168.1.100. Сервер відправляє йому відповідь (DHCPOFFER), в якому пропонує конфігурацію. Пропонований клієнту IP-адреса вказується в полі yiaddr. Інші параметри (такі, як адреси маршрутизаторів і DNS-серверів) вказуються у вигляді опцій у відповідному полі. Це повідомлення DHCP-сервер відправляє хосту, що відправив DHCPDISCOVER, на його MAC, за певних обставин повідомлення може поширюватися як широкомовна розсилка. Клієнт може отримати кілька різних пропозицій DHCP від різних серверів; з них він повинен вибрати те, що його «влаштовує».
3. Запит DHCP
Вибравши одну з конфигурацій, запропонованих DHCP-серверами, клієнт відправляє запит DHCP (DHCPREQUEST). Він розсилається широкомовно; при цьому до опцій, вказаних клієнтом в повідомленні DHCPDISCOVER, додається спеціальна опція — ідентифікатор сервера — що вказує адресу DHCP-сервера, обраного клієнтом (в даному випадку — 192.168.1.1).
4. Підтвердження DHCP
Нарешті, сервер підтверджує запит і відправляє це підтвердження (DHCPACK) клієнту. Після цього клінєт має налаштувати свій мережевий інтерфейс, використовуючи отримані опції.
Структура повідомлень DHCP
Поле | Опис | Довжина (в байтах) |
---|---|---|
op | Тип повідомлення. Наприклад може приймати значення: BOOTREQUEST (1, запит від клєнта до сервера) и BOOTREPLY (2, відповідь від сервера клієнту). | 1 |
htype | ти апаратної адреси. Допутстимі значення описані в RFC «Assigned Numbers». Наприклад, для MAC-адреса Ethernet 10 Мбит/с це поле приймає значення 1. | 1 |
hlen | Довжина апаратної адреси в байтах. Для MAC-адреса Ethernet — 6. | 1 |
hops | Кількість проміжних маршрутизаторів (так званих агентів ретрансляції DHCP), через які пройшло повідомлення. Клієнт встановлює це значення в 0. | 1 |
xid | Унікальний ідентифікатор транзакцїх, генерований клєнтом на початку процесу отримання адреси. | 4 |
secs | Час в секундах з початку процеса отримання адреси. | 2 |
flags | Поле для прапорців — спецільних параметрів протокола DHCP. | 2 |
ciaddr | IP-адреса клієнта. Заповнюється тільки в тому випадку, якщо клієнт вже має особисту IP-адресу і здатний відповідати на запити ARP. | 4 |
yiaddr | Нова IP-адреса клієнта, запропонований сервером. | 4 |
siaddr | IP-адреса сервера. Повертається в пропозиції DHCP (див. нижче). | 4 |
giaddr | IP-адреса агента ретрансляції, якщо він приймав участь в процесі доставки повідомлення DHCP до сервера. | 4 |
chaddr | Аппарата адреса (як правило, MAC-адрес) клієнта. | 16 |
sname | Необов"язкове і"мя сервера у вигляді нуль-терминированной строки. | 64 |
file | Необов"язкове ім"я файла на сервері, яке використовується при дистанційному завантаженні. Як і sname, представлено у вигляді нуль-термінованого рядка. | 128 |
options | Поле опції DHCP. Тут вказуються різноманітні додаткові параметри конфігурації. На початку цього поля вказуються чотири особливих байта зі значеннями 99, 130, 83, 99, що дозволяють серверу визначити наявність цього поля. Поле мати змінну довжину, проте DHCP-клієнт повинен бути готовий прийняти повідомлення розміром 576 байт. | змінна |