Протокол DHCP
Перейти к навигации
Перейти к поиску
Ссылки по теме:
- 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