Основная информация по протоколу динамической конфигурации хостов DHCP

DHCP расшифровывается, как Dynamic Host Configuration Protocol — протокол динамической конфигурации хостов. Компьютеру, для того, чтобы он мог работать в сети нужно получить IP-адрес.

Протокол DHCP

Есть два варианта назначения IP-адресов. Во-первых, IP-адреса можно назначать вручную, это удобно делать, когда в сети мало компьютеров, например, дома или в небольшой организации. Но если в вашей сети сотни или тысячи компьютеров назначить на каждый IP-адрес вручную практически невозможно. Для этого необходимы методы автоматического назначения IP-адресов. Как раз протокол DHCP предоставляет такую возможность. Это позволяет существенно снизить трудозатраты по настройке сетевых параметров в компьютерах в больших сетях.

С другой стороны, чтобы использовать протокол DHCP необходимо создать соответствующую инфраструктуру, создать в сети DHCP сервер и поддерживать его. Другой недостаток DHCP в том, что одному и тому же компьютеру в разное время DHCP сервер может назначать разные IP-адреса.

Работа протокола DHCP

DHCP работает по модели клиент-сервер. Клиент это компьютер, который получает IP-адрес автоматически. А сервер DHCP это компьютер, который раздает ip-адреса и следит за тем, чтобы один и тот же ip-адрес не был выдан двум клиентам, в противном случае они не смогут работать с сетью. Для того, чтобы получить ip-адрес, клиент и сервер обмениваются между собой сообщениями DHCP в режиме запрос-ответ.

Получение IP-адреса

Рассмотрим, как происходит получение IP-адреса по протоколу DHCP. Когда клиент включается, у него нет никакой информации о той сети в которой он находится. Его первая задача узнать, где находится DHCP сервер. Для этого он посылает сообщение DHCP DISCOVER.

Сообщение DHCP DISCOVER

Для того, чтобы найти DHCP сервер, сообщение DHCP DISCOVER посылается на широковещательный МАК-адрес. Это сообщение принимают все компьютеры в сети.

сообщение DHCP DISCOVER посылается на широковещательный МАК-адрес

Сервер, после того, как получил сообщение DHCP DISCOVER в ответ посылает сообщение DHCP OFFER. В сообщение DHCP сервер включает ip-адрес, который предлагает использовать клиенту.

сообщение DHCP OFFER

Клиент в ответ посылает сообщение DHCP REQUEST с тем же самым ip-адресом.

сообщение DHCP REQUEST

На следующем шаге сервер посылает подтверждающее сообщение DHCP ACK, куда еще раз включается ip-адрес. После этого клиент может использовать ip-адрес для работы в сети. Проще всего запомнить процесс получения ip-адреса по протоколу DHCP по первым буквам DHCP сообщений DORA (Discover, Offer, Request, Ack).

Кроме тех сообщений, которые мы рассмотрели, есть и другие сообщения.

Сообщения DHCP протокола

  • Сообщение NACK запрещает использование клиентом ip-адреса, который он запросил в сообщении DHCP request.
  • Сообщение RELEASE используется для освобождения ip-адреса, который уже не нужен клиенту.
  • Сообщение INFORM используется для получения информации о сети, если клиент уже знает свой IP-адрес и ему не надо получать его с помощью протокола DHCP. Например, адрес может быть сконфигурирован вручную.

Зачем нужно четыре шага?

Зачем нужно 4 шага? Ведь на первый взгляд достаточно трёх шагов. Ответ на этот вопрос Вы узнаете из видео на 3:40 минуте.

Назначение адресов в DHCP

DHCP сервер может использовать 2 способа назначения адресов компьютерам.

  1. Первый способ — фиксированный. В этом случае в конфигурационных серверах DHCP сервера для каждого МАК-адреса прописывается соответствующий ему IP-адрес, который DHCP сервер должен выдавать клиенту. Это удобно делать в небольшой сети, где Вы знаете MAC-адреса всех компьютеров. Но в крупной сети или если Вы не знаете мак-адреса всех компьютеров это сделать невозможно. Например, если вы делаете сеть в кафе, куда люди приходят со своими ноутбуками, смартфонами, планшетами, вы не можете знать заранее их мак-адреса.
  2. Другой подход — динамический. В этом случае у DHCP сервера есть пул адресов, это диапазон адресов из которого DHCP сервер может взять любой IP-адрес и назначить компьютеру. При этом DHCP сервер следит за тем, чтобы один и тот же IP-адрес из пула не был назначен двум компьютерам одновременно.

Время аренды в DHCP

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

Обновление аренды IP-адреса

После того, как время арены закончилось, ip-адрес освобождается и DHCP сервер может отдать его другому клиенту. Но что делать, если текущий клиент хочет использовать этот IP-адрес дальше? Для этого клиенту необходимо продлить аренду, обычно клиенты начинают это делать после того, как пройдет половина времени аренды, для продления аренды используется специальная сокращенная процедура получения IP-адреса. Так как клиент уже знает свой IP-адрес он сразу пересылает серверу сообщение DHCP request в котором указывает этот ip-адрес и если все нормально, то сервер в ответ высылает сообщение DHCP ACK, которое подтверждает, что клиент может использовать этот ip-адрес дальше.

сообщение DHCP ACK

Прекращение использования адреса

После того, как компьютер перестал работать с сетью, например при выключении, ему необходимо сказать об этом DHCP серверу, для этого используется сообщение DHCP Release. После получения такого сообщения DHCP сервер может отдать этот ip-адрес какому-нибудь другому компьютеру в сети. 

Все современные операционные системы автоматически отправляют сообщения DHCP Release при выключении, никаких дополнительных действий от пользователя не требуется. 

Если сообщение DHCP Release не будет отправлено, например в случае, когда компьютер выключен некорректно или произошел сбой в операционной системе, то DHCP сервер будет считать, что этот адрес занят пока не закончится время аренды и только после окончания времени аренды он может отдать этот ip-адрес другому компьютеру. 

Конфигурационная информация

Компьютеру, для корректной работы в сети, обычно, нужен не только ip-адрес. Нужно знать маску подсетей и маршрутизатор по умолчанию. Также, хорошо узнать адреса серверов имен. DHCP позволяет передать эти и другие сведения о конфигурации сети с помощью опций. Опции включаются в пакет DHCP и передаются вместе с ip-адресом. Кроме маски подсети и маршрутизатора по умолчанию, обычно передается адрес DNS серверов, которые используются для разрешения имен, адреса серверов времени, какие-либо полезные локальные маршруты, а также другая конфигурационная информация.

Поиск DHCP сервера в сети

Если Вы используете DHCP для назначения ip-адресов своей сети, то при планировании сети необходимо обращать внимание на то, где расположен DHCP сервер. Он должен располагаться в той же самой подсети, что и клиенты, которые будут получать ip-адреса по протоколу DHCP.

Поиск DHCP сервера в сети

Почему так происходит? Клиент DHCP при включении не знает, где находится DHCP сервер и отправляет запрос DHCP Discover на широковещательный адрес.

Клиент DHCP отправляет запрос DHCP Discover

Его получают все компьютеры, которые находятся в данной подсети в том числе и DHCP сервер.

DHCP сервер и компьютеры

Рассмотрим, что происходит, если DHCP сервер находится в другой подсети, то есть отделен от клиента одним или несколькими маршрутизаторами. Клиент DHCP отправляет сообщение DHCP Discover на широковещательный мак-адрес, но маршрутизатор не передает широковещательный трафик, поэтому сообщение DHCP discover не доходит до сервера DHCP, соответственно он не может выдать клиенту ip-адрес.

сообщение DHCP discover не доходит до сервера DHCP

Чтобы решить эту проблему, используется DHCP Relay. Это специальная конфигурация маршрутизаторов или маршрутизирующих коммутаторов, которые позволяют им передавать широковещательный трафик, но не весь, а только тот, который относится к протоколу DHCP. Если наш маршрутизатор способен работать в режиме DHCP Relay, то он передаст сообщение DHCP Discover от клиента к DHCP серверу, который находится в другой сети.

сообщение DHCP Discover от клиента к DHCP серверу

И только в этом случае DHCP сервер может выдать ip-адрес клиенту, который находится за маршрутизатором.

 DHCP сервер может выдать ip-адрес клиенту

Заключение

Протокол DHCP используется для автоматического назначения IP-адресов и другой конфигурационной информации. Протокол DHCP использует архитектуру клиент-сервер и работает в режиме запрос ответ. Чтобы получить IP-адрес используются 4 DHCP сообщения, сокращенно DORA. DHCP сервер выдает адреса на ограниченный срок (срок аренды). Чтобы DHCP сервер мог выдавать ip-адреса клиентам, он должен находиться с ними в одной подсети или необходимо использовать DHCP Relay на маршрутизаторах и коммутаторах.

Ссылка на основную публикацию