Принцип роботи
По архітектурі, робота протоколу заснована на взаємодії сервера і клієнта за допомогою обміну повідомлень. Всі повідомлення діляться на спеціальні поля:
Поле | Байти (октеты) | Пояснення |
---|---|---|
Op | 1 | Код повідомлення. 1 = запит, 2 = відповідь |
Htype | 1 | Тип адреси пристрою — фізичний, мережевий. |
Hlen | 1 | Довжина адреси пристрою. |
Hops | 1 | Число вузлів з ретранслятором між хостами. |
Xid | 4 | Ідентифікатор відповідності запиту та відповіді. |
Secs | 2 | Час в секундах. Відлік від початку запиту. |
Flags | 2 | Прапори. |
Ciaddr | 4 | IP клієнта. |
Yiaddr | 4 | В документації RFC 2131 — « (клієнт) IP «. |
Siaddr | 4 | IP чергового DHCP сервера. |
Giaddr | 4 | IP ретранслятора. |
Chaddr | 16 | MAC-address клієнта. |
Sname | 64 | Серверне ім’я (не обов’язкове). |
File | 128 | Найменування файлу завантаження. |
Options | змінний | Необов’язкові параметри. |
NAT в роутері і на сервері – що це таке і де використовується
Формат повідомлень у чому успадкований від попереднього протоколу BOOTP, при відправці використовуються транспортний протокол UDP, порти DHCP 67, 68.
Протокольний обмін між клієнтом і сервером відбувається за такими повідомленнями:
Повідомлення | Використання |
---|---|
DHCPDISCOVER | Пошук доступних серверів за допомогою широкомовної розсилки. |
DHCPOFFER | Пропозиція мережевої конфігурації. |
DHCPREQUEST | Відправлення повідомлення серверів:
|
DHCPACK | Відправка параметрів конфігурації, з мережевою адресою. |
DHCPNAK | Некоректну адресу (наприклад, при переїзді клієнта в іншу підмережа) або про закінчення терміну оренди. |
DHCPDECLINE | Адреса зайнятий. |
DHCPRELEASE | Звільнення мережевої адреси і відмова від оренди. |
DHCPINFORM | Запит параметрів локальної конфігурації; клієнт вже налаштований іншим способом. |
Є ще одна цікава властивість служби – робота в режимі ретранслятора (relay). Коли клієнт і сервер знаходяться в різних підмережах, виникають проблеми при передачі конфігураційних параметрів (маршрутизатор не приймає широкомовну розсилку), в цьому випадку можна використовувати службу в якості ретранслятора. Тоді ретранслятор для клієнтської мережі буде локальним сервером, а запитувати параметри буде у основного сервера.