Литература

12.1 Служба DHCP.

DHCP (Dynamic Host Configuration Protocol) - протокол динамической конфигурации хоста.

DHCP является расширением и дополнением протокола BOOTP, который предназначен для выдачи IP-адресов бездисковым машинам.

Используется транспортный протокол UDP.

DHCP построен по схеме клиент-сервер.

Сервер должен отвечать на пакеты с IP-адресом 255.255.255.255, т.к. клиент может не знать где находится (какая IP-сеть, какой IP-адрес у DHCP).

Порт сервера по умолчанию 67.

Порт клиента по умолчанию 68.

Механизмы выделения IP-адресов сервером DHCP:

  • Динамическое присвоение - присваивает клиенту IP-адрес на ограниченное время.

  • Ручное выделение - IP-адрес клиента привязывается к адресу канального уровня (MAC-адрес для Ethrnet) клиента в базе DHCP, сетевым администратором.

Основные компоненты службы:

  • DHCP клиент

  • DHCP сервер

  • Relay Agent (агент пересылки) BOOTP - хост (маршрутизатор), который осуществляет связь между клиентом и сервером DHCP. В 2001г принят стандарт DHCP Relay Agent - RFC3046, и в следующей версии, наверное, будет DHCP Relay Agent вместо Relay Agent BOOTP. В старой версии (RFC0951) Relay Agent назывался BOOTP forwarding agents.

  • Binding (сопряжение) - совокупность конфигурационных параметров, включая, как минимум, IP-адрес, присваиваемый DHCP-клиенту.

12.2 Протокол BOOTP.

Создан для загрузки бездисковых машин.

Стандарт BOOTP - RFC0951 (Bootstrap Protocol W.J. Croft, J. Gilmore Sep-01-1985).

Последняя версия дополнений для BOOTP - RFC1542 (Clarifications and Extensions for the Bootstrap Protocol W. Wimer October 1993). Введено понятие Relay Agent.

Первая версия расширения разработчиков (поле vend) для BOOTP - RFC1048 (BOOTP vendor information extensions P.A. Prindeville Feb-01-1988).

Последняя версия расширения разработчиков (поле vend) для BOOTP - RFC2132 (DHCP Options and BOOTP Vendor Extensions S. Alexander, R. Droms March 1997).

BOOTP является прототипом DHCP, в DHCP есть все что было в BOOTP.

Поэтому BOOTP подробно рассматривать не будем.

12.3 Протокол DHCP.

Первый стандарт DHCP - RFC1531 (Dynamic Host Configuration Protocol R. Droms October 1993).

Последняя версия DHCP - RFC2131 (Dynamic Host Configuration Protocol R. Droms March 1997).

Последняя DHCP версия для IPv6 - RFC3315 (Dynamic Host Configuration Protocol for IPv6 (DHCPv6) R. Droms, Ed., J. Bound, B. Volz, T. Lemon, C. Perkins, M. Carney July 2003).

Последняя версия дополнительных параметров (поле OPTIONS) для DHCP - RFC2132 (DHCP Options and BOOTP Vendor Extensions S. Alexander, R. Droms March 1997).

12-1

Формат DHCP-пакета. Слова по 32 бита.

Назначение полей DHCP-сообщения

Поле Значения Описания
OP 1 - запрос (BOOTREQUEST)
2 - ответ (BOOTREPLY)
Код операции
HTYPE 1- для 10Мбитного Ethrnet
....
Тип адреса канального уровня
(смотри раздел ARP в RFC "Assigned Numbers")
HLEN 6- для 10Мбитного Ethrnet
....
Длина адреса канального уровня
HOPS 0 - выставляет клиент Используется relay-агентом, каждый relay-агентом увеличивает на 1.
XID случайное число,
устанавливается клиентом
Идентификатор транзакций
SECS секунды Время с загрузки сетевого модуля клиента
FLAGS 1000000000000000 - BROADCAST
(левый бит)
Флаги
(пока используется только для BROADCAST)
CIADDR 192.168.20.6 (пример) IP-адрес клиента (запрос)
YIADDR 192.168.20.7 (пример) IP-адрес клиента (ответ)
SIADDR 192.168.20.8 (пример) IP-адрес следующего сервера DHCP
(например для, доставки образа операционной системы
GIADDR 192.168.20.9 (пример) IP-адрес relay-агента, используется когда загрузка осуществляется через посредника.
CHADDR 00-02-44-10-36-E3 (пример Ethrnet) Адрес клиента канального уровня
SNAME ipm.kstu.ru (пример) Имя узла сервера DHCP
FILE Имя файла загрузки и др. информация для идентификации загрузочной части сетевого обеспечения клиента
OPTIONS Дополнительные параметры

Типы дополнительных параметров (поле OPTIONS) DHCP-сообщения (RFC2132)

Тип Тип (перевод) Код Длина (байт) Описания
Vendor Extensions (расширения разработчиков для BOOTP)
Pad Заполнитель 0 1 Нули - используются для заполнения неиспользуемых полей до полного слова
Subnet Mask Маска подсети 1 4 Маска подсети в локальной сети
Time Offset Смещение времени 2 4 Смещение времени по UTC (Coordinated Universal Time)
(для Москвы -10800(-3ч))
Router Маршрутизаторы 3 N Список IP-адресов N/4 маршрутизаторов
Time Server Серверы времени 4 N Список IP-адресов N/4 серверов времени
(спецификация RFC868)
Name Server сервер имен 5 N Список IP-адресов N/4 серверов имен
(спецификация IEN 116)
Domain Name Server DNS сервер 6 N Список IP-адресов N/4 DNS-серверов
(спецификация RFC1035)
Log Server Log-сервер 7 N Список IP-адресов N/4 log-серверов
(MIT-LCS UDP)
Cookie Server Сервер квот 8 N Список IP-адресов N/4 серверов квот
(спецификация RFC865)
LPR Server Сервер печати 9 N Список IP-адресов N/4 серверов печати
(спецификация RFC1179)
Impress Server Impress 10 N IP-адреса N/4 impress-серверов
Resource Location Server RLP-сервер 11 N IP-адреса N/4 RLP серверов
(спецификация RFC887)
Host Name Имя хоста 12 N Имя клиента
Boot File Size Размер Boot-файла 13 2 размер boot-файла,
размер в блоках по 512 байт,
записывается 16-м виде
Merit Dump File Файл образа памяти 14 N Путь к файлу в который клиент
должен выгрузиться образ памяти (core image) в случае клиентского сбоя.
путь - символьная строка, состоящая из символов от
NVT набор символов ASCII.
Domain Name Имя домена 15 N Имя домена
Swap Server Своп сервер 16 4 IP-адрес своп сервера
Root Path Корневой каталог 17 N Путь к корневому каталогу клиента
Extensions Path Путь к расширению 18 N Путь к расширению BOOTP
IP Layer Parameters per Host (параметры уровня IP для хоста)
IP Forwarding Форвард IP 19 1 Форвард IP
значения 0/1 (Enable/Disable)
Non-Local Source Routing Маршрутизация нелокальных пакетов 20 1 Маршрутизация нелокальных пакетов,
значения 0/1 (Enable/Disable)
Policy Filter Фильтр-список 21 N Фильтр-список (IP и маска) N/8
Non-Local Source Routing
Maximum Datagram Reassembly Size Максимальный размер сборки датаграммы 22 2 Максимальный размер сборки датаграммы клиента
Default IP Time-to-live Время жизни пакета IP 23 1 Время жизни пакета IP,
значения от 1 до 255
Path MTU Aging Timeout Время старения ...? 24 4 Время старения ...?
(в секундах)
Path MTU Plateau Table Таблица ...? 25 N Таблица ...?
IP Layer Parameters per Interface (параметры уровня IP для интерфейса)
Interface MTU MTU интерфейса 26 2 Максимальный блок данных для интерфейса
All Subnets are Local Все подсети и локальную сеть 27 1 Если подсети и локальная сеть используют одинаковый MTU то 0.
(значения 0/1)
Broadcast Address broadcast адрес 28 4 broadcast адрес для подсети клиента
Perform Mask Discovery Исполнить открытие маски 29 1 Исполнить открытие маски с помощью ICMP
(значения 0/1 (Disable/Enable))
Mask Supplier Поставка мски 30 1 Должен ли клиент отвечать на запросы маски подсети с помощью ICMP(значения 0/1 (Disable/Enable))
Perform Router Discovery Исполнить открытие маршрутизатора 31 Клиент должен обратиться к
маршрутизаторам, используя механизм открытия маршрутизатора, определенный в RFC1256
Router Solicitation Address Адрес ходатайства маршрутизатора 32 4 Адрес, к которому клиент должен передать
запросы к маршрутизатору
Static Route Статические маршруты 33 N Маршруты состоят из списка IP пар адресов. Первый адрес
является адресом источника, и второй адрес - маршрутизатор цель.
Link Layer Parameters per Interface (параметры уровня связи для интерфейса)
Trailer Encapsulation Формирование пакета завершителя 34 1 Клиент должен вести переговоры на
использование завершителей (RFC 893) при использовании протокола ARP.
(значения 0/1 (Disable/Enable))
ARP Cache Timeout Время ожидания для кеша ARP 35 4 Время ожидания для кеша ARP
Ethernet Encapsulation Формирование пакета Ethernet 36 1 Значение 0 указывает, что
клиент должен использовать RFC894 для формирования пакета.
Значение 1 указывает, что
клиент должен использовать RFC1042 формирования пакета.
TCP Parameters (TCP параметры)
TCP Default TTL Время жизни для TCP пакета 37 1 Время жизни для TCP пакета
TCP Keepalive Interval Интервал между посылками Keepalive TCP 38 4 Интервал между посылками Keepalive при TCP соединении
TCP Keepalive Garbage TCP
keepalive сообщения с Garbage
39 1 Клиент должен послать TCP
keepalive сообщения с Garbage
(значения 0/1 (Disable/Enable))
Application and Service Parameters (параметры приложений)
Network Information Service Domain Домен сетевой информационной службы 40 N Домен сетевой информационной службы (NIS)
Network Time Protocol Servers NTP серверы 41 N Список IP-адресов NTP серверов
Vendor Specific Information Специфическая информация поставщика 42 N Смотреть RFC
NetBIOS over TCP/IP Name Server Сервер имен NetBIOS 44 N Список IP-адресов NetBIOS серверов имен
(WINS-серверов)
NetBIOS over TCP/IP Datagram Distribution Server NBDD серверы 45 N Список IP-адресов NBDD серверов
(Рассылка дейтограмм NetBios)
NetBIOS over TCP/IP Node Type Тип узла NetBIOS 46 Тип узла NetBIOS
1 = B-node (only broadcast, no WINS)
2 = P-node (only unicast, WINS only )
4 = M-node (Mixed, broadcast, then WINS)
8 = H-node (Hybrids, WINS, then broadcast)
NetBIOS over TCP/IP Scope Ограничение набора символов 47 N Ограничение набора символов для клиента NetBIOS
RFC 1001/1002
X Window System Font Server Сервер X Window шрифтов 48 N Список IP-адресов серверов хранящих X Window (графический терминал) шрифты
X Window System Display Manager Сервер X Window оконных менеджеров 49 N Список IP-адресов cерверов хранящих X Window оконные менеджеры
Network Information Service+ Domain Домен NIS+ 64 N Домен NIS+
Network Information Service+ Servers Серверы NIS+ 65 N Список IP-адресов NIS+ cерверов
Mobile IP Home Agent Мобильные
домашние IP-агенты
68 N Cписок IP-адресов мобильных
домашних IP-агентов, доступных клиенту
Simple Mail Transport Protocol (SMTP) Server SMTP - серверы 69 N Cписок IP-адресов SMTP - серверов
Post Office Protocol (POP3) Server POP - серверы 70 N Cписок IP-адресов POP - серверов
Network News Transport Protocol (NNTP) Server NNTP - серверы 71 N Cписок IP-адресов NNTP - серверов
Default World Wide Web (WWW) Server WWW - серверы 72 N Cписок IP-адресов WWW - серверов, по умолчанию
Default Finger Server Finger - серверы 73 N Cписок IP-адресов Finger - серверов, по умолчанию
Default Internet Relay Chat (IRC) Server IRC - серверы 74 N Cписок IP-адресов IRC - серверов, по умолчанию
StreetTalk Server StreetTalk - серверы 75 N Cписок IP-адресов StreetTalk - серверов
StreetTalk Directory Assistance (STDA) Server STDA - серверы 76 N Cписок IP-адресов STDA - серверов
DHCP Extensions (расширения DHCP)
Requested IP Address Требуемый IP адрес 50 4 Используется в запросе клиента DHCPDISCOVER.
IP Address Lease Time Время аренды IP адреса 51 4 Время аренды IP адреса для клиента
Overload Перезагрузка 52 1 Индикатор перезагрузки,
значения 1/2/3 (file/sname/оба)
TFTP server name Имя сервера TFTP 66 N Имя (sname) сервера TFTP для перезагрузки
Bootfile name Имя файла перезагрузки 67 N Имя (file) файла перезагрузки
DHCP Message Type Типы DHCP-сообщений 53 1

Значения и тип сообщения
1 DHCPDISCOVER
2 DHCPOFFER
3 DHCPREQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNAK
7 DHCPRELEASE
8 DHCPINFORM

Server Identifier Идентификатор сервера 54 4 Идентификатор сервера DHCP
Parameter Request List Список запрашиваемых параметров 55 N Список запрашиваемых параметров клиентом,
указываются коды из данной таблицы
Message Сообщение 56 Сообщение об ошибках,
используется, когда клиент посылает DHCPNAK или DHCPDECLINE
Maximum DHCP Message Size Максимальный размер сообщения DHCP 57 2 Максимальный размер сообщения DHCP в байтах
Renewal (T1) Time Value Временной интервал обновления 58 1 Временной интервал от назначения IP-адреса до обновления (RENEWING)
Rebinding (T2) Time Value Временной интервал повторного переопределения 59 4 Временной интервал от назначения IP-адреса до повторного переопределения (Rebinding)
Vendor class identifier Идентификатор класса производителя 60 N Идентификатор класса производителя
Client-identifier Идентификатор клиента 61 N Идентификатор клиента, может состоять из пары htype/chaddr
site-specific
options
Зарезервировано 128-254 - Зарезервировано для специальных опций
End Конец 255 1 Конец списка



12.4 Механизм динамического выделения адресов.

Выделение происходит при обмене сообщений между сервером и клиентом.

Алгоритм получения:

  1. Клиент посылается широковещательный (BROADCAST-255.255.255.255) запрос DHCPDISCOVER всем серверам DHCP.

  2. Все активные серверы посылают широковещательный ответ DHCPOFFER. Клиент принимает все ответы, инициализацию делает по адресу канального уровня (MAC-адрес для Ethrnet).

  3. Клиент выбирает один из предложенных адресов и посылает широковещательно DHCPREQUEST, которое должно содержать параметр Server Identifier (поле OPTIONS), чтобы указать, какой сервер им выбран.

  4. Сервер посылает широковещательно DHCPACK.

  5. Клиент может работать.

12-2

Пример динамического выделения адреса (пошагово 1,2,3,4)

Типы DHCP-сообщений

Сообщение Значения Назначение
DHCPDISCOVER Обращение Клиент посылает сообщение широковещательно, чтобы обнаружить доступный сервер.
DHCPOFFER Предложение Посылает (широковещательно) сервер клиенту в ответ на сообщение DHCPDISCOVER и содержит конфигурационные параметры. Но это только предложение.
DHCPREQUEST Запрос Сообщения клиента серверу:
  • Запрашивающее параметры от одного сервера и неявно отвергающее предложения других серверов
  • Подтверждающее корректность ранее присвоенного адреса (например, после перезагрузки).
  • Запрос на продления времени жизни.
DHCPACK Подтверждение Посылается сервером клиенту и содержит конфигурационные параметры.
DHCPNAK Неподтвержден Посылает сервер клиенту, что сетевой адрес не корректен (например, клиент переместился в новую подсеть), или время использования адреса истекло.
DHCPDECLINE Отклонение Посылает сервер клиенту, что сетевой адрес уже используется.
DHCPRELEASE Освобождение Посылается клиентом серверу с целью отказа от IP-адреса.
DHCPINFORM Информация Посылается клиентом серверу с просьбой получить конфигурационные параметры (кроме IP-адреса), клиент уже имеет полученный извне IP-адреса.

12.4.1 Механизм повторного использования ранее выделеного адреса (RENEWING или Rebinding).

Если клиент сохранил и желает использовать выделенный ранее IP-адрес, он может опустить некоторые шаги алгоритма.

Алгоритм повторного получения:

  1. Клиент посылает DHCPREQUEST.

  2. Сервер, который узнает конфигурационные параметры клиента, посылает DHCPACK.

  3. Клиент может работать.

12.5 База записей DHCP.

Пример файла (dhcpd.leases) содержащего базу выданных IP-адресов. Приведено только две записи.


lease 194.85.241.234 { // Выданный IP-адрес
starts 1 2003/11/17 11:42:13; // Время выдачи
ends 1 2003/11/17 17:42:13; // Время истечения срока аренды
binding state active; // Состояние сопряжения активно (время не истекло)
next binding state free; // Следующее состояние сопряжения свободно (после истечения времени)
hardware ethernet 00:50:22:bb:c0:0d; // etherne

Последнее изменение: среда, 13 июля 2011, 16:23