Try   HackMD
tags: МДК02.05 Организация администрирования операционных систем Linux Linux DHCP

Лабораторная работа №7. Настройка DHCP сервера в Linux

Тема: Настройка DHCP сервера.

Цель работы: Научиться настраивать DHCP сервер на OC Linux.
Необходимые материалы: Пк с доступом в интернет. Виртуальные машины с Linux Debian и Ubuntu.

Теоретическая часть

Определение протокола DHCP:

Запомните!

DHCP - это клиент-серверный протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol), с помощью которого в ИТ-инфраструктуре сетевые параметры каждого нового устройства прописываются автоматически.

Использование DHCP существенно упрощает работу системных администраторов в случаях расширения сети.

Не верные определения:

Запоните!

DHCP не является протоколом раздающим только IP адреса, а также он НЕ протокол динамической маршрутизации !!!

DHCP-сервер

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

  • IP-адрес
  • маску сети или подсети
  • шлюз (gateway)
  • адрес DNS-сервера,
  • время (NTP) - сервис синхронизации внутреннего времени компьютера.

Существует три режима работы DHCP-сервера:

  • ручное назначение, при котором IP, указанные в конфигурации хоста, назначаются фиксированным MAC-идентификатором При этом аппаратный адрес отдельного сетевого адаптера будет уникальным для каждого устройства. IP в данном случае назначаются на постоянной основе, но дополнительные клиенты в сеть подключены быть уже не могут;
  • динамическое назначение, при котором сервер определяет в своих записях, как надолго IP-адрес может быть предоставлен клиенту. Установленное администратором время называется «временем аренды». По истечении срока аренды сервер DHCP возвращает адрес в пул, где он может быть перераспределен по мере необходимости;
  • автоматическое назначение, при котором протокол динамической конфигурации хоста назначает определенный диапазон IP-адресов. Как только адреса «завязываются» друг на друга, они остаются связанными на бесконечное время. Недостатком этого способа является то, что новые клиенты не получат IP, если область полностью назначена.

DHCP доступен как для IPv4 (DHCPv4), так и для IPv6 (DHCPv6).

Механизм работы DHCP - сервера

Присвоение IP-адреса проводится через DHCP-сервер в несколько этапов:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Discover (поиск сервера). Когда клиент загружается (или хочет присоединиться к сети), он запускает процесс с широковещательным (broadcast) сообщением DHCPDISCOVER со своим собственным MAC-адресом для обнаружения доступных серверов DHCPv4. Поскольку у клиента нет способа узнать подсеть, к которой он принадлежит, у сообщения DHCPDISCOVER адресом назначения IPv4-адреса будет 255.255.255.255. А поскольку у клиента еще нет настроенного адреса IPv4, то исходными IPv4-адресом будет 0.0.0.0. Сообщение DHCPDISCOVER обнаруживает серверы DHCPv4 в сети. Поскольку у клиента не имеется IPv4 информации при загрузке, он использует для связи с сервером широковещательные адреса 2 и 3 уровня;
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • Offer (предложение сервера). Когда DHCPv4-сервер получает сообщение DHCPDISCOVER, он резервирует доступный IPv4-адрес для аренды или постоянного присвоения клиенту. Сервер также создает запись ARP, состоящую из MAC-адреса клиента и предоставленного IPv4-адреса. DHCP-сервер отправляет связанное сообщение DHCPOFFER запрашивающему клиенту, как одноадресную передачу (unicast), используя MAC-адрес сервера в качестве исходного адреса и MAC-адрес клиента в качестве адреса доставки;
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • Request (запрос). Когда клиент получает DHCPOFFER с сервера, он отправляет обратно сообщение DHCPREQUEST. Это сообщение используется как для получения IP-адреса, так и для продления его аренды. Когда DHCPREQUEST используется для получения аренды, оно служит уведомлением о принятии выбранных и предложенных конкретным сервером параметров, и оповещением об отклонении предложений от других серверов. Многие корпоративные сети используют несколько DHCP серверов, и сообщение DHCPREQUEST отправляется в виде широковещательной передачи, чтобы информировать все серверы о принятом предложении.
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • Acknowledge (подтверждение). При получении сообщения DHCPREQUEST сервер проверяет информацию об аренде с помощью ICMP-запроса на этот адрес, чтобы убедиться, что он уже не используется, и создает новую ARP запись для аренды клиента, а затем отвечает одноадресным DHCPACK-сообщением. Это сообщение является дубликатом DHCPOFFER, за исключением изменения поля типа сообщения. Когда клиент получает сообщение DHCPACK, он регистрирует информацию и выполняет поиск ARP для назначенного адреса. Если ответа на ARP нет, клиент знает, что адрес IPv4 действителен и начинает использовать его как свой собственный.
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Этот процесс называеться DORA и исходит он из первых букв названия пакетов DHCP: Discover, Offer, Request, Acknowledge.

APIPA

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

Чтобы получить IPv4-адрес, клиент выберет адрес случайным образом в диапазоне от 169.254.1.0 до 169.254.254.255 (включительно) с маской сети 255.255.0.0. Затем клиент отправит пакет ARP с запросом MAC-адреса, который соответствует случайно сгенерированному IPv4-адресу. Если какая-либо другая машина использует этот адрес, клиент сгенерирует другой случайный адрес и повторит попытку.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Во многих случаях наличие "локальных" адресов канала указывает на потерю сетевого подключения или на то, что DHCP-сервер не работает.

APIPA используется только в том случае, если активирован DHCP для настройки сетевого интерфейса.

Практическая часть

  1. Добавьте на виртуальную машину Debian второй интерфейс с внутреней сетью, также измените на внутрению сеть интерфейс на виртуальной машине Ubuntu.
  2. Установите пакет isc-dhcp-server на Debian:
apt install isc-dhcp-server
  1. Указываем интерфейс на котором будет работать DHCP в файле: etc/default/isc-dhcp-server. В моем случае название интерфейса ens36.
INTERFACES="ens36"
#Если у вас не заработает убирите "v4" в название параметра. Сотрите параметр INTERFACESv6 если он есть.
  1. Перейдем к настройки основного конфига. Для начала сделайте копию конфига:
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.old
  1. Теперь отчистите файл конфига:
cat /dev/null > /etc/dhcp/dhcpd.conf 
  1. В файл пишим следующие:
#lease time срок, на который DHCP-сервер присваивает IP-адрес клиенту. default-lease-time 3600; max-lease-time 7200; authoritative; #Параметры обслуживаемой области: subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; #шлюз option subnet-mask 255.255.255.0; #маска option domain-name-servers 8.8.8.8; #dns сервера range 192.168.1.2 192.168.1.254; #диапазон выдоваемых адресов IPv4 }
  1. Запустим службу и добавим в автозагрузку:
systemctl start isc-dhcp-server.service
systemctl enable isc-dhcp-server.service
systemctl status isc-dhcp-server.service
  1. Откройте Ubuntu клиент и выполните команду с своим названием интерфейса:
dhclient -v ens33 
  1. Проверьте работоспособность сети выполнив команду ping до сервера dhcp.

Контрольные вопросы

1. Что делает протокол DHCP?
2. Опишите механизм работы DHCP протокола.
3. Что такое APIPA?