Протокол DHCP
Ранее в этом разделе говорилось, что протокол DHCP (Dynamic Host Configuration Protocol — протокол динамической конфигурации хоста) часто используется для назначения хостам IP-адресов в динамическом режиме. Мы кратко упомянули службы, предоставляемые хосту протоколом DHCP. В данном подразделе мы несколько подробнее поговорим о том, как протокол DHCP предоставляет свои службы.
Протокол DHCP представляет собой протокол для связи клиента с сервером. Клиентом, как правило, выступает только что подключившийся к сети новый хост, желающий получить информацию о конфигурации сети и собственный IP-адрес. В простейшем случае в каждой сети (имеется в виду IP-сеть, см. рис. 4.15) есть свой DHCP-сервер. Если в сети нет сервера, необходим промежуточный DHCP-агент (как правило, маршрутизатор), которому известен адрес DHCP-сервера для этой сети. На рис. 4.25 показан DHCP-сервер, соединенный с сетью 233.1.2/24, и маршрутизатор, выступающий в роли промежуточного DHCP-агента для новых клиентов, присоединяющихся к сетям 223.1.1/24 и 223.1.3/24.
При появлении в сети нового клиента протокол DHCP запускает процесс из четырех этапов.
1. Обнаружение DHCP-сервера. Первым делом только что подключившийся хост должен найти DHCP-сервер, с которым можно взаимодействовать. Это делается при помощи сообщения о поиске DHCP-сервера, которое клиент посылает UDP-дейтаграмме через порт 67. Но кому он должен посылать эту дейтаграмму? Хосту не известен даже IP-адрес сети, к которой он подключился, а уж тем более адрес DHCP-сервера, обслуживающего эту сеть. Поэтому DHCP-клиент в поле адреса получателя дейтаграммы указывает широковещательный адрес 255.255.255.255, а себя (отправителя) обозначает как 0.0.0.0. Сообщение о поиске DHCP-сервера будет получено всеми машинами сети, включая все DHCP-серверы (и/или промежуточные агенты). В этом сообщении содержится идентификатор транзакции, позволяющий соотнести последующие ответы с запросом обнаружения DHCP-сервера.
2. Предложение DHCP-сервера. Получив сообщение о поиске DHCP-сервера DHCP-сервер отвечает клиенту сообщением с DHCP-предложением. Поскольку в сети могут находиться несколько DHCP-серверов, может случиться, что клиенту придется выбирать из нескольких предложений. Каждое DHCP-пред-ложение содержит идентификатор транзакции полученного сообщения о поиске DHCP-сервера, предлагаемый IP-адрес клиента, маску сети и срок действия IP-адреса, называемый обычно сроком аренды IP-адреса. Как правило, сервер предоставляет новому хосту IP-адрес на срок от нескольких часов до нескольких дней. Затем прибывшему клиенту посылается кадр канального уровня с IP-дейтаграммой, в которой содержится UDP-сегмент с DHCP-предложением (прекрасная иллюстрация многоуровневой иерархии протоколов). Как кадр канального уровня посылается клиенту, мы рассмотрим в главе 5, посвященной канальному уровню.
3. DHCP-запрос. Новый клиент выбирает одно из полученных им предложений от серверов и отвечает на выбранное им предложение DHCP-запросом, повторяя в нем конфигурационные параметры.
4. DHCP-подтверждение. Сервер отвечает на DHCP-запрос DHCP-подтвержде-нием, подтверждая запрашиваемые параметры.
Как только клиент получает DHCP-подтверждение, диалог клиента и сервера завершается, и клиент может использовать выделенный ему протоколом DHCP IP-адрес в течение срока аренды. Поскольку клиенту адрес может требоваться дольше, протокол DHCP также предоставляет механизм для продления срока аренды.
Простой пример диалога клиента и сервера для конфигурации сети, изображенной на рис. 4.25, показан на рис. 4.26.
Значение протокола DHCP для поддержки функции самонастройки должно быть очевидно. Представим себе студента, переходящего со своим лэптопом из класса в библиотеку, а оттуда — в свою комнату в общежитии. В каждом помещении он подключается к новой сети и таким образом каждый раз получает новый IP-адрес.
Трудно себе представить ситуацию, в которой при каждом подключении лэптопа настройка его IP-адреса и других параметров выполнялась бы вручную системным администратором. Кроме того, мало кто из студентов (кроме посещающих занятия по компьютерным сетям) обладает достаточной квалификацией для подобной настройки. Однако с точки зрения мобильности у протокола DHCP есть несколько недостатков. Поскольку каждый раз, когда узел соединяется с новой сетью, ему предоставляется протоколом DHCP новый сетевой адрес, невозможно поддерживать соединение с удаленным приложением в то время, когда мобильный узел перемещается между сетями. В разделе «Мобильность и сетевой уровень» мы обсудим мобильный протокол IP — недавно разработанное расширение протокола IP, позволяющее мобильным хостам при перемещении из одной сети в другую использовать один и тот же постоянный адрес.