Linux dhcp next server

dhcpd (Русский)

Состояние перевода: На этой странице представлен перевод статьи dhcpd. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

dhcpd — реализация DHCP-сервера от Internet Systems Consortium. Может использоваться, к примеру, на машине, играющей роль маршрутизатора в локальной сети.

Примечание: dhcpd (DHCP (server) daemon) не следует путать с dhcpcd (DHCP client daemon).

Установка

Использование

dhcpd предоставляет два файла юнитов, dhcpd4.service и dhcpd6.service , с помощью которых можно управлять демоном. Демоны запускаются на всех сетевых интерфейсах для IPv4 и IPv6 соответственно. Альтернативный вариант описан в разделе #Запуск на одном сетевом интерфейсе.

Настройка

Присвойте статический адрес IPv4 тому сетевому интерфейсу, для которого вы хотите запустить DHCP-сервер (в примерах будет использоваться eth0 ). Обратите внимание, что у двух различных сетевых интерфейсов на одной машине не должны полностью совпадать первые три октета адреса.

# ip link set up dev eth0 # ip addr add 139.96.30.100/24 dev eth0 # произвольный адрес для примера
  • 192.168/16 (подсеть 192.168.0.0 , маска подсети 255.255.0.0 )
  • 172.16/12 (подсеть 172.16.0.0 , маска подсети 255.240.0.0 )
  • 10/8 (для больших сетей; подсеть 10.0.0.0 , маска подсети 255.0.0.0 )

Автоматическое назначение статического IP при загрузке системы описано в статье Настройка сети#Статический IP-адрес.

Стандартный файл настроек, dhcpd.conf , содержит много незакомментированных примеров, поэтому следует переместить его в другое место, например

# cp /etc/dhcpd.conf /etc/dhcpd.conf.example

и создать на его месте новый.

Минимальная конфигурация может выглядеть следующим образом:

option domain-name-servers 8.8.8.8, 8.8.8.4; option subnet-mask 255.255.255.0; option routers 139.96.30.100; subnet 139.96.30.0 netmask 255.255.255.0

Если необходимо выдать фиксированный IP-адрес конкретному устройству, можно также указать настройки для отдельного хоста:

option domain-name-servers 8.8.8.8, 8.8.4.4; option subnet-mask 255.255.255.0; option routers 139.96.30.100; subnet 139.96.30.0 netmask 255.255.255.0 < range 139.96.30.150 139.96.30.250; >host macbookpro

Опция domain-name-servers содержит адреса DNS-серверов, которые передаются клиентам. В данном примере используются публичные DNS-сервера Google. Если в вашей подсети уже есть DNS-серверы (например, предоставленные провайдером), следует указать их. Если на компьютере уже настроен собственный DNS-сервер, то укажите его адрес ( 139.96.30.100 в нашем примере).

Опции subnet-mask и routers содержат маску подсети и список маршрутизаторов в этой подсети, соответственно. В большинстве случаев для небольших сетей подойдет маска 255.255.255.0 , а в качестве маршрутизатора используется та же машина, на которой настроен DHCP-сервер.

Читайте также:  Find string in any file linux

Блоки subnet содержат настройки для отдельных подсетей, которые сопоставляются сетевым интерфейсам, на которых запущен dhcpd. В примере определена одна подсеть 139.96.30.0/24 за интерфейсом eth0 , для которой задан диапазон IP-адресов. Подключаемым клиентам будут присваиваться адреса из этого диапазона.

Запуск на одном сетевом интерфейсе

Если ваш компьютер уже является частью одной или нескольких сетей, может возникнуть ситуация, когда адреса будут выдаваться в том числе и компьютерам из другой сети. Это можно исправить либо настройками dhcpd, либо запуском в качестве демона с помощью systemctl.

Настройки dhcpd

Чтобы исключить конкретный интерфейс, в файле настроек создайте пустой блок subnet для этого интерфейса:

# Исключить DHCP из демилитаризованной зоны (192.168.2.0/24) subnet 192.168.2.0 netmask 255.255.255.0

Файл службы

В «комплекте поставки» dhcpd не предусмотрен юнит для запуска на одном интерфейсе, поэтому придётся создать его самостоятельно. Сначала скопируйте существующую службу:

# cp /usr/lib/systemd/system/dhcpd4.service /etc/systemd/system/dhcpd4@.service

Затем отредактируйте строку ExecStart, добавив в неё спецификатор интерфейса:

/etc/systemd/system/dhcpd4@.service
. [Service] . ExecStart=/usr/bin/dhcpd -4 -q -cf /etc/dhcpd.conf -pf /run/dhcpd4/dhcpd.pid %I .

Это юнит-шаблон, который привязывает процесс к определённому интерфейсу, например — dhcpd4@eth0.service . Здесь eth0 — название сетевого интерфейса; узнать интерфейсы вашей системы можно командой ip link .

Использование для PXE

Настройка для PXE выполняется следующими двумя параметрами:

next-server 192.168.0.2; filename "/pxelinux.0";

Эти строки можно указать как в блоке subnet , так и в настройках отдельного хоста host . next-server представляет собой адрес TFTP-сервера, а filename — имя образа для загрузки. Подробнее см. PXE.

Смотрите также

Источник

Настройка 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, нужно выполнить следующую команду:

$ sudo apt install isc-dhcp-server

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

Читайте также:  Mosquito linux что это

Например, если вам нужно, чтобы демон 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 domain-name "itproffi.lan"; option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan; default-lease-time 3600; max-lease-time 7200; authoritative;

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

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

subnet 192.168.10.0 netmask 255.255.255.0

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

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

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

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

host centos-node < hardware ethernet 00:f0:m4:6y:89:0g; fixed-address 192.168.10.105; >host fedora-node

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

$ sudo systemctl start isc-dhcp-server.service $ sudo systemctl enable isc-dhcp-server.service
$ sudo service isc-dhcp-server.service start $ sudo service isc-dhcp-server.service enable

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

$ sudo ufw allow 67/udp $ sudo ufw reload $ sudo ufw show

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

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

Читайте также:  Linux reboot no root

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

$ sudo vi /etc/network/interfaces
auto eth0 iface eth0 inet dhcp

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

$ sudo systemctl restart networking
$ sudo service networking restart

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

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

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

Похожие записи:

Источник

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

Обновлено и опубликовано

Опубликовано: 12.03.2023

Установка и настройка

Сервер DHCP в Ubuntu может быть реализован с помощью пакета isc-dhcp-server. Его можно установить из стандартных репозиториев системы. Выполняем обновления кэша пакетов и установку:

subnet 192.168.0.0 netmask 255.255.255.0 <
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.10, 192.168.0.11;
option domain-name «dmosk.local»;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
>

  • subnet — сеть, для которой будет работать данная группа настроек.
  • range — диапазон, из которого будут браться IP-адреса.
  • option domain-name-servers — через запятую перечисленные DNS-сервера.
  • option domain-name — суффикс доменного имени.
  • option routers — шлюз по умолчанию.
  • option broadcast-address — адрес сети для широковещательных запросов.
  • default-lease-time и max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.

Проверить корректность конфигурационного файла можно командой:

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

Разрешаем автозапуск сервиса:

systemctl enable isc-dhcp-server

systemctl restart isc-dhcp-server

Добавляем правило в firewall:

iptables -I INPUT -p udp —dport 67 -j ACCEPT

Возможные проблемы

Not configured to listen on any interfaces!

Сервис dhcp не запускается, а в логе можно увидеть ошибки, на подобие:

No subnet declaration for ens18 (192.168.1.10).
.
** Ignoring requests on ens18. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface ens18 is attached. **
.
Not configured to listen on any interfaces

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

Решение: конфигурация subnet должна включать только те подсети, в которых настроен сам сервер DHCP. Посмотреть сетевые настройки можно командой:

После чего необходимо проверить настройки в конфигурационном файле сервера dhcp.

Читайте также

Другие инструкции, связанные с DHCP:

Источник

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