Протокол динамической конфигурации хоста - Википедия - Dynamic Host Configuration Protocol
Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
Связующий слой |
В Протокол динамического конфигурирования сервера (DHCP) это протокол управления сетью используется на протокол Интернета (IP) сети, посредством чего DHCP сервер динамически присваивает айпи адрес и другие параметры конфигурации сети для каждого устройства в сети, чтобы они могли взаимодействовать с другими IP-сетями.[1] DHCP-сервер позволяет компьютерам запрос IP-адреса и сетевые параметры автоматически из интернет-провайдер (ISP), уменьшая потребность в сетевой администратор или Пользователь чтобы вручную назначить IP-адреса всем сетевым устройствам.[1] При отсутствии DHCP-сервера компьютеру или другому устройству в сети необходимо вручную назначить IP-адрес или назначить себе APIPA адрес, последний из которых не позволит ему общаться за пределами своего локального подсеть.
DHCP может быть реализован в сетях размером от домашние сети к большому сети кампусов и региональные сети Интернет-провайдеров.[2] А маршрутизатор или жилой шлюз можно включить в качестве DHCP-сервера. Большинство домашних сетевых маршрутизаторов получают глобально уникальный IP-адрес в сети Интернет-провайдера. В локальной сети DHCP-сервер назначает локальный IP-адрес каждому устройству, подключенному к сети.
История
В 1984 г. Протокол обратного разрешения адресов (RARP), определенный в RFC 903, был введен, чтобы позволить простые устройства, такие как бездисковые рабочие станции для динамического получения подходящего IP-адреса. Однако, поскольку он действовал в уровень канала передачи данных это затрудняло реализацию на многих серверных платформах, а также требовало наличия сервера на каждом отдельном сетевом соединении. RARP был заменен протоколом Bootstrap (BOOTP ) определено в RFC 951 в сентябре 1985 года. Это ввело понятие агент ретрансляции, что позволило пересылать пакеты BOOTP по сетям, позволяя одному центральному серверу BOOTP обслуживать узлы во многих IP-подсетях.[3]
DHCP основан на BOOTP, но может динамически выделять IP-адреса из пула и восстанавливать их, когда они больше не используются. Его также можно использовать для доставки широкого спектра дополнительных параметров конфигурации IP-клиентам, включая параметры для конкретной платформы.[4] DHCP был впервые определен в RFC 1531 в октябре 1993 г .; но из-за ошибок в редакционном процессе он был почти сразу переиздан как RFC 1541.
Четыре года спустя тип сообщения DHCPINFORM[5] и другие небольшие изменения были добавлены RFC 2131; которые по состоянию на 2014 год[Обновить] остается стандартом для сетей IPv4.
DHCPv6 первоначально был описан RFC 3315 в 2003 году, но он был обновлен многими последующими RFC.[6] RFC 3633 добавлен механизм DHCPv6 для префиксное делегирование, и автоконфигурация адреса без сохранения состояния был добавлен RFC 3736.
Обзор
протокол Интернета (IP) определяет, как устройства взаимодействуют внутри и между локальными сетями в Интернете. DHCP-сервер может управлять настройками IP для устройств в своей локальной сети, например, назначая этим устройствам IP-адреса автоматически и динамически.
DHCP работает на основе клиент-серверная модель. Когда компьютер или другое устройство подключается к сети, программное обеспечение DHCP-клиента отправляет DHCP-запрос. транслировать запрос, запрашивающий необходимую информацию. Любой DHCP-сервер в сети может обслуживать запрос. DHCP-сервер управляет пулом IP-адресов и информацией о параметрах конфигурации клиента, таких как шлюз по умолчанию, доменное имя, то серверы имен, и серверы времени. При получении запроса DHCP сервер DHCP может ответить конкретной информацией для каждого клиента, как это было ранее настроено администратором, или конкретным адресом и любой другой информацией, действительной для всей сети и в течение периода времени, для которого выделение (арендовать) действует. DHCP-клиент обычно запрашивает эту информацию сразу после загрузка, а затем периодически до истечения срока действия информации. Когда DHCP-клиент обновляет назначение, он сначала запрашивает те же значения параметров, но DHCP-сервер может назначить новый адрес на основе политик назначения, установленных администраторами.
В больших сетях, состоящих из нескольких каналов, один DHCP-сервер может обслуживать всю сеть при помощи агентов ретрансляции DHCP, расположенных на соединяющихся маршрутизаторах. Такие агенты ретранслируют сообщения между DHCP-клиентами и DHCP-серверами, расположенными в разных подсетях.
В зависимости от реализации DHCP-сервер может иметь три метода выделения IP-адресов:
- Динамическое размещение
- А сетевой администратор резервирует диапазон IP-адресов для DHCP, и каждый DHCP-клиент на LAN настроен на запрос IP-адреса от DHCP сервер во время инициализации сети. В процессе запроса и предоставления используется концепция аренды с контролируемым периодом времени, позволяющая DHCP-серверу восстанавливать, а затем перераспределять IP-адреса, которые не обновляются.
- Автоматическое распределение
- DHCP-сервер постоянно назначает запрашивающему клиенту IP-адрес из диапазона, определенного администратором. Это похоже на динамическое распределение, но DHCP-сервер хранит таблицу прошлых назначений IP-адресов, так что он может предпочтительно назначать клиенту тот же IP-адрес, который был у клиента ранее.
- Ручное распределение
- Также обычно называют статическое распределение и оговорки. DHCP-сервер выдает частный IP-адрес, зависящий от каждого клиента. ID клиента (или, как правило, клиент MAC-адрес ) на основе предварительно заданного администратором сопоставления. Эта функция называется по-разному статическое назначение DHCP к DD-WRT, фиксированный адрес по документации dhcpd, Резервирование адресов от Netgear, Резервирование DHCP или же статический DHCP к Cisco и Linksys, и Резервирование IP-адреса или же Привязка MAC / IP-адреса различными другими производителями маршрутизаторов. Если нет соответствия для клиента ID клиента (если предусмотрено) или MAC-адрес (если не указан идентификатор клиента), сервер может или не может вернуться к динамическому или автоматическому распределению.
DHCP используется для Интернет-протокол версии 4 (IPv4) и IPv6. Хотя обе версии служат одной и той же цели, детали протокола для IPv4 и IPv6 достаточно различаются, чтобы их можно было рассматривать как отдельные протоколы.[7] Для работы IPv6 устройства могут альтернативно использовать автоконфигурация адреса без сохранения состояния. Хосты IPv6 также могут использовать локальная адресация для выполнения операций, ограниченных локальной сетью.
Операция
DHCP использует без подключения сервисная модель, использующая Протокол пользовательских датаграмм (UDP). Он реализован с двумя номерами портов UDP для своих операций, которые такие же, как для протокола начальной загрузки (BOOTP ). UDP-порт номер 67 является портом назначения сервера, а UDP-порт номер 68 используется клиентом.
Операции DHCP делятся на четыре фазы: обнаружение сервера, предложение аренды IP, запрос аренды IP и подтверждение аренды IP. Эти этапы часто обозначаются аббревиатурой DORA для обнаружения, предложения, запроса и подтверждения.
Работа DHCP начинается с клиентов вещание запрос. Если клиент и сервер находятся в разных подсетях, Помощник DHCP или агент DHCP-ретрансляции может быть использовано. Клиенты, запрашивающие продление существующего договора аренды, могут общаться напрямую через UDP. одноадресная передача, поскольку на этом этапе у клиента уже есть установленный IP-адрес. Кроме того, есть флаг BROADCAST (1 бит в 2-байтовом поле флагов, где все остальные биты зарезервированы и поэтому установлены на 0), клиент может использовать, чтобы указать, каким способом (широковещательный или одноадресный) он может получить DHCPOFFER: 0x8000 для трансляции, 0x0000 для одноадресной.[8] Обычно DHCPOFFER отправляется через одноадресную рассылку. Для тех хостов, которые не могут принимать одноадресные пакеты до настройки IP-адресов, этот флаг можно использовать для решения этой проблемы.
Открытие
Клиент DHCP передает сообщение DHCPDISCOVER в сетевой подсети, используя адрес назначения 255.255.255.255 (ограниченная широковещательная рассылка) или адрес широковещательной рассылки конкретной подсети (направленная широковещательная рассылка). Клиент DHCP также может запросить свой последний известный IP-адрес. Если клиент остается подключенным к той же сети, сервер может удовлетворить запрос. В противном случае это зависит от того, настроен ли сервер как авторитетный или нет. Полномочный сервер отклоняет запрос, в результате чего клиент отправляет новый запрос. Неавторизованный сервер просто игнорирует запрос, что приводит к зависящему от реализации таймауту для клиента, чтобы истечь срок действия запроса и запросить новый IP-адрес.
Например, если для HTYPE установлено значение 1, чтобы указать, что используемый носитель Ethernet, HLEN установлен на 6, потому что адрес Ethernet (MAC-адрес) имеет длину 6 октетов. CHADDR устанавливается на MAC-адрес, используемый клиентом. Также установлены некоторые параметры.
Ethernet: источник = MAC-адрес отправителя; пункт назначения = FF: FF: FF: FF: FF: FF | |||
IP: источник = 0.0.0.0; пункт назначения = 255.255.255.255 | |||
Октет 0 | Октет 1 | Октет 2 | Октет 3 |
---|---|---|---|
OP | HTYPE | HLEN | Хмель |
0x01 | 0x01 | 0x06 | 0x00 |
XID | |||
0x3903F326 | |||
SECS | Флаги | ||
0x0000 | 0x0000 | ||
CIADDR (IP-адрес клиента) | |||
0x00000000 | |||
YIADDR (Ваш IP-адрес) | |||
0x00000000 | |||
SIADDR (IP-адрес сервера) | |||
0x00000000 | |||
GIADDR (IP-адрес шлюза) | |||
0x00000000 | |||
CHADDR (аппаратный адрес клиента) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 октета нулей или переполнение пространства для дополнительных опций; BOOTP наследие. | |||
Волшебное печенье | |||
0x63825363 | |||
Параметры DHCP | |||
0x350101 53: 1 (обнаружение DHCP) | |||
0x3204c0a80164 50: 192.168.1.100 запрошено | |||
0x370401030f06 55 (Список запросов параметров):
| |||
0xff 255 (конечная отметка) |
Предлагает
Когда сервер DHCP получает сообщение DHCPDISCOVER от клиента, которое представляет собой запрос аренды IP-адреса, сервер DHCP резервирует IP-адрес для клиента и делает предложение аренды, отправляя клиенту сообщение DHCPOFFER. Это сообщение содержит идентификатор клиента (обычно MAC-адрес), IP-адрес, который предлагает сервер, маску подсети, срок аренды и IP-адрес DHCP-сервера, делающего предложение. DHCP-сервер также может принимать во внимание MAC-адрес аппаратного уровня на нижележащем транспортном уровне: согласно текущему RFC MAC-адрес транспортного уровня может использоваться, если в пакете DHCP не указан идентификатор клиента.
Сервер DHCP определяет конфигурацию на основе аппаратного адреса клиента, указанного в поле CHADDR (аппаратный адрес клиента). Здесь сервер 192.168.1.1 указывает IP-адрес клиента в поле YIADDR (ваш IP-адрес).
Ethernet: источник = MAC-адрес отправителя; destination = MAC-адрес клиента | ||||
IP: источник = 192.168.1.1; пункт назначения = 255.255.255.255 | ||||
Октет 0 | Октет 1 | Октет 2 | Октет 3 | |
---|---|---|---|---|
OP | HTYPE | HLEN | Хмель | |
0x02 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | Флаги | |||
0x0000 | 0x0000 | |||
CIADDR (IP-адрес клиента) | ||||
0x00000000 | ||||
YIADDR (Ваш IP-адрес) | ||||
0xC0A80164 (192.168.1.100) | ||||
SIADDR (IP-адрес сервера) | ||||
0xC0A80101 (192.168.1.1) | ||||
GIADDR (IP-адрес шлюза) | ||||
0x00000000 | ||||
CHADDR (аппаратный адрес клиента) | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 октета нулей; BOOTP наследие. | ||||
Волшебное печенье | ||||
0x63825363 | ||||
Параметры DHCP | ||||
53: 2 (предложение DHCP) | ||||
1 (маска подсети): 255.255.255.0 | ||||
3 (Маршрутизатор): 192.168.1.1 | ||||
51 (время аренды IP-адреса): 86400 с (1 день) | ||||
54 (DHCP-сервер): 192.168.1.1 | ||||
6 (DNS-серверы):
|
Запрос
В ответ на предложение DHCP клиент отвечает сообщением DHCPREQUEST, транслируемым на сервер,[а] запрашивая предложенный адрес. Клиент может получать предложения DHCP от нескольких серверов, но он будет принимать только одно предложение DHCP. Клиент создаст бесплатный ARP, чтобы определить, есть ли в сети какой-либо другой хост с таким же IP-адресом. Если от другого хоста нет ответа, значит, в сети нет хоста с такой же конфигурацией TCP, и сообщение транслируется на сервер, показывая принятие IP-адреса. На основании необходимых идентификация сервера в запросе и широковещательном обмене сообщениями, серверы информируются, чье предложение клиент принял.[10]:Раздел 3.1, пункт 3 Когда другие DHCP-серверы получают это сообщение, они отменяют все предложения, сделанные клиенту, и возвращают предложенный IP-адрес в пул доступных адресов.
Ethernet: источник = MAC-адрес отправителя; пункт назначения = FF: FF: FF: FF: FF: FF | ||||
IP: источник = 0.0.0.0; пункт назначения = 255.255.255.255;[а] | ||||
Октет 0 | Октет 1 | Октет 2 | Октет 3 | |
---|---|---|---|---|
OP | HTYPE | HLEN | Хмель | |
0x01 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | Флаги | |||
0x0000 | 0x0000 | |||
CIADDR (IP-адрес клиента) | ||||
0xC0A80164 (192.168.1.100) | ||||
YIADDR (Ваш IP-адрес) | ||||
0x00000000 | ||||
SIADDR (IP-адрес сервера) | ||||
0xC0A80101 (192.168.1.1) | ||||
GIADDR (IP-адрес шлюза) | ||||
0x00000000 | ||||
CHADDR (аппаратный адрес клиента) | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 октета нулей; BOOTP наследие. | ||||
Волшебное печенье | ||||
0x63825363 | ||||
Параметры DHCP | ||||
53: 3 (запрос DHCP) | ||||
50: 192.168.1.100 запрошено | ||||
54 (DHCP-сервер): 192.168.1.1 |
Подтверждение
Когда DHCP-сервер получает сообщение DHCPREQUEST от клиента, процесс настройки вступает в свою последнюю фазу. Фаза подтверждения включает отправку пакета DHCPACK клиенту. Этот пакет включает в себя продолжительность аренды и любую другую информацию о конфигурации, которую мог запросить клиент. На этом процесс настройки IP завершен.
Протокол ожидает, что DHCP-клиент настроит свой сетевой интерфейс с согласованными параметрами.
После того, как клиент получит IP-адрес, он должен проверить новый полученный адрес.[11] (например, с ARP Протокол разрешения адресов ) для предотвращения конфликтов адресов, вызванных перекрытием пулов адресов DHCP-серверов.
Ethernet: источник = MAC-адрес отправителя; назначение = MAC клиента | |||
IP: источник = 192.168.1.1; пункт назначения = 255.255.255.255 | |||
Октет 0 | Октет 1 | Октет 2 | Октет 3 |
---|---|---|---|
OP | HTYPE | HLEN | Хмель |
0x02 | 0x01 | 0x06 | 0x00 |
XID | |||
0x3903F326 | |||
SECS | Флаги | ||
0x0000 | 0x0000 | ||
CIADDR (IP-адрес клиента) | |||
0x00000000 | |||
YIADDR (Ваш IP-адрес) | |||
0xC0A80164 (192.168.1.100) | |||
SIADDR (IP-адрес сервера) | |||
0xC0A80101 (192.168.1.1) | |||
GIADDR (IP-адрес шлюза, переключаемый реле) | |||
0x00000000 | |||
CHADDR (аппаратный адрес клиента) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 октета из нулей. BOOTP наследие | |||
Волшебное печенье | |||
0x63825363 | |||
Параметры DHCP | |||
53: 5 (DHCP ACK) или 6 (DHCP NAK) | |||
1 (маска подсети): 255.255.255.0 | |||
3 (Маршрутизатор): 192.168.1.1 | |||
51 (время аренды IP-адреса): 86400 с (1 день) | |||
54 (DHCP-сервер): 192.168.1.1 | |||
6 (DNS-серверы):
|
Информация
Клиент DHCP может запрашивать больше информации, чем сервер, отправленный с исходным DHCPOFFER. Клиент также может запросить повторные данные для конкретного приложения. Например, браузеры используют DHCP Inform для получения настроек веб-прокси через WPAD.
Освобождение
Клиент отправляет запрос DHCP-серверу на выпуск информации DHCP, и клиент деактивирует свой IP-адрес. Поскольку клиентские устройства обычно не знают, когда пользователи могут отключить их от сети, протокол не требует отправки Выпуск DHCP.
Параметры конфигурации клиента
DHCP-сервер может предоставить клиенту дополнительные параметры конфигурации. RFC 2132 описывает доступные параметры DHCP, определенные Управление по присвоению номеров в Интернете (IANA) - ПАРАМЕТРЫ DHCP и BOOTP.[12]
Клиент DHCP может выбирать, изменять и перезаписывать параметры, предоставленные сервером DHCP. В Unix-подобных системах это уточнение на уровне клиента обычно происходит в соответствии со значениями в файле конфигурации. /etc/dhclient.conf.
Опции
Опции - это строки октетов различной длины. Первый октет - это код опции, второй октет - это количество следующих октетов, а остальные октеты зависят от кода. Например, опция типа сообщения DHCP для предложения будет отображаться как 0x35, 0x01, 0x02, где 0x35 - это код. 53 для «типа сообщения DHCP», 0x01 означает, что следует один октет, а 0x02 - значение «предложения».
Документировано в RFC 2132
В следующих таблицах перечислены доступные параметры DHCP, перечисленные в RFC 2132[13] и реестр IANA.[12]
Код | Имя | Длина | Примечания |
---|---|---|---|
0 | Pad[13]:Раздел 3.1 | 0 октеты | Может использоваться для дополнения других параметров, чтобы они были выровнены по границе слова; не следует за байтом длины |
1 | Маска подсети[13]:Раздел 3.3 | 4 октета | Должен быть отправлен перед вариантом маршрутизатора (вариант 3), если оба включены |
2 | Смещение времени[13]:Раздел 3.4 | 4 октета | |
3 | Маршрутизатор | Кратное по 4 октета | Доступные маршрутизаторы должны быть перечислены в порядке предпочтения. |
4 | Сервер времени | Кратное по 4 октета | Доступные серверы времени для синхронизации должны быть перечислены в порядке предпочтения. |
5 | Сервер имен | Кратное по 4 октета | Имеется в наличии IEN 116 DNS-серверы должны быть перечислены в порядке предпочтения |
6 | Сервер доменного имени | Кратное по 4 октета | Имеется в наличии DNS серверы должны быть перечислены в порядке предпочтения |
7 | Сервер журнала | Кратное по 4 октета | Доступные серверы журналов должны быть перечислены в порядке предпочтения. |
8 | Сервер cookie | Кратное по 4 октета | Cookie-файлы в данном случае означает «печенье с предсказанием» или «цитата дня», содержательный или юмористический анекдот, часто отправляемый как часть процесса входа в систему на больших компьютерах; это не имеет ничего общего с файлы cookie, отправленные веб-сайтами. |
9 | LPR сервер | Кратное по 4 октета | |
10 | Сервер Impress | Кратное по 4 октета | |
11 | Сервер расположения ресурсов | Кратное по 4 октета | |
12 | Имя хоста | Минимум 1 октет | |
13 | Размер загрузочного файла | 2 октета | Длина загрузочного образа в блоках по 4 КиБ |
14 | Цена файл дампа | Минимум 1 октет | Путь, по которому должны храниться аварийные дампы |
15 | Доменное имя | Минимум 1 октет | |
16 | Сервер подкачки | 4 октета | |
17 | Корневой путь | Минимум 1 октет | |
18 | Путь расширений | Минимум 1 октет | |
255 | Конец | 0 октетов | Используется для обозначения конца поля опций поставщика |
Код | Имя | Длина | Примечания |
---|---|---|---|
19 | Включение / отключение переадресации IP | 1 октет | |
20 | Включение / отключение нелокальной маршрутизации от источника | 1 октет | |
21 | Фильтр политики | Кратное 8 октетов | |
22 | Максимальный размер повторной сборки дейтаграммы | 2 октета | |
23 | Время жизни IP по умолчанию | 1 октет | |
24 | Таймаут устаревания MTU пути | 4 октета | |
25 | Таблица плато MTU пути | Кратное по 2 октета |
Код | Имя | Длина | Примечания |
---|---|---|---|
26 | Интерфейс MTU | 2 октета | |
27 | Все подсети локальные | 1 октет | |
28 | Адрес трансляции | 4 октета | |
29 | Выполнить обнаружение маски | 1 октет | |
30 | Поставщик масок | 1 октет | |
31 | Выполнить обнаружение маршрутизатора | 1 октет | |
32 | Адрес запроса маршрутизатора | 4 октета | |
33 | Статический маршрут | Кратное 8 октетов | Список пар назначения / маршрутизатора |
Код | Имя | Длина | Примечания |
---|---|---|---|
34 | Вариант инкапсуляции прицепа | 1 октет | |
35 | Тайм-аут кеша ARP | 4 октета | |
36 | Инкапсуляция Ethernet | 1 октет |
Код | Имя | Длина | Примечания |
---|---|---|---|
37 | TTL по умолчанию TCP | 1 октет | |
38 | Интервал поддержки активности TCP | 4 октета | |
39 | Мусор поддержки активности TCP | 1 октет |
Код | Имя | Длина | Примечания |
---|---|---|---|
40 | Сетевая информационная служба домена | Минимум 1 октет | |
41 | Сетевые информационные серверы | Кратное по 4 октета | |
42 | Сетевой протокол времени (NTP) серверы | Кратное по 4 октета | |
43 | Информация о производителе | Минимум 1 октет | |
44 | NetBIOS через сервер имен TCP / IP | Кратное по 4 октета | |
45 | NetBIOS через сервер распространения датаграмм TCP / IP | Кратное по 4 октета | |
46 | NetBIOS через тип узла TCP / IP | 1 октет | |
47 | NetBIOS через TCP / IP | Минимум 1 октет | |
48 | X Window System сервер шрифтов | Кратное по 4 октета | |
49 | Диспетчер отображения системы X Window | Кратное по 4 октета | |
64 | Сетевая информационная служба + домен | Минимум 1 октет | |
65 | Сетевая информационная служба + серверы | Кратное по 4 октета | |
68 | Домашний агент мобильного IP | Кратное по 4 октета | |
69 | Простой протокол передачи почты (SMTP) сервер | Кратное по 4 октета | |
70 | Почтовый протокол (POP3) сервер | Кратное по 4 октета | |
71 | Протокол передачи сетевых новостей (NNTP) сервер | Кратное по 4 октета | |
72 | Дефолт Всемирная паутина (WWW) сервер | Кратное по 4 октета | |
73 | Дефолт Протокол пальца сервер | Кратное по 4 октета | |
74 | Дефолт Интернет-чат (IRC) сервер | Кратное по 4 октета | |
75 | StreetTalk сервер | Кратное по 4 октета | |
76 | Сервер StreetTalk Directory Assistance (STDA) | Кратное по 4 октета |
Код | Имя | Длина | Примечания |
---|---|---|---|
50 | Запрошенный IP-адрес | 4 октета | |
51 | Срок аренды IP-адреса | 4 октета | |
52 | Перегрузка опций | 1 октет | |
53 | Тип сообщения DHCP | 1 октет | |
54 | Идентификатор сервера | 4 октета | |
55 | Список запросов параметров | Минимум 1 октет | |
56 | Сообщение | Минимум 1 октет | |
57 | Максимальный размер сообщения DHCP | 2 октета | |
58 | Срок действия продления (T1) | 4 октета | |
59 | Повторная привязка (T2) значения времени | 4 октета | |
60 | Идентификатор класса поставщика | Минимум 1 октет | |
61 | Клиент-идентификатор | Минимум 2 октета | |
66 | Имя сервера TFTP | Минимум 1 октет | |
67 | Имя загрузочного файла | Минимум 1 октет |
Типы сообщений DHCP
В этой таблице перечислены типы сообщений DHCP, задокументированные в RFC 2132, RFC 3203,[14] RFC 4388,[15] RFC 6926[16] и RFC 7724.[17] Эти коды являются значениями в расширении DHCP 53, показанном в таблице выше.
Код | Имя | Длина | RFC |
---|---|---|---|
1 | DHCPDISCOVER | 1 октет | rfc2132[13]:Раздел 9.6 |
2 | DHCPOFFER | 1 октет | rfc2132[13]:Раздел 9.6 |
3 | DHCPREQUEST | 1 октет | rfc2132[13]:Раздел 9.6 |
4 | DHCPDECLINE | 1 октет | rfc2132[13]:Раздел 9.6 |
5 | DHCPACK | 1 октет | rfc2132[13]:Раздел 9.6 |
6 | DHCPNAK | 1 октет | rfc2132[13]:Раздел 9.6 |
7 | DHCPRELEASE | 1 октет | rfc2132[13]:Раздел 9.6 |
8 | DHCPINFORM | 1 октет | rfc2132[13]:Раздел 9.6 |
9 | DHCPFORCERENEW | 1 октет | rfc3203[14]:Раздел 4 |
10 | DHCPLEASEQUERY | 1 октет | rfc4388[15]:Раздел 6.1 |
11 | DHCP НЕ НАЗНАЧЕН | 1 октет | rfc4388[15]:Раздел 6.1 |
12 | DHCPLEASEUNKNOWN | 1 октет | rfc4388[15]:Раздел 6.1 |
13 | DHCPLEASEACTIVE | 1 октет | rfc4388[15]:Раздел 6.1 |
14 | DHCPBULKLEASEQUERY | 1 октет | rfc6926[16]:Раздел 6.2.1 |
15 | DHCPLEASEQUERYDONE | 1 октет | rfc6926[16]:Раздел 6.2.1 |
16 | DHCPACTIVELEASEQUERY | 1 октет | rfc7724[17]:Раздел 5.2.1 |
17 | DHCPLEASEQUERYSTATUS | 1 октет | rfc7724[17]:Раздел 5.2.1 |
18 | DHCPTLS | 1 октет | rfc7724[17]:Раздел 5.2.1 |
Идентификация поставщика клиента
Существует возможность идентифицировать поставщика и функциональность DHCP-клиента. Информация - это строка переменной длины символов или октетов, значение которых указано поставщиком DHCP-клиента. Один из методов, с помощью которого DHCP-клиент может сообщить серверу, что он использует определенный тип оборудования или микропрограмм, заключается в установке значения в его запросах DHCP, называемого идентификатором класса поставщика (VCI) (опция 60). Этот метод позволяет DHCP-серверу различать два типа клиентских машин и соответствующим образом обрабатывать запросы от двух типов модемов. Некоторые виды телеприставки также установите VCI (опция 60) для информирования DHCP-сервера о типе оборудования и функциональных возможностях устройства. Значение, установленное для этого параметра, дает серверу DHCP подсказку о любой дополнительной информации, которая требуется этому клиенту в ответе DHCP.
Документировано в другом месте
Код | Имя | Длина | RFC |
---|---|---|---|
82 | Информация об агенте ретрансляции | Минимум 2 октета | RFC 3046[18] |
85 | Служба каталогов Novell (NDS) серверы | Минимум 4 октета, кратное 4 октетам | RFC 2241[19]:Раздел 2 |
86 | Имя дерева NDS | Переменная | RFC 2241[19]:Раздел 3 |
87 | Контекст NDS | Переменная | RFC 2241[19]:Раздел 4 |
100 | Часовой пояс, Стиль POSIX | Переменная | RFC 4833[20] |
101 | Часовой пояс, база данных tz стиль | Переменная | RFC 4833[20] |
119 | Поиск домена | Переменная | RFC 3397[21] |
121 | Бесклассовый статический маршрут | Переменная | RFC 3442[22] |
Дополнительные параметры информации агента ретрансляции
Опция информации агента ретрансляции (опция 82)[18] определяет контейнер для присоединения подпараметров к запросам DHCP, передаваемым между ретранслятором DHCP и сервером DHCP.
Код | Имя | Длина | RFC |
---|---|---|---|
4 | Спецификации интерфейса службы передачи данных по кабелю (DOCSIS), класс устройства | 4 октета | RFC 3256[23] |
Реле
В небольших сетях, где управляется только одна IP-подсеть, клиенты DHCP взаимодействуют напрямую с серверами DHCP. Однако DHCP-серверы также могут предоставлять IP-адреса для нескольких подсетей.В этом случае DHCP-клиент, который еще не получил IP-адрес, не может напрямую взаимодействовать с DHCP-сервером, используя IP-маршрутизацию, потому что он не имеет маршрутизируемого IP-адреса, не знает адреса канального уровня маршрутизатора и не знает IP-адрес DHCP-сервера.
Чтобы разрешить клиентам DHCP в подсетях, не обслуживаемых напрямую серверами DHCP, связываться с серверами DHCP, в этих подсетях можно установить агенты ретрансляции DHCP. Клиент DHCP осуществляет широковещательную рассылку по локальному каналу; агент ретрансляции принимает широковещательную рассылку и передает ее на один или несколько DHCP-серверов, используя одноадресная передача. Агент ретрансляции хранит свой IP-адрес в поле GIADDR поле DHCP-пакета. DHCP-сервер использует значение GIADDR для определения подсети, в которой агент ретрансляции получил широковещательную рассылку, и выделяет IP-адрес в этой подсети. Когда DHCP-сервер отвечает клиенту, он отправляет ответ на GIADDR-адрес, снова используя одноадресную рассылку. Затем агент ретрансляции повторно передает ответ по локальной сети.
В этой ситуации для связи между агентом ретрансляции и DHCP-сервером обычно используются UDP-порт источника и назначения 67.
Состояния клиентов
Как описано в RFC 2131,[10]:Раздел 4.4 DHCP-клиент может получать эти сообщения от сервера:
- DHCPOFFER
- DHCPACK
- DHCPNAK
Клиент перемещается по состояниям DHCP в зависимости от того, как сервер отвечает на сообщения, отправляемые клиентом.
Надежность
DHCP обеспечивает надежность несколькими способами: периодическое обновление, повторная привязка,[10]:Раздел 4.4.5 и аварийное переключение. Клиентам DHCP выделяется аренда на определенный период времени. Клиенты начинают попытки продлить свои договоры аренды по истечении половины интервала аренды.[10]:Раздел 4.4.5 Пункт 3 Они делают это, отправляя одноадресную рассылку DHCPREQUEST сообщение DHCP-серверу, предоставившему исходную аренду. Если этот сервер не работает или недоступен, он не сможет ответить на DHCPREQUEST. Однако в этом случае клиент повторяет DHCPREQUEST время от времени,[10]:Раздел 4.4.5 Пункт 8[b] поэтому, если DHCP-сервер снова включится или снова станет доступным, DHCP-клиент сможет связаться с ним и продлить аренду.
Если DHCP-сервер недоступен в течение длительного периода времени,[10]:Раздел 4.4.5 Пункт 5 DHCP-клиент попытается выполнить повторную привязку, транслируя DHCPREQUEST а не одноадресный. Потому что это так транслировать, то DHCPREQUEST сообщение достигнет всех доступных DHCP-серверов. Если какой-либо другой DHCP-сервер может продлить аренду, он сделает это в это время.
Чтобы повторная привязка работала, когда клиент успешно связывается с резервным DHCP-сервером, этот сервер должен иметь точную информацию о привязке клиента. Поддержание точной информации о привязке между двумя серверами - сложная проблема; если оба сервера могут обновлять одну и ту же базу данных аренды, должен быть механизм, позволяющий избежать конфликтов между обновлениями на независимых серверах. Предложение по реализации отказоустойчивой Серверы DHCP были представлены Инженерной группе Интернета, но так и не были официально оформлены.[24][c]
Если повторная привязка не удалась, срок аренды в конечном итоге истечет. По истечении срока аренды клиент должен прекратить использовать IP-адрес, предоставленный ему в его аренде.[10]:Раздел 4.4.5 Пункт 9 В это время он перезапустит процесс DHCP с самого начала, передавая DHCPDISCOVER
сообщение. Поскольку срок его аренды истек, он примет любой предложенный IP-адрес. Как только он получит новый IP-адрес (предположительно от другого DHCP-сервера), он снова сможет использовать сеть. Однако, поскольку его IP-адрес изменился, все текущие соединения будут прерваны.
Современное приложение
По состоянию на 2018 год DHCP по-прежнему широко используется для автоматического назначения IP-адресов.[25] Новые итерации для назначения IP-адресов включают DHCPv6 и SLAAC.[25]
Безопасность
Базовый DHCP не включает никаких механизмов аутентификации.[26] Из-за этого он уязвим для множества атак. Эти атаки делятся на три основные категории:
- Неавторизованные DHCP-серверы предоставляют клиентам ложную информацию.[27]
- Неавторизованные клиенты получают доступ к ресурсам.[27]
- Атаки исчерпания ресурсов от вредоносных DHCP-клиентов.[27]
Поскольку у клиента нет возможности проверить подлинность DHCP-сервера, неавторизованные DHCP-серверы (обычно называемые "мошеннический DHCP ") могут работать в сетях, предоставляя клиентам DHCP неверную информацию.[28] Это может служить либо атакой типа «отказ в обслуживании», не позволяющей клиенту получить доступ к сетевому подключению, либо[29] или как атака "человек посередине".[30] Поскольку DHCP-сервер предоставляет DHCP-клиенту IP-адреса сервера, такие как IP-адрес одного или нескольких DNS-серверов,[27] злоумышленник может убедить DHCP-клиента выполнить поиск в DNS через свой собственный DNS-сервер и, следовательно, может предоставить свои собственные ответы на запросы DNS от клиента.[31][32] Это, в свою очередь, позволяет злоумышленнику перенаправлять сетевой трафик через себя, позволяя ему подслушивать соединения между клиентом и сетевыми серверами, с которыми он контактирует, или просто заменять эти сетевые серверы своими собственными.[31]
Поскольку DHCP-сервер не имеет безопасного механизма для аутентификации клиента, клиенты могут получить несанкционированный доступ к IP-адресам, предоставив учетные данные, такие как идентификаторы клиента, которые принадлежат другим клиентам DHCP.[28] Это также позволяет клиентам DHCP исчерпать хранилище IP-адресов DHCP-сервера - представляя новые учетные данные каждый раз, когда он запрашивает адрес, клиент может использовать все доступные IP-адреса на конкретном сетевом канале, не позволяя другим клиентам DHCP получать обслуживание.[28]
DHCP действительно предоставляет некоторые механизмы для смягчения этих проблем. В Опция информации агента ретрансляции расширение протокола (RFC 3046, обычно обозначаемый в отрасли по его фактическому номеру как Вариант 82[33][34]) позволяет операторам сети прикреплять теги к сообщениям DHCP, когда эти сообщения поступают в доверенную сеть оператора сети. Затем этот тег используется в качестве токена авторизации для управления доступом клиента к сетевым ресурсам. Поскольку у клиента нет доступа к сети выше агента ретрансляции, отсутствие аутентификации не мешает оператору DHCP-сервера полагаться на токен авторизации.[26]
Другое расширение, аутентификация для сообщений DHCP (RFC 3118 ), обеспечивает механизм аутентификации сообщений DHCP. По состоянию на 2002 год RFC 3118 не получил широкого распространения из-за проблем с управлением ключами для большого количества клиентов DHCP.[35] В книге 2007 года о технологиях DSL отмечалось, что:
было обнаружено множество уязвимостей безопасности в отношении мер безопасности, предложенных RFC 3118. Этот факт в сочетании с введением 802.1x, замедлило развертывание и скорость использования аутентифицированного DHCP, и он никогда не получил широкого распространения.[36]
В книге 2010 года отмечается, что:
[t] здесь было очень мало реализаций аутентификации DHCP. Проблемы, связанные с управлением ключами и задержками обработки из-за вычисления хэша, были сочтены слишком высокой ценой, чтобы платить за предполагаемые преимущества.[37]
Архитектурные предложения от 2008 года включают аутентификацию запросов DHCP с использованием 802.1x или же ПАНА (оба транспорта EAP ).[38] Было сделано предложение IETF о включении EAP в сам DHCP, так называемый EAPoDHCP;[39] это, похоже, не продвинулось дальше уровня проекта IETF, последний из которых датируется 2010 годом.[40]
Документы стандартов IETF
- RFC 2131, Протокол динамического конфигурирования сервера
- RFC 2132, Параметры DHCP и расширения поставщика BOOTP
- RFC 3046, Опция информации агента ретрансляции DHCP
- RFC 3397, Параметр поиска домена по протоколу динамической конфигурации хоста (DHCP)
- RFC 3942, Реклассификация параметров протокола динамической конфигурации хоста версии четыре (DHCPv4)
- RFC 4242, Параметр времени обновления информации для протокола динамической конфигурации хоста для IPv6
- RFC 4361, Специфические для узла идентификаторы клиентов для протокола динамической конфигурации хоста версии четыре (DHCPv4)
- RFC 4436, Обнаружение сетевого подключения в IPv4 (DNAv4)
- RFC 3442, Опция бесклассового статического маршрута для протокола динамической конфигурации хоста (DHCP) версии 4
- RFC 3203, Расширение перенастройки DHCP
- RFC 4388, Запрос аренды протокола динамической конфигурации хоста (DHCP)
- RFC 6926, DHCPv4 Bulk Leasequery
- RFC 7724, Активный запрос аренды DHCPv4
Смотрите также
- Протокол обнаружения загрузочной службы (BSDP) - расширение DHCP, используемое Apple NetBoot
- Сравнение программного обеспечения DHCP-сервера
- Привязка DHCP (RFC 2322 )
- Среда выполнения предварительной загрузки (PXE)
- Протокол обратного разрешения адресов (RARP)
- Мошеннический DHCP
- Адрес помощника UDP - инструмент для маршрутизации DHCP-запросов через границы подсети
- Зероконф - Сеть с нулевой конфигурацией
Примечания
- ^ а б В качестве необязательного поведения клиента некоторые широковещательные рассылки, например, те, которые передают сообщения об обнаружении и запросе DHCP, могут быть заменены одноадресными, если клиент DHCP уже знает IP-адрес DHCP-сервера.[9]
- ^ RFC требует от клиента подождать половину оставшегося времени до T2, прежде чем он повторно отправит DHCPREQUEST пакет
- ^ Предложение предусматривало механизм, посредством которого два сервера могли оставаться синхронизированными друг с другом, таким образом, что даже в случае полного отказа одного сервера другой сервер мог восстановить базу данных аренды и продолжить работу. Из-за длины и сложности спецификации она никогда не публиковалась в качестве стандарта; однако методы, описанные в предложении, широко используются с открытым исходным кодом и несколькими коммерческими реализациями.
Рекомендации
- ^ а б Сеть TechTarget: DHCP (протокол динамической конфигурации хоста)
- ^ Петерсон, Ларри Л .; Дэви, Брюс С. (2011). Компьютерные сети: системный подход (5-е изд.). Эльзевир. ISBN 978-0123850607. Получено Двадцать первое марта, 2019.
- ^ Билл Крофт; Джон Гилмор (сентябрь 1985 г.). «RFC 951 - протокол начальной загрузки». Сетевая рабочая группа.
- ^ Сеть + Сертификация 2006, опубликованная Microsoft Press.
- ^ используется для протокола автообнаружения веб-прокси Протокол автообнаружения веб-прокси (WPAD)
- ^ RFC 4361, RFC 5494, RFC 6221, RFC 6422, RFC 6644, RFC 7083, RFC 7227, RFC 7283
- ^ Дромс, Ральф; Лимон, Тед (2003). Справочник DHCP. Издательство SAMS. п. 436. ISBN 978-0-672-32327-0.
- ^ а б Дромс, Ральф. "Протокол динамического конфигурирования сервера". tools.ietf.org. Получено 4 июля 2017.
- ^ Дромс, Ральф. "Протокол динамического конфигурирования сервера". tools.ietf.org. Получено 4 июля 2017.
- ^ а б c d е ж грамм Дромс, Ральф (март 1997). Параметры DHCP и расширения поставщика BOOTP. IETF. Дои:10.17487 / RFC2131. RFC 2131. Получено 9 сентября, 2014.
- ^ «RFC2131 Протокол динамической конфигурации хоста: динамическое распределение сетевых адресов». tools.ietf.org.
- ^ а б «Параметры протокола динамической конфигурации хоста (DHCP) и протокола начальной загрузки (BOOTP)». iana.org. Получено 2018-10-16.
- ^ а б c d е ж грамм час я j k л м п о п q р s Александр, Стив; Дромс, Ральф (март 1997). Параметры DHCP и расширения поставщиков BOOTP. IETF. Дои:10.17487 / RFC2132. RFC 2132. Получено 10 июня, 2012.
- ^ а б {Тьоенс, Ив; Де Шрайвер, Питер (декабрь 2001 г.). Расширение перенастройки DHCP. IETF. Дои:10.17487 / RFC3203. RFC 3203. Получено 13 ноября, 2020.
- ^ а б c d е {Раненый, богатый; Киннер, Ким (февраль 2006 г.). Расширение перенастройки DHCP. IETF. Дои:10.17487 / RFC4388. RFC 4388. Получено 13 ноября, 2020.
- ^ а б c {Киннер, Ким; Стэпп, Марк; Рао, Д.Т.В. Рамакришна; Джоши, Бхарат; Рассел, Нил; Курапати, Паван; Волц, Берни (апрель 2013 г.). Расширение перенастройки DHCP. IETF. Дои:10.17487 / RFC6926. RFC 6926. Получено 13 ноября, 2020.
- ^ а б c d {Киннер, Ким; Стэпп, Марк; Волц, Берни; Рассел, Нил (декабрь 2015 г.). Расширение перенастройки DHCP. IETF. Дои:10.17487 / RFC7724. RFC 7724. Получено 13 ноября, 2020.
- ^ а б Патрик, Майкл (январь 2001 г.). «Опция информации агента ретрансляции DHCP». Документы IETF. IETF. Дои:10.17487 / RFC3046. Получено 22 июля 2017.
- ^ а б c Прован, Дон (ноябрь 1997 г.). «RFC 2241 - Опции DHCP для служб каталогов Novell». Документы IETF. IETF. Дои:10.17487 / RFC3256. Получено 23 июля 2017.
- ^ а б Лир, Э .; Эггерт, П. (апрель 2007 г.). «Параметры часового пояса для DHCP». Документы IETF. IETF. Получено 28 июн 2018.
- ^ Бернар, Абоба; Стюарт, Чешир (ноябрь 2002 г.). «RFC 3397 - опция поиска домена по протоколу динамической конфигурации хоста (DHCP)». Документы IETF. IETF. Дои:10.17487 / RFC3397. Получено 22 июля 2017.
- ^ RFC 3442
- ^ Дуг, Джонс; Rich, Woundy (апрель 2002 г.). «RFC 3256 - DOCSIS (спецификации интерфейса службы передачи данных по кабелю) Класс устройства DHCP (протокол динамической конфигурации хоста) Подопция информации агента ретрансляции». Документы IETF. IETF. Дои:10.17487 / RFC3256. Получено 23 июля 2017.
- ^ Дромс, Ральф; Киннер, Ким; Стэпп, Марк; Волц, Берни; Гонци, Стив; Рабил, Грег; Дули, Майкл; Капур, Арун (март 2003 г.). Протокол аварийного переключения DHCP. IETF. I-D draft-ietf-dhc-failover-12. Получено 9 мая, 2010.
- ^ а б Вайнберг, Нил (14 августа 2018 г.). «Почему дни DHCP могут быть сочтены». Сетевой мир. Получено 2019-08-07.
- ^ а б Патрик, Майкл (январь 2001 г.). «RFC 3046 - Опция информации агента ретрансляции DHCP». Сетевая рабочая группа.
- ^ а б c d Дромс, Ральф (март 1997). «RFC 2131 - Протокол динамической конфигурации хоста». Сетевая рабочая группа.
- ^ а б c Стапко, Тимати (2011). Практическая встроенная безопасность: построение безопасных систем с ограниченными ресурсами. Newnes. п. 39. ISBN 978-0-08-055131-9.
- ^ Раунтри, Деррик (2013). Сетевая безопасность Windows 2012 Server: защита сетевых систем и инфраструктуры Windows. Newnes. п. 22. ISBN 978-1-59749-965-1.
- ^ Руни, Тимоти (2010). Введение в управление IP-адресами. Джон Вили и сыновья. п. 180. ISBN 978-1-118-07380-3.
- ^ а б Голованов (Лаборатория Касперского), Сергей (июнь 2011 г.). "Загрузчик TDSS получил" ноги"".
- ^ Санни, Акаш К. (октябрь 2015 г.). «Протокол DHCP и его уязвимости».
- ^ Hens, Francisco J .; Кабальеро, Хосе М. (2008). Triple Play: построение конвергентной сети для IP, VoIP и IPTV. Джон Вили и сыновья. п. 239. ISBN 978-0-470-75439-9.
- ^ Рамирес, Дэвид Х. (2008). Безопасность IPTV: защита ценного цифрового контента. Джон Вили и сыновья. п. 55. ISBN 978-0-470-72719-5.
- ^ Лимон, Тед (апрель 2002 г.). «Реализация RFC 3118».
- ^ Голден, Филипп; Дедье, Эрве; Якобсен, Криста С. (2007). Внедрение и применение технологии DSL. Тейлор и Фрэнсис. п. 484. ISBN 978-1-4200-1307-8.
- ^ Руни, Тимоти (2010). Введение в управление IP-адресами. Джон Вили и сыновья. С. 181–182. ISBN 978-1-118-07380-3.
- ^ Коупленд, Ребекка (2008). Конвергенция проводных сетей NGN и мобильных сетей 3G с помощью IMS. Тейлор и Фрэнсис. С. 142–143. ISBN 978-1-4200-1378-8.
- ^ Прасад, Рамджи; Миховская, Албена (2009). Новые горизонты мобильной и беспроводной связи: сети, услуги и приложения. 2. Артек Хаус. п. 339. ISBN 978-1-60783-970-5.
- ^ «Архивная копия». Архивировано из оригинал на 2015-04-03. Получено 2013-12-12.CS1 maint: заархивированная копия как заголовок (связь)
внешняя ссылка
- СМИ, связанные с Протокол динамической конфигурации хоста (DHCP) в Wikimedia Commons