DHCP

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамічної конфігурації вузла) — це протокол прикладного рівня, що дозволяє комп'ютерам автоматично одержувати IP-адресу й інші параметри, необхідні для роботи в мережі. Для цього комп'ютер звертається до спеціального серверу, під назвою сервер DHCP. Мережевий адміністратор може задати діапазон адрес, що розподіляють серед комп'ютерів. Це дозволяє уникнути ручного налаштування комп'ютерів мережі й зменшує кількість помилок. Протокол DHCP використовується в більшості великих мереж TCP/IP.

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

Стандарт протоколу DHCP був прийнятий у жовтні 1993 року. Остання версія протоколу (березень 1997 року) описана в RFC 2131. Нова версія DHCP, призначена для використання в середовищі IPv6, зветься DHCPv6 і визначена в RFC 3315 (липень 2003 року).

Опції DHCP[ред.ред. код]

Крім IP-адреси, DHCP також може повідомляти клієнтові додаткові параметри, необхідні для нормальної роботи в мережі. Ці параметри називаються опціями DHCP. Список стандартних опцій можна знайти в RFC 2132. Деякими з найбільш часто використовуваних опцій є:

  • IP-адреса маршрутизатора за замовчуванням;
  • маска підмережі;
  • адреси серверів DNS;
  • ім'я домену DNS.

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

Режими DHCP[ред.ред. код]

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

  1. Динамічний розподіл - адміністратор присвоює IP-діапазон адрес на сервері DHCP. Кожен клієнтський комп'ютер в мережі повинен запросити IP-адресу від DHCP-сервера, коли мережа ініціалізується за концепцією "оренди". Коли закінчується термін оренди, якщо вона не буде продовжена, DHCP-сервер має право повернути адресу і призначити її на інші комп'ютери.
  2. Автоматичне виділення - сервер DHCP буде постійно призначати вільний IP-адрес з діапазону, встановленого адміністратором, запитуючому комп'ютеру. Основна відмінність з динамічним розподілом в тому, що сервер зберігає записи минулих завдань IP і намагається привласнити ту ж адресу тому ж комп'ютеру для майбутніх мережних підключень.
  3. Статичний розподіл - сервер DHCP робить призначення IP-адрес виключно на основі таблиці MAC-адрес, які зазвичай заповнені вручну адміністратором мережі. Якщо MAC-адреса комп'ютера не зазначена в таблиці, йому не буде призначений мережевий адрес.

Структура протоколу[ред.ред. код]

Протокол DHCP є клієнт-серверним, тобто в його роботі беруть участь клієнт DHCP і сервер DHCP. Передача даних здійснюється за допомогою протоколу UDP, при цьому сервер приймає повідомлення від клієнтів на порт 67 і відправляє повідомлення клієнтам на порт 68.

Поле Опис Довжина(в байтах)
op Тип повідомлення. Наприклад може приймати значення: BOOTREQUEST (1, запит від клієнта до сервера) і BOOTREPLY (2, відповідь від сервера до клієнта). 1
htype Тип апаратної адреси. Допустимі значення цього поля визначені в RFC1700 «Assigned Numbers». Наприклад, для MAC-адреси Ethernet 10 Мбіт/с це поле приймає значення 1. 1
hlen Довжина апаратної адреси в байтах. Для MAC-адреси Ethernet - 6. 1
hops Кількість проміжних маршрутизаторів (так званих агентів ретрансляції DHCP), через які пройшло повідомлення. Клієнт встановлює це поле в 0. 1
xid Унікальний ідентифікатор транзакції, що генерується клієнтом на початку процесу отримання адреси. 4
secs Час в секундах з моменту початку процесу отримання адреси. Може не використовуватися (в цьому випадку воно встановлюється в 0). 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-клієнт повинен бути готовий прийняти DHCP-повідомлення завдовжки 576 байт (в цьому повідомленні поле options має довжину 340 байт). змінна

Як працює DHCP[ред.ред. код]

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

Клієнт DHCP, що потребує адрес, посилає широкомовний пакет DHCPDISCOVER в пошуках сервера. Пакет містить апаратний адрес запитувача клієнта. Потім один або кілька серверів DHCP розглядають запит і посилають у відповідь пакет DHCPOFFER, що містить пропонований IP-адрес і "час оренди".

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

Обраний сервер посилає підтвердження (DHCPACK) і процес узгодження завершується. Пакет DHCPACK містить обумовлені адресу та час оренди. Сервер позначає виділену адресу як зайняту - до закінчення терміну оренди цю адресу не можна буде присвоїти іншому клієнту. Клієнту залишилося тільки сконфігурувати себе відповідно до надісланих даних і можна приступати до роботи в мережі.

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

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

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

Джерела[ред.ред. код]

  • Комп'ютерні мережі: [навчальний посібник] / А. Г. Микитишин, М. М. Митник, П. Д. Стухляк, В. В. Пасічник. — Львів: «Магнолія 2006», 2013. — 256 с. ISBN 978-617-574-087-3
  • Буров Є. В. Комп'ютерні мережі: підручник / Євген Вікторович Буров. — Львів: «Магнолія 2006», 2010. — 262 с. ISBN 966-8340-69-8

Посилання[ред.ред. код]