isc-dhcp-server
Для начала надо установить пакет isc-dhcp-server, после необходимо отредактировать файл
/etc/default/isc-dhcp-server
В нём нам необходимо указать те интерфейсы, которые наш сервер будет слушать, обращаю внимание, что интерфейсы могут называться по разному, поэтому прежде чем писать eth0 проверьте какой интерфейс у вас- ip a:
Далее нам необходимо отредактировать файл
/etc/dhcp/dhcpd.conf
В нём мы можем указать как конкретные для каждой сети настройки, так и общие, например к общим настройкам мы можем описать:
option domain-name "corp.corp.ru";
option domain-name-servers "192.168.100.100";
Даные настройки будут применяться по умолчанию в случае их отсутствия в описании сетей. Далее нам необходимо описать сеть, в которой dhcp сервер работает - в случае если он раздаёт для неё ip адреса, то там же описываются соответствующие настройки, в случае если наш dhcp сервер раздаёт адреса для другий сетей, то необходимо всё равно описать сеть, но без параметров, в которой находится наш dhcp сервер (например если у нашего сервер адрес 192.168.10.10/24):
subnet 192.168.10.0 netmask 255.255.255.0{
}
Далее мы описываем ту сеть, для которой dhcp сервер будет раздавать адресацию, например для сети 192.168.5.0/24 описание может выглядеть так:
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.11 192.168.5.254;
option routers 192.168.5.1;
}
В данном случае в сети 192.168.5.0/24 будут раздавать адреса от 192.168.5.11 до 192.168.5.254 и шлюз по умолчанию будет 192.168.5.1 опции dns-серверов и домена будут браться из общих - например тех, что мы описали выше В случае если нам необходимо зарезервировать определённый ip адрес за оперделённой машиной с некоторым mac-адресом, то нам необходимо сделать следующе описание:
host pc-abrakadabra {
hardware ethernet 00:0c:29:8f:a4:e9;
fixed-address 192.168.5.254;
}
В данном случае за компьютером pc-abrakadabra с mac-адресом 00:0c:29:8f:a4:e9 будет закреплён ip адрес 192.168.5.254, который будет ему выдаваться постоянно. После внесения изменений конфигурационный файл необходимо перезупустить на сервер:
sudo systemctl restart isc-dhcp-server
Если всё пошло штатно, то у нас будет работающий сервер, однако иногда возникает баг с pid файлом из-за прав на него - он не пересоздаётся и его надо просто удалить, после чего перезапустить сервис.