По просьбам некоторых трудящихся попробую начать писать о базовых понятиях и сервисах для одминов. Одним из основополагающих сервисов сети является сервис DHCP.
DHCP — это Dynamic host configuration protocol, протокол динамического конфигурирования хостов. Вопреки распространенному мнению, DHCP позволяет конфигурировать гораздо более широкий спектр параметров, чем просто IP-адрес и шлюз по умолчанию: DNS-серверы, WINS-серверы, серверы X-Window по умолчанию, имя хоста и прочее и прочее. Но как же работает основная часть DHCP — та, которая выдает устройству адрес при подключении к сети?
Работа DHCP происходит в несколько этапов:
1. Устройство подключается к сети и отправляет запрос DHCP DISCOVER на широковещательный адрес 255.255.255.255. Этот пакет доставляется всем компьютерам, находящимся в данном сегменте сети, но обрабатывают его только DHCP-серверы.
2. Все DHCP-серверы сети, получившие этот запрос, выдают на него ответ DHCP OFFER, который уже адресуется MAC-адресу устройства, отправившего DHCP DISCOVER. В этом пакете серверы предлагают клиенту возможные варианты IP-адресов.
3. Клиент выбирает наилучший, по его мнению, IP-адрес и посылает широковещательный запрос DHCP REQUEST, запрашивая выбранный IP адрес. Если в сети несколько DHCP серверов, то таким образом информируются серверы, чье предложение отвергнуто.
4. Сервер подтверждает аренду адреса сообщением DHCP ACK, сообщая о том, что отныне этот адрес закрепляется за клиентом на все «время аренды» (lease time). Либо, если адрес более недоступен, DHCP сервер отвечает DHCP NACK и весь процесс повторяется сначала.
5. По истечению половины срока аренды, клиент снова подтверждает использование IP адреса пакетом DHCP REQUEST, но в отличие от пункта 3, в этот раз напрямую DHCP серверу, а не широковещательным. На этот запрос сервер может как согласиться DHCP ACK, так и отказать DHCP NACK. В случае отказа клиент теряет свой адрес и проходит процедуру заново.
Процесс легко запомнить по аббревиатуре DORA: Discover-Offer-Request-Acknowledge
Причем тут виртуальные машины, спросите вы? Виртуальным машинам тоже нужны IP адреса, да и DHCP серверы прекрасно себя чувствуют в виртуальных машинах :)
пятница, 13 марта 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Вы писали: Клиент выбирает наилучший, по его мнению, IP-адрес и посылает запрос DHCP REQUEST серверу, который предоставил ему такой вариант IP-адреса.
ОтветитьУдалитьВопрос: а какой стандартный алгоритм выбора наилучшего IP-адреса? Выбирается наиболее близкий сервер?
Тот, который реализован в DHCP-клиенте. Предполагаю, что наилучшим считается первый полученный :)
ОтветитьУдалить+1 как говорится
ОтветитьУдалитьКто первый, от того и получают
Дело обстоит несколько сложнее. То ли сервер, то ли виндовый клиент явно предпочитают тот адрес, который уже назначался этому клиенту.
ОтветитьУдалитьХотелось бы прояснить этот момент.
В каком смысле предпочитают?
ОтветитьУдалитьЗапрос на обновление отправляется по истечению половина срока аренды, и соотв. текущая аренда просто продляется. Если же машину просто выключить и продержать в выключенном состоянии до полного истечения срока аренды, IP будет выдан из пула. С некоторой вероятностью даже тот, что был раньше.