dhcpd

Ответить
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

dhcpd

Сообщение ya »

isc-dhcp-server

mcedit /etc/dhcp/dhcpd.conf

Код: Выделить всё

systemctl restart isc-dhcp-server
mcedit /etc/bind/hosts/gt
systemctl force-reload bind9

ping -c 3 localhost
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Проверит, что в конфиге /etc/dhcp/dhcpd.conf нет ошибок

Код: Выделить всё

dhcpd -t
systemctl status isc-dhcp-server.service
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Файл для конфигурирования сетевого интерфейса для dhcpd сервера
/etc/default/isc-dhcp-server
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Проверить запущено ли

Код: Выделить всё

pgrep -lf dhcpd
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Параметры dhcpd-сервера
https://linux.die.net/man/5/dhcpd-options
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Для перезапуска при падении
mcedit /etc/systemd/system/isc-dhcp-server.service.d/override.conf

Код: Выделить всё

[Unit]
After=network-online.target
Wants=network-online.target

[Service]
Restart=on-failure
RestartSec=5s

Код: Выделить всё

sudo systemctl daemon-reload

Код: Выделить всё

sudo systemctl restart isc-dhcp-server

Код: Выделить всё

sudo systemctl status isc-dhcp-server
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Проверка синтаксиса конфигурации

Код: Выделить всё

/usr/sbin/dhcpd -t -cf /etc/dhcp/dhcpd.conf
-t: (test) только проверка конфигурации без запуска.
Если есть ошибки, команда укажет конкретную строку.

Запуск вручную в интерактивном режиме

Код: Выделить всё

/usr/sbin/dhcpd -f -d -4 -cf /etc/dhcp/dhcpd.conf br0
-f: (foreground) запуск на переднем плане.
-d: (debug) вывод подробных логов в терминал.
-4: использование IPv4.
br0: интерфейс, на котором должен слушать сервер (как указано в вашем юните).

Основные причины падения (на что обратить внимание)

Отсутствие IP-адреса на интерфейсе: Сервер DHCP не запустится на интерфейсе br0, если у самого этого интерфейса нет статического IP-адреса из той же подсети, которую вы описываете в dhcpd.conf.

Права доступа на файлы: Проверьте наличие и права файла аренды (leases):
ls -l /var/lib/dhcp/dhcpd.leases
Если файла нет, создайте его: touch /var/lib/dhcp/dhcpd.leases

PID файл: Иногда старый PID-файл мешает запуску. Попробуйте удалить его перед стартом:
rm /var/run/dhcpd.pid

Указание интерфейса: Убедитесь, что в файле /etc/default/isc-dhcp-server в строке INTERFACESv4 прописано "br0".

Где еще искать логи?

Код: Выделить всё

journalctl -xeu isc-dhcp-server
или последние сообщения в системном логе:

Код: Выделить всё

tail -n 50 /var/log/syslog | grep dhcpd
ya
^-^
Сообщения: 3234
Зарегистрирован: 16 дек 2021, 19:56

Re: dhcpd

Сообщение ya »

Способ 1: Стандартный (Маска наследуется из подсети)
Если хост должен получить маску той подсети, в которой он находится, вы просто прописываете блок host внутри соответствующей секции subnet.

Пример файла /etc/dhcp/dhcpd.conf:

Код: Выделить всё

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.50 192.168.1.100;
    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0; # Все хосты здесь получат эту маску

    host my-server {
        hardware ethernet 00:11:22:33:44:55;
        fixed-address 192.168.1.10;
    }
}
Способ 2: Переопределение маски для конкретного хоста
Если вам необходимо, чтобы конкретный хост получил маску, отличную от маски всей остальной подсети (например, 255.255.255.255 или другую специфическую маску), вы можете явно указать параметр option subnet-mask внутри блока host.

Пример:

Код: Выделить всё

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.50 192.168.1.100;
    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0; 

    host special-host {
        hardware ethernet 00:11:22:33:44:55;
        fixed-address 192.168.1.20;
        # Переопределяем маску только для этого устройства:
        option subnet-mask 255.255.255.252; 
    }
}
Важно: Блок host в любом случае должен физически находиться внутри той секции subnet, к чьему сетевому диапазону относится его fixed-address. В противном случае dhcpd может выдать ошибку при запуске или некорректно обрабатывать запросы.

После внесения изменений не забудьте перезапустить службу, чтобы они вступили в силу:

Код: Выделить всё

sudo systemctl restart isc-dhcp-server
Ответить