DHCP означает протокол динамической конфигурации хоста. Однако DHCP — это всего лишь стандарт. Сам по себе он мало что делает. Работа устройств, использующих протокол DHCP, зависит от сервера DHCP. В этой статье мы разберёмся в том, что такое DHCP и как он работает.
Что такое DHCP?
Когда устройство подключается к сети, оно посылает широковещательный сигнал в поисках сервера DHCP (при условии, что устройство настроено на использование DHCP). Это похоже на крики на складе в поисках начальника. Вы знаете, что начальник склада где-то там, но пока не знаете где. Если повезет, начальник склада или сервер DHCP в данном примере крикнет вам в ответ.
Когда сервер DHCP ответит, он спросит, кто вы или кто ваш компьютер. Обычно компьютер отвечает MAC-адресом. MAC-адрес - это уникальный идентификатор, присвоенный сетевому адаптеру его производителем. Одно устройство может иметь несколько MAC-адресов, если оно оснащено несколькими сетевыми адаптерами.
Когда ваше устройство ответит серверу DHCP своим MAC-адресом, он просмотрит список своих устройств на предмет наличия уже назначенного ему IP-адреса. Правда, мы должны отметить два важных момента после последнего предложения:
Во-первых, DHCP-сервер отслеживает все устройства, которыми он управляет в любой момент времени. DHCP-серверы делают это для того, чтобы не назначать устройствам новые адреса каждый раз, когда они подключаются к сети. Количество IP-адресов ограничено, поэтому серверы DHCP не могут раздавать IP-адреса, как бусы на Марди Гра.
Во-вторых, IP-адреса имеют время аренды. Подумайте об этом как об аренде дома или автомобиля (за исключением того, что здесь нет денег или контракта). Ваш сервер DHCP будет иметь заранее настроенное время аренды. Например, DHCP-сервер может предоставлять IP-адреса в аренду на три дня за один раз. Пока устройство подключено к сети, DHCP-сервер будет связываться с ним, чтобы узнать, нужен ли ему еще IP-адрес. Если устройство нуждается, DHCP-сервер продлевает аренду. Если устройство не отвечает серверу DHCP, срок аренды IP-адреса истекает через три дня, и этот IP-адрес снова становится доступным для других устройств.
Таким образом, DHCP-сервер - это логистический менеджер IP-адресов для сети. Серверы DHCP не предназначены для обычных людей. Вернее, они предназначены, но только как побочный эффект. Серверы DHCP были разработаны для того, чтобы сделать жизнь системных администраторов гораздо более управляемой. Вот почему.
Вначале системным администраторам нужно было назначать IP-адрес каждому устройству вручную. Однако Sneaker Net медлительны, как усталые улитки. Хождение к каждому устройству в организации для ручной настройки IP-адресов отнимает уйму времени.
Кроме того, системным администраторам приходилось вручную отслеживать информацию об IP-адресах. Это было в те времена, когда ноутбуки и электронные таблицы еще не были в ходу. Управлять назначенными IP-адресами для нескольких устройств не так уж сложно, но можете ли вы представить себе, насколько трудно отслеживать сотни или тысячи устройств, разбросанных по большому кампусу? Ошибки будут случаться, даже в те времена, когда планшетные компьютеры и электронные таблицы были в изобилии.
Таким образом, родился сервер DHCP. Сейчас серверы DHCP управляют IP-адресами во всех сетях, включая домашние. Функции DHCP являются необходимыми инструментами для операторов сетей и производителей, создающих продукты для дома.
Внутренняя работа протокола DHCP
Протокол DHCP (Dynamic Host Configuration Protocol) упрощает управление конфигурацией IP-адресов, автоматизируя настройку адресов для сетевых клиентов. Все компьютеры, участвующие в сетях TCP/IP или в Интернете, должны иметь назначенные им IP-адреса и другую IP-информацию. IP-адреса позволяют компьютерам и другим сетевым узлам взаимодействовать с другими компьютерами или узлами в сети.
Дополнительная информация, необходимая сетевым клиентам, может включать маску подсети, шлюз по умолчанию и информацию о DNS-сервере. Эта информация необходима для того, чтобы компьютер мог выполнять такие действия, как отправка данных за пределы сети и преобразование имен хостов в IP-адреса. Вместо того чтобы вручную вводить всю эту информацию на каждом клиенте, DHCP может сделать это за вас автоматически после настройки на сервере DHCP.
Для того чтобы DHCP работал, необходимо иметь устройство, выполняющее роль DCHP-сервера. Таким устройством может быть компьютер, маршрутизатор или другое сетевое устройство. Сервер DHCP настроен на диапазон или диапазоны IP-адресов, которые могут быть использованы для предоставления клиентам, запрашивающим их. Он также может быть настроен на другие сетевые параметры, как указано выше.
Чтобы клиент мог получать информацию от DHCP-сервера, он должен быть включен DHCP. Если он настроен таким образом, то при запуске он будет искать DHCP-сервер. Этот процесс зависит от того, какая реализация DHCP используется. Например, в Microsoft реализация DHCP работает следующим образом:
- Клиент посылает пакет DHCPDiscover при первой попытке входа в сеть.
- Затем DHCP-сервер, получивший пакет DHCPDiscover, отвечает пакетом DHCPOffer, который содержит нераспределенный IP-адрес и любую дополнительную информацию о конфигурации TCP/IP.
- Когда клиент DHCP получает пакет DHCPOffer, он отвечает широковещательным пакетом DHCPRequest, который содержит предложенный IP-адрес и показывает принятие предложенного IP-адреса.
- Выбранный DHCP-сервер подтверждает DHCPRequest клиента на IP-адрес, отправляя пакет DHCPAck, после чего клиент может получить доступ к сети.
- Клиенты DHCP пытаются возобновить аренду, когда истекает 50 процентов времени аренды, отправляя сообщение DHCPRequest на сервер DHCP. Они также отправляют это сообщение при перезагрузке, чтобы попытаться вернуть прежнюю IP-конфигурацию.
Заключение
DHCP — это протокол, который может автоматически предоставлять клиентам информацию о конфигурации и назначать IP-адреса, как статические, так и динамические, их устройствам. В основе его работы лежит архитектура клиент-сервер, которая по своей природе работает по принципу "запрос-ответ".
В настоящее время не существует практической альтернативы протоколу DHCP, несмотря на все проблемы, связанные с ним. Этот протокол dhcp используется при проектировании подавляющего большинства современных локальных сетей.
Чтобы сервер DHCP мог назначить IP-адрес, он должен находиться в той же подсети, что и клиент, или быть подключенным к ней через маршрутизатор.