Dhcp server windows linux

Настройка DHCP-сервера в Linux

Протокол динамической конфигурации узлов (Dynamic Host Configuration Protocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.

IP-адрес, выделенный DHCP-клиенту DHCP-сервером, находится в «аренде», время аренды может отличаться в зависимости от того, сколько времени клиенту требуется соединение или конфигурация DHCP.

Как работает DHCP?

  • После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:

  • параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
  • декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.

4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:

Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.

Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

Здесь мы использовали следующие параметры:

routers — IP-адрес маршрутизатора по умолчанию
subnet-mask — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)

Шаг 3: Настройка статических IP-адресов для машин клиентов

6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

Читайте также:  Как узнать пароль от подключенной сети wifi windows 10

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):

Укажите следующие опции:

Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как поднять DHCP сервер на Linux

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

Один из способов — вручную настроить сетевой интерфейс (назначить IP-адрес вручную). Ручная конфигурация сети называется статической конфигурацией, это означает, что хосты не изменяют свой IP-адрес, если он не был изменен вручную пользователем или системным администратором. Если ваша корпоративная сеть включает более 1000 хостов, то настройка каждого хоста со статическим IP-адресом становится мягко говоря утомительной и, что более важно, крайне неэффективной.

Другой способ назначить вашим сетевым хостам правильный IP-адрес независимо от фактического размера сети — это назначить IP-адрес каждому хосту автоматически. Для выполнения автоматической настройки IP-адреса хоста и нужен DHCP (Dynamic Host Configuration Protocol).

DHCP позволяет клиенту, то есть вашему сетевому хосту, арендовать параметры конфигурации сети, такие как:

— IP-адреса и сетевые маски
— Серверы доменных имен (DNS )
— Шлюз по-умолчанию
— WINS-сервер
— Узлы системного журнала
— Прокси сервера
— сервер NTP
— X серверы шрифтов
— Узлы системного журнала

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

DHCP-сервер ведет запись всех арендованных IP-адресов и сохраняет их в файле под названием dhcpd.leases в каталоге /var/lib/dhcp (расположение этого файла может отличаться в зависимости от используемого дистрибутива Linux ). Наличие такого файла позволяет DHCP-серверу отслеживать все арендованные IP-адреса даже после перезагрузки или сбоя питания.

Вот некоторые преимущества использования DHCP-сервера в сети:

— Нет конфликтов IP-адресов. DHCP может гарантировать, что все хосты в сети имеют уникальный IP-адрес. DHCP-сервер хранит запись всех назначенных IP-адресов и перекрестную ссылку на них с MAC-адресами хоста.
— Основываясь на MAC-адресе, DHCP позволяет настроить фиксированный параметр для конкретного хоста
— Минимальная конфигурация локальной клиентской сети, следовательно, повышенная эффективность

Установка DHCP-сервера

Стандартный DHCP-сервер доступен для Linux дистрибутивов от ISC (Internet System Consortium).

Используйте следующую команду для установки DHCP-сервера, в зависимости от вашего дистрибутива Linux.

Debian и Ubuntu

# apt-get install isc-dhcp-server

Redhat и Fedora

# yum install dhcp

Простая конфигурация DHCP

По-умолчанию конфигурация в файле dhcpd.conf не содержит никаких объявленных сетей, а так же в файле /etc/default/isc-dhcp-server нет указанных интерфейсов, по которым будет происходит слушание и раздача параметров. Поэтому при запуске службы вы получите ошибку.

Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. . failed!
Examining log files such as /var/log/syslog reveals more details:
No subnet declaration for eth0 (some IP address).
Your server may be connected to multiple network subnets. To start DHCP server, at least one subnet must be defined within the DHCP configuration file /etc/dhcp/dhcpd.conf.
NOTE: if your server has access to more than one subnet, DHCP requires all subnets to be defined even though there isn’t immediate intention to enable DHCP service on that subnet.

Читайте также:  Проблемы со звуком windows 10 pro

Поэтому для запуска нам потребуется записать в конфигурационный файл простейшее описание сети(ей):

А так же в файле /etc/default/isc-dhcp-server укажем наш интерфейс (или несколько):

Этот файл конфигурации указывает DHCP-серверу прослушивать запросы DHCP-клиента в подсети 10.1.1.0 с маской сети 255.255.255.0 на интерфейсе eth0. Кроме того, он назначит IP адреса в диапазоне 10.1.1.3-10.1.1.254. Он также определяет пустое описание для подсети 192.168.0.0.

Измените приведенный выше код с вашей подсетью и вставьте его в файл /etc/dhcp/dhcpd.conf. После перезагрузите DHCP-сервер с помощью команды:

# service isc-dhcp-server restart

Время аренды по-умолчанию и максимальное время аренды в DHCP

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

default-lease-time — это значение в секундах, в котором срок действия арендованного IP-адреса будет установлен в том случае, если DHCP-клиент не запрашивает другого конкретного срока действия аренды
max-lease-time — это значение в секундах, которое определяет максимальное время истечения срока действия для IP-адреса, арендуемого DHCP-сервером

Определение DNS-сервера

Другим параметром конфигурации, который может быть задан DHCP-сервером своему клиенту, является определение DNS-сервера. Если вы хотите, чтобы ваши клиенты использовали DNS-сервер с IP-адресом 8.8.8.8 и 10.1.1.1, вы можете сделать это, включив опцию domain-name-servers в конфигурационный файл DHCP.

Назначим шлюз по-умолчанию

DHCP-сервер также позволяет использовать шлюз по-умолчанию для клиента. Например установим шлюз по-умолчанию 10.1.1.1 для клиентов сети 10.1.1.0, добавим строку option routers 10.1.1.1 в dhcpd.conf в соотвествующие секции:

Описание конфигурации для отдельных хостов на DHCP-сервере

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

Приведенный выше файл конфигурации DHCP будет постоянно присваивать IP-адрес 10.1.1.100 хосту printer с MAC-адресом 00:16:d3:b7:8f:86 и IP-адрес 10.1.1.200 хосту web-server с MAC-адресом 00:17:a4:c2:44:22.

Как быстро настроить DHCP-клиент на Ubuntu

Чтобы настроить ваш клиент на использование DHCP через сетевой интерфейс eth0 на Ubuntu или Debian подобных, пропишите следующие строки в файле /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)

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

# apt-get install isc-dhcp-relay

Затем создайте конфигурационный файл /etc/default/isc-dhcp-relay с такими двумя строками:

Приведенный выше конфигурационный файл даст указание агенту DHCP-relay agent прослушивать на интерфейсе eth0 запросы DHCP-клиента и пересылать их на DHCP-сервер по IP-адресу 192.168.5.5.

Установка и настройка DHCP сервера и клиента на CentOS/RHEL

Протокол DHCP (Dynamic Host Configuration Protocol) широко используется в TCP/IP сетях для автоматического назначения IP адресов и других сетевых параметров устройствам в сети. В этой статье мы покажем, как настроить DHCP сервер на CentOS 8, и как настроить DHCP клиента в этой ОС для автоматического получения настроек сети от сервера.

Установка и базовая настройка DHCP

В CentOS/RHEL можно установить DHCP-сервер с помощью менеджера пакетов из базового репозитория:

# dnf install dhcp-server -y – установка DHCP сервера для CentOS/RHEL 8

# yum install dhcp -y – установка DHCP сервера для CentOS/RHEL 7

Конфигурационный файл DHCP сервиса — /etc/dhcp/dhcpd.conf. Откройте в него и добавьте описание DHCP зоны (IP подсети) с настройками, которые ваш DHCP сервер должен выдавать клиентам.

Краткое описание настраиваемых параметров DHCP зоны:

  • subnet – адресное пространство (IP сеть), которое обслуживает данный DHCP сервер;
  • range – диапазон IP адресов, из которого будут назначаться адреса устройствам;
  • option domain-name-servers – адреса DNS серверов, которые будут использоваться клиентом;
  • option domain-name — параметр задает доменное имя, которое клиенты используют при запросах к DNS;
  • option routers — IP адрес шлюза, который будет использоваться DHCP клиентом
  • option broadcast-address — широковещательный (бродкаст) адрес IP сети;
  • default-lease-time, max-lease-time – время и максимальное время (в сек) на которое выдается IP адрес клиенту. После истечения этого времени IP клиент должен продлить срок аренды.
Читайте также:  Wechat dlya windows skachat

Некоторые опции DHCP можно задать на уровне глобальных параметров DCHP сервера (в начале файла dhcpd.conf). Например:

Для проверки корректность настройки конфигурационного файла DHCP сервера используется команда:

# dhcpd -t -cf /etc/dhcp/dhcpd.conf

На скриншоте с цифрой 1 показан пример проверки при корректной настройке конфигурационного файла DHCP. В сегменте с цифрой 2 показано, что при наличии ошибок в конфигурации утилита dhcpd указывает на них.

Добавьте сервис dhcpd в автозагрузку и запустите:

# systemctl enable dhcpd
# systemctl start dhcpd

У меня сразу сервис не запустился. Служба dhcpd вернула ошибку:

На виртуальной машине у меня два интерфейса, на одном прописан белый IP-адрес, а второй пустой. В подобном случае, нужно указать конкретный интерфейс для работы DHCP и прописать на нем адрес из сети, которую мы будем раздавать клиентам.

Добавьте в него следующую строку:

Где ens5 — это имя сетевого интерфейса, котором будет обслуживать DHCP запросы.

Выполните рестарт сети:

# service network restart – для CentOS/RHEL 7
# systemctl restart NetworkManager – для CentOS/RHEL 8

Когда настройки сети будут выполнены и применены, можно запустить сам сервис dhcpd:

# systemctl start dhcpd.service

Сервис успешно настроен и запущен. Чтобы DHCP-клиент мог получить адрес с нашего сервера, нужно добавить сервис в исключения в firewalld:

# firewall-cmd —permanent —add-service=dhcp
# firewall-cmd —reload

Если вы используете другой файерволл, откройте 67 UDP порт на нем.

Резервирование IP адресов на DHCP сервере

DHCP сервер выдает динамические IP адреса. Это значит, что IP адрес, назначаемый конкретному клиенту может иногда меняться. В конфигурационном файле DHCP сервера вы можете зарезервировать (зафиксировать) для любого клиента конкретный статический IP адрес. Просто добавьте в файл /etc/dhcp/dhcpd.conf следующие строки:

Как вы видите, нужно указать MAC-адрес устройства и зафиксированный за ним IP адрес из зоны DHCP, которую обслуживает сервер.

Не обязательно располагать отдельный DHCP сервер в каждом сегменте сети. Один DCHP сервер может обслуживать любое количество IP-подсетей. В этом случае на уровне маршрутизатора IP сегмента нужно настроить пересылку DHCP запросов на ваш сервер (функция DHCP-relay или ip helper-address в терминологии Cisco).

В конфигурационном файле dhcpd можно добаить несколько зон DHCP. Просто добавьте еще один блок:

Чтобы не загромождать основной конфиг dhcpd, вы можете с помощью функции include подключать дополнительные файлы конфигурации:

В файле subnets.conf можно описать все DCHP зоны, которые обслуживаются вашим сервером.

Для просмотра списка IP адресов, которые выданы клиентам вашим DHCP-сервером, используйте команду:

Все логи DHCP по умолчанию пишутся в файл /var/log/messages. Для фильтрации событий dhcp можно использовать команду:

# cat /var/log/messages | grep dhcp

Или перенастроить сохранение журнала в отдельный файл, через rsyslog. В файл /etc/rsyslog.conf добавьте строку:

А в файл /etc/dhcp/dhcpd.conf строку:

Перезапустите оба сервиса:

# systemctl restart rsyslog
# systemctl restart dhcpd

Теперь все события DHCP сервера пишутся в отдельный лог-файл.

На этом настройка и отладка DHCP-сервера окончена.

Получение сетевых настроек DCHP клиентом

Теперь посмотрим, как настроить DHCP клиент в CentOS и получить IP адрес от DHCP сервера. Я добавил дополнительный интерфейс на вторую виртуальную машину с CentOS. Теперь нужно создать файл конфигурации для этого интерфейса:

Внесите в него следующие параметры:

Сохраните файл и перезапустите сетевой сервис:

# systemctl restart NetworkManager

В моем случае IP адрес на интерфейсе появился только после перезагрузки сервера:

Несколько полезных команд для DHCP-клиента:

# dhclient -r ens5 – освободить текущий IP адрес
# dhclient -v ens5 – получить новый IP адрес у DHCP сервера
# dhclient -v ens5 -H testserver – указать имя клиента

Оцените статью