dhcpd (Русский)
dhcpd — реализация DHCP-сервера от Internet Systems Consortium. Может использоваться, к примеру, на машине, играющей роль маршрутизатора в локальной сети.
Установка
Установите пакет dhcp.
Использование
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-адрес.
Стандартный файл настроек, , содержит много незакомментированных примеров, поэтому следует переместить его в другое место, например
# cp /etc/dhcpd.conf /etc/dhcpd.conf.example
и создать на его месте новый.
Минимальная конфигурация может выглядеть следующим образом:
Если необходимо выдать фиксированный IP-адрес конкретному устройству, можно также указать настройки для отдельного хоста:
Опция содержит адреса DNS-серверов, которые передаются клиентам. В данном примере используются публичные DNS-сервера Google. Если в вашей подсети уже есть DNS-серверы (например, предоставленные провайдером), следует указать их. Если на компьютере уже настроен собственный DNS-сервер, то укажите его адрес (139.96.30.100
в нашем примере).
Опции subnet-mask
и содержат маску подсети и список маршрутизаторов в этой подсети, соответственно. В большинстве случаев для небольших сетей подойдет маска , а в качестве маршрутизатора используется та же машина, на которой настроен DHCP-сервер.
Блоки содержат настройки для отдельных подсетей, которые сопоставляются сетевым интерфейсам, на которых запущен dhcpd. В примере определена одна подсеть за интерфейсом eth0
, для которой задан диапазон IP-адресов. Подключаемым клиентам будут присваиваться адреса из этого диапазона.
Запуск на одном сетевом интерфейсе
Если ваш компьютер уже является частью одной или нескольких сетей, может возникнуть ситуация, когда адреса будут выдаваться в том числе и компьютерам из другой сети. Это можно исправить либо настройками dhcpd, либо запуском в качестве демона с помощью systemctl.
Настройки dhcpd
Чтобы исключить конкретный интерфейс, в файле настроек создайте пустой блок для этого интерфейса:
Файл службы
В "комплекте поставки" dhcpd не предусмотрен юнит для запуска на одном интерфейсе, поэтому придётся создать его самостоятельно. Сначала скопируйте существующую службу:
# cp /usr/lib/systemd/system/dhcpd4.service /etc/systemd/system/dhcpd4@.service
Затем отредактируйте строку ExecStart, добавив в неё спецификатор интерфейса:
Это юнит-шаблон, который привязывает процесс к определённому интерфейсу, например — . Здесь eth0 — название сетевого интерфейса; узнать интерфейсы вашей системы можно командой .
Использование для PXE
Настройка для PXE выполняется следующими двумя параметрами:
/etc/dhcpd.conf
next-server 192.168.0.2; filename "/pxelinux.0";
Эти строки можно указать как в блоке , так и в настройках отдельного хоста . next-server
представляет собой адрес TFTP-сервера, а — имя образа для загрузки. Подробнее см. PXE.