Вы находитесь на странице: 1из 7

Лабораторная работа № 10.

Тема: DHCP протокол


Цель работы: обеспечить корректное автоматическое присвоение IP- адресов узлам сети
Теоретические основы:
DHCP
Dynamic Host Configuration Protocol «протокол динамической настройки узла» — сетевой
протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие
параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели
«клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации
сетевого устройства обращается к так называемому серверу DHCP и получает от него нужные
параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером
среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает
количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.

Протокол DHCP предоставляет три способа распределения IP-адресов:


• Ручное распределение. При этом способе сетевой администратор сопоставляет
аппаратному адресу (для Ethernet-сетей это MAC-адрес) каждого клиентского компьютера
определённый IP-адрес. Фактически данный способ распределения адресов отличается от
ручной настройки каждого компьютера лишь тем, что сведения об адресах хранятся
централизованно (на сервере DHCP), и потому их проще изменять при необходимости.
• Автоматическое распределение. При данном способе каждому компьютеру на постоянное
использование выделяется произвольный свободный IP-адрес из определённого
администратором диапазона.
• Динамическое распределение. Этот способ аналогичен автоматическому распределению
за исключением того, что адрес выдаётся компьютеру не на постоянное пользование, а на
определённый срок. Это называется арендой адреса. По истечении срока аренды IP-адрес
вновь считается свободным, и клиент обязан запросить новый (он, впрочем, может
оказаться тем же самым). Кроме того, клиент сам может отказаться от полученного адреса.

Опции DHCP
Помимо IP-адреса, DHCP также может сообщать клиенту дополнительные параметры,
необходимые для нормальной работы в сети. Эти параметры называются опциями DHCP. Список
стандартных опций можно найти в RFC 2132.
Поле опций имеет переменную длину, однако DHCP-клиент должен быть готов принять DHCP-
сообщение длиной в 576 байт (в этом сообщении поле options имеет длину 340 байт).
Каждая опция кодируется последовательностью «код» (один байт), «длина» (один байт),
«значение» — поле переменной длины, размер которого равен значению поля «длина», в том числе
может быть нулевым.
Исключения сделаны для двух кодов:
• код 0 — используются для выравнивания. После него отсутствует поле «длина»
• код 255 (0xFF) — означает конец списка опций. Этот код обязательно должен
присутствовать последним. За ним также не следует поле «длина»
Наиболее часто используемых опций являются:
• IP-адрес маршрутизатора по умолчанию;
• маска подсети;
• адреса серверов DNS;
• имя домена DNS.
Некоторые поставщики программного обеспечения могут определять собственные,
дополнительные опции DHCP

Устройство протокола
Протокол DHCP является клиент-серверным, то есть в его работе участвуют клиент DHCP и
сервер DHCP. Передача данных производится при помощи протокола UDP. По умолчанию запросы
от клиента делаются к серверу на порт 67, сервер в свою очередь отвечает клиенту на порт 68,
выдавая адрес IP и другую необходимую информацию, такую, как сетевую маску, маршрутизатор и
серверы DNS.

Пример процесса получения адреса


Рассмотрим пример процесса получения IP-адреса клиентом от сервера DHCP. Предположим,
клиент ещё не имеет собственного IP-адреса, но ему известен свой предыдущий адрес —
192.168.1.100. Процесс состоит из четырёх этапов. Эти этапы часто сокращаются как DORA
(Discovery, Offer, Request, и Acknowledgement)

Обнаружение DHCP
Вначале клиент выполняет широковещательный запрос по всей физической сети с целью
обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER
(значение опции «Тип сообщения» — 1), при этом в качестве IP-адреса источника указывается
0.0.0.0 (если компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения —
широковещательный адрес 255.255.255.255.
Клиент заполняет несколько полей сообщения начальными значениями:
• В поле xid помещается уникальный идентификатор транзакции, который позволяет
отличать данный процесс получения IP-адреса от других, протекающих в то же время.
• В поле chaddr помещается аппаратный адрес (MAC-адрес) клиента.
• В поле опций указывается последний известный клиенту IP-адрес. В данном примере это
192.168.1.100. Это необязательно и может быть проигнорировано сервером.
Сообщение DHCPDISCOVER может быть распространено за пределы локальной физической сети
при помощи специально настроенных агентов ретрансляции DHCP, перенаправляющих
поступающие от клиентов сообщения DHCP серверам в других подсетях.
Не всегда процесс получения IP-адреса начинается с DHCPDISCOVER. В случае, если клиент
ранее уже получал IP-адрес и срок его аренды ещё не прошёл — клиент может пропустить стадию
DHCPDISCOVER, начав с запроса DHCPREQUEST, отправляемого с идентификатором сервера,
который выдал адрес в прошлый раз. В случае же отсутствия ответа от DHCP-сервера, выдавшего
настройки в прошлый раз, клиент отправляет DHCPDISCOVER. Тем самым клиент начинает
процесс получения с начала, обращаясь уже ко всем DHCP-серверам в сегменте сети.

Предложение DHCP
Получив сообщение от клиента, сервер определяет требуемую конфигурацию клиента в
соответствии с указанными сетевым администратором настройками. В данном случае DHCP-
сервер согласен с запрошенным клиентом адресом 192.168.1.100. Сервер отправляет ему ответ
DHCPOFFER (значение опции «Тип сообщения» — 2), в котором предлагает конфигурацию.
Предлагаемый клиенту IP-адрес указывается в поле yiaddr. Прочие параметры (такие, как адреса
маршрутизаторов и DNS-серверов) указываются в виде опций в соответствующем поле.
Это сообщение DHCP-сервер отправляет хосту, пославшему DHCPDISCOVER, на его MAC, при
определенных обстоятельствах сообщение может распространяться как широковещательная
рассылка. Клиент может получить несколько различных предложений DHCP от разных серверов;
из них он должен выбрать то, которое его «устраивает».

Запрос DHCP
Выбрав одну из конфигураций, предложенных DHCP-серверами, клиент отправляет запрос
DHCPREQUEST (значение опции «Тип сообщения» — 3). Он рассылается широковещательно;
при этом к опциям, указанным клиентом в сообщении DHCPDISCOVER, добавляется специальная
опция — идентификатор сервера — указывающая адрес DHCP-сервера, выбранного клиентом (в
данном случае — 192.168.1.1).
Этот же запрос используется, когда время аренды адреса подходит к концу, для продления времени
(renewing) или процедуры перепривязки (rebinding). В этих случаях опции «идентификатор
сервера» и «запрошенный IP-адрес» не указываются, а поле ciaddr заполняется ранее назначенным
адресом клиента. В случае продления времени запрос отправляется не широковещательно, а
адресно на выдавший сервер. Только если сервер не отвечает в течение отведённого времени,
инициируется процедура перепривязки с широковещательными запросами.
Также запрос используется для инициализации после перезагрузки клиента (init-reboot), когда ему
уже известен ранее назначенный адрес. В таком случае DHCPDISCOVER не выполняется, а сразу
отсылается широковещательный DHCPREQUEST без указания опции «идентификатор сервера»,
но с известным адресом в опции «запрошенный IP-адрес». Поле ciaddr остаётся пустым.

Подтверждение DHCP
Наконец, сервер подтверждает запрос и направляет подтверждение DHCPACK (значение опции
«Тип сообщения» — 5) клиенту. После этого клиент должен настроить свой сетевой интерфейс,
используя предоставленные опции.

Другие сообщения DHCP


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

Отказ DHCP
Если после получения подтверждения (DHCPACK) от сервера клиент обнаруживает, что
указанный сервером адрес уже используется в сети, он рассылает широковещательное сообщение
отказа DHCPDECLINE (значение опции «Тип сообщения» — 4), после чего процедура получения
IP-адреса повторяется. Использование IP-адреса другим клиентом можно обнаружить, выполнив
запрос ARP.

Отмена DHCP
В ситуациях, когда сервер не может назначить клиенту запрошенный адрес, например, если при
выполнении DHCPREQUEST в опции «запрошенный IP-адрес» от клиента передано неверное
значение, сервер отправляет широковещательное сообщение отмены DHCPNAK (значение опции
«Тип сообщения» — 6). При получении такого сообщения соответствующий клиент должен
повторить процедуру получения адреса.

Освобождение DHCP
Клиент может явным образом прекратить аренду IP-адреса. Для этого он отправляет сообщение
освобождения DHCPRELEASE (значение опции «Тип сообщения» — 7) тому серверу, который
предоставил ему адрес в аренду. В отличие от других сообщений DHCP, DHCPRELEASE не
рассылается широковещательно.

Информация DHCP
Сообщение информации DHCPINFORM (значение опции «Тип сообщения» — 8) предназначено
для определения дополнительных параметров TCP/IP (например, адреса маршрутизатора по
умолчанию, DNS-серверов и т. п.) теми клиентами, которым не нужен динамический IP-адрес (то
есть адрес которых настроен вручную). Серверы отвечают на такой запрос сообщением
подтверждения (DHCPACK) без выделения IP-адреса.

Продление времени аренды и перепривязка


При отправке сообщений DHCPOFFER и DHCPACK в ответ на DHCPREQUEST сервер заполняет
значение опции 51 «Время аренды», 32-битное значение, выражающее относительное время в
секундах, на которое IP-адрес предоставляется клиенту.
Опционально сервер сообщает значения двух дополнительных интервалов времени T1 и T2 в
опциях 58 и 59, соответственно. Если эти опции не указаны, то клиент вычисляет T1, равное 1/2 от
времени аренды, и T2, равное 7/8 от времени аренды.
По истечении времени T1 клиент переходит в состояние обновления времени аренды (renewing) и
предпринимает попытку продлить аренду IP-адреса, посылая адресный (unicast) запрос
DHCPREQUEST серверу, указывая свой адрес в поле ciaddr, не передавая при этом опции
«идентификатор сервера» и «запрошенный IP-адрес». На этот запрос сервер отвечает DHCPACK,
указывая новый интервал аренды относительно текущего времени.
Если сервер не отвечает, то повторные попытки отправки запроса предпринимаются по истечении
половины времени, оставшегося до T2, но не менее чем через 60 секунд.
Клиент может запросить продление аренды и до истечения интервала T1.

Если по истечении времени T2 ответ от сервера так и не был получен, то клиент переходит в
состояние перепривязки (rebinding). В этом случае клиент начинает отправлять широковещательно
аналогичные запросы DHCPREQUEST, также при необходимости повторяя попытки отправки
после истечения половины оставшегося до завершения аренды времени, но не быстрее, чем через
60 секунд.
До истечения времени аренды, даже при истечении T1 и T2, клиент продолжает пользоваться
назначенным IP-адресом как и прежде. Но при истечении времени аренды клиент должен
прекратить сетевую активность и пытаться получить новый адрес, начиная с запроса
DHCPDISCOVER.
Порядок выполнения работы:
Рассмотрим два примера
Рассмотрим пример (рис. а):

1. Запускаем Cisco Packet Tracer;

2. Настроим маршрутизатор:

2.1. Подключение осуществляется к порту fastEthernet 0/1. Настройте интерфейс и присвойте IP


адрес 192.168.1.1 255.255.255.0;
2.2. Создадим пространство IP адресов с помощью команд ip dhcp pool DHCP, network 192.168.1.0
255.255.255.0;
2.3. Выдаем компьютеру IP адрес и маршрут default-router 192.168.1.1, dns –server 0.0.0.0;
2.4. Исключим некоторые IP адреса и DHCP протокола (например, при подключении к сети
сервера) с помощью команд ip dhcp excluded- adresses 192.168.1.99 и исключим IP адрес роутера ip
dhcp excluded-adresses 192.168.1.1;
3. Настроим компьютеры. Ставим галочку на DHCP вместо Static. IP адрес присвоится
автоматически.
4. Проверьте сеть.
Рассмотрим пример (рис. б):

1. Настроим коммутатор.
1.1. Создайте VLAN 2,3 и 4;
1.2. Настройте порты, к которым подключены компьютеры;
1.3. Настройте порт, к которым подключен сервер;
1.4. Соединим все VLAN с маршрутизатором с помощью команд (в нашем случае порт
fastEthernet 0/1) interface fastEthernet 0/1, switchport mode trunk, switchport trunk allowed vlan 2, 3, 4.
Сохраните.
2. Настроим маршрутизатор:

2.1. Настройте порт и задайте IP адрес (например, с VLAN 2 IP адрес 192.168.2.1, с VLAN 3 IP
адрес 192.168.3.1, с VLAN 4 IP адрес 192.168.4.1);
2.2. Проверьте.
3. Настроим DHCP сервер:

3.1. Зададим статический IP адрес 192.168.4.2 и шлюз 192.168.4.1;


3.2. Проверьте взаимодействие с маршрутизатором;
3.3. Перейдите во вкладку Config/DHCP. Создадим сервер с именем DHCPvlan2, IP адрес
192.168.2.0. Шлюз 192.168.2.1 и DNS Server 0.0.0.0. Включаем его (On) и добавляем (Add);
Аналогично создайте для VLAN 3.
4. Переадресуем запросы с компьютеров на DHCP сервер:

4.1. Заходим в настройки маршретизатора. С помощью команд interface gigabitEthernet 0/0.2, ip


helper-adress 192.168.1.2. Аналогично выполните для VLAN 3. Сохраните.
5. Попробуйте получить IP адреса компьютеров (IP Configuration).

6. Проверьте взаимодействие.
Контрольные вопросы:
1. Каковы самые большие преимущества использования DHCP?

2. Что собой представляет DHCP-сервер, в чем его функции?

3. Дайте определение DHCP-клиента.

4. Что такое аренда в DHCP?

5. Какие порты и протоколы использует DHCP?

Вам также может понравиться