Протокол DHCP
Версия от 02:20, 18 декабря 2020; Admin (обсуждение | вклад)
Ссылки по теме:
- RFC2131 - Dynamic Host Configuration Protocol (DHCP)
- RFC2132 - DHCP Options and BOOTP Vendor Extensions
- DHCP and BOOTP Parameters
- RFC3315 - DHCPv6
- RFC951 - Bootstrap Protocol (BOOTP)
- DHCP (википедия)
- DHCPv6 (википедия)
Протокол DHCP:
- является расширением протокола BOOTP и поддерживает обратную совместимость с ним
- предназначен для автоматической конфигурации сетевых устройств
- выполняет две задачи:
- выделение IP адреса
- передача различных конфигурационных параметров (опций)
Формат DHCP сообщения
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | op (1) | htype (1) | hlen (1) | hops (1) | +---------------+---------------+---------------+---------------+ | xid (4) | +-------------------------------+-------------------------------+ | secs (2) | flags (2) | +-------------------------------+-------------------------------+ | ciaddr (4) | +---------------------------------------------------------------+ | yiaddr (4) | +---------------------------------------------------------------+ | siaddr (4) | +---------------------------------------------------------------+ | giaddr (4) | +---------------------------------------------------------------+ | | | chaddr (16) | | | | | +---------------------------------------------------------------+ | | | sname (64) | +---------------------------------------------------------------+ | | | file (128) | +---------------------------------------------------------------+ | | | options (variable) | +---------------------------------------------------------------+
| Имя | Описание |
|---|---|
| ciaddr | текущий IP клиента (если есть) |
| yiaddr | новый IP клиента |
| siaddr | IP сервера |
| giaddr | IP агента ретрансляции |
| chaddr | аппаратный адрес клиента (MAC адрес) |
| options | опции DHCP [1] |
| Код | Байт | Имя | Описание |
|---|---|---|---|
| 1 | 4 | Subnet Mask | Маска подсети |
| 3 | %4 | Router | Список маршрутизаторов подсети (default gateway) |
| 6 | %4 | Domain Name Server | Список DNS серверов |
%4 - длинна кратна 4, минимум 4 байта
| Сообщение | Напр. | Назначение |
|---|---|---|
| DHCPDISCOVER | C->B | Широковещательное сообщение поиска DHCP сервера |
| DHCPOFFER | C<-S | Ответ на DHCPDISCOVER с предложением конфигурационных параметров |
| DHCPREQUEST | С->B |
Возможны варианты:
|
| DHCPACK | C<-S | параметры конфигурации, включая выделенный IP адрес. |
| DHCPNAK | C<-S | Уведомление клиенту о том что его IP адрес некорректен (к примеру, клиент перемещен с другой подсети или у него истекла аренда IP адреса) |
| DHCPDECLINE | C->S | Сообщение о том что адрес уже используется |
| DHCPRELEASE | C->S | Сообщение об освобождении IP адреса и отмене текущей аренды |
| DHCPINFORM | C->S | Запрос только опций, клиент уже имеет назначенный IP адрес. |
Обозначения: C - клиент, S - сервер, B - broadcast
Запрос нового IP адреса
Server Client Server
(not selected) (selected)
v v v
| | |
| Begins initialization |
| | |
| _____________/|\_____________ |
|/DHCPDISCOVER | DHCPDISCOVER \|
| | |
Determines | Determines
configuration | configuration
| | |
|\ | ____________/|
| \________ | /DHCPOFFER |
| DHCPOFFER\ |/ |
| \ | |
| Collects replies |
| \ | |
| Selects configuration |
| | |
| _____________/|\____________ |
|/ DHCPREQUEST | DHCPREQUEST\ |
| | \|
| | Commits configuration
| | |
| | _____________/|
| |/ DHCPACK |
| | |
| Initialization complete |
| | |
. . .
. . .
| | |
| Graceful shutdown |
| | |
| |\_____________ |
| | DHCPRELEASE \|
| | |
| | Discards lease
| | |
v v v
Запрос на подтверждение выданного ранее IP адреса
Server Client Server
v v v
| | |
| Begins |
| initialization |
| | |
| /|\ |
| ____________/ | \___________ |
| /DHCPREQU EST | DHCPREQUEST\ |
|/ | \|
| | |
Locates | Locates
configuration | configuration
| | |
|\ | /|
| \ | ___________/ |
| \ | / DHCPACK |
| \ _______ |/ |
| DHCPACK\ | |
| Initialization |
| complete |
| \| |
| | |
| (Subsequent |
| DHCPACKS |
| ignored) |
| | |
| | |
v v v