Сервер DHCP

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

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

Установка

Установка DHCP выполняется командой:

dnf -y install dhcp

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

  1. открыть файл /etc/sysconfig/dhcpd;
  2. добавить имя конкретного интерфейса в список DHCPDARGS, например, если интерфейс eth0, то добавить:
DHCPDARGS=eth0
  1. сохранить этот файл и выйти.

Настройка

Первым шагом установки DHCP-сервера является создание файла конфигурации dhcpd.conf. Основной файл конфигурации DHCP обычно располагается по пути /etc/dhcp/dhcpd.conf (изначально пуст) и хранит всю сетевую информацию, отправляемую клиентам.

Тем не менее существует другой пример файла конфигурации /usr/share/doc/dhcp*/dhcpd.conf.sample, который является хорошей отправной точкой для настройки DHCP-сервера.

В файле конфигурации DHCP существует два типа операторов:

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

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

  1. cкопировать пример файла конфигурации в качестве основного:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
  1. открыть для редактирования основной файл конфигурации:
nano /etc/dhcp/dhcpd.conf
  1. задать глобальные параметры DHCP-сервера, которые будут применяться ко всем подсетям:
option domain-name "rosa.lan";
option domain-name-servers ns1.rosa.lan, ns2.rosa.lan;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
  1. определить подсеть; в этом примере сделана настройка DHCP для 192.168.56.0/24 LAN-сети:
subnet 192.168.56.0 netmask 255.255.255.0 {
option routers 192.168.56.1;
option subnet-mask 255.255.255.0;
option domain-search "rosa.lan";
option domain-name-servers 192.168.56.1;
range 192.168.56.10 192.168.56.100;
}

Все строки параметров в файле конфигурации заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с "#", являются комментариями и не обрабатываются сервером DHCP.

Некоторые общие параметры сервера DHCP:

  • subnet – объявляет подсеть (в вышеприведенном случае 192.168.38.0 с маской 255.255.255.0);
  • range – диапазон выдаваемых адресов (от 192.168.56.10 до 192.168.56.100);
  • option subnet-mask – маска сети (255.255.255.0);
  • option broadcast-address – широковещательный адрес. (192.168.38.255);
  • domain-name-servers – адреса серверов DNS (8.8.8.8, 8.8.4.4);
  • option domain-name – доменное имя (workgroup);
  • option routers – IP-адрес шлюза или точки выхода в сеть (192.168.56.1)
  1. после внесения изменений в основной файл конфигурации открыть файл /etc/default/isc-dhcp-server и заменить параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя, следует воспользоваться командами ipconfig или ip.

Присвоение адреса

Для того чтобы присвоить статический IP-адрес конкретному клиентскому компьютеру в сети, нужно определить раздел в файле /etc/dhcp/dhcpd.conf, в котором необходимо указать MAC-адреса и фиксированный IP-адрес для назначения, например:

host rosa {
hardware ethernet 00:f0:m4:6y:89:0g;
fixed-address 192.168.56.105;
}
host rv-node {
hardware ethernet 00:4g:8h:13:8h:3a;
fixed-address 192.168.56.110;
}

Примечание – Узнать MAC-адрес в ОС РОСА "ХРОМ" можно, используя следующую команду:

ifconfig -a eth0 | grep HWaddr

После этого следует запустить службу DHCP и включить параметр для её автоматического запуска со следующей загрузки Системы, используя команды:

systemctl start dhcpd
systemctl enable dhcpd

Затем необходимо разрешить службу DHCP (DHCPD-служба прослушивает порт 67/UDP) командами:

nft add rule inet filter input udp dport 67 accept

или

nft add rule inet filter input tcp dport 67 ct state new accept
nft list ruleset > /etc/nftables.conf

И затем можно загрузить эти правила при старте:

nft -f /etc/nftables.conf

Настройка клиента

Далее необходимо настроить клиентов в сети на автоматическое получение IP-адресов от DHCP-сервера. Для этого нужно войти на клиентский компьютер и перейти к редактированию файла конфигурации интерфейса Ethernet командой (имя/номер интерфейса приведены в качестве примера):

nano /etc/sysconfig/network-scripts/ifcfg-eth0

В файл необходимо добавить следующие строки:

DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

Затем следует сохранить файл и выйти из редактора.