Решение ошибки dhcpd self-test failed. Please fix the config file

Заметил однажды в логах syslog ошибку:

dhcpd self-test failed. Please fix the config file

На сервере был установлен isc-dhcp-server.

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

dhcpd -t
dhcpd -t -cf /dir/dhcpd.conf
/usr/sbin/dhcpd -t

Команда должна сообщить на какой строке ошибка, но заметил что если она не критическая, то может и не сообщить.
Ключ «t» выполняет тест конфигурации, а «cf» позволяет указать путь к файлу конфигурации, если он не стандартный.

В моем случае, в конфигурационном файле /etc/dhcp/dhcpd.conf кто-то совершил опечатку, в строке ниже (была лишняя буква):

authorivtative;

Из-за этого и возникала ошибка, но несмотря на ошибку dhcp работал.
Хотя когда-то встречались и критические ошибки, например неправильно написанный mac адрес, из-за такой ошибки DHCP не запускался.

Скрипт конфигурации DHCP

Допустим в конфигурационный файл DHCP сервера нужно добавить много подсетей, например от 172.16.1.0 до 172.16.100.0, в этом случае поможет данный скрипт.

Читать далее «Скрипт конфигурации DHCP»

Установка и использование dhcping

dhcping — утилита для проверки DHCP-севреров unicast пакетами.

В Ubuntu dhcping можно установить командой:

sudo apt-get install dhcping

Сначала посмотрим какие IP-адреса получены и от какого шлюза:

ifconfig
route
netstat -rn | grep default

Также посмотреть полученную информацию от DHCP можно в директории /var/lib/dhcp/.

В моём случае IP получен от DHCP сервера 10.0.2.2.
Приведу пример запуска dhcping:

dhcping -s 10.0.2.2

Если DHCP сервер отвечает, то отобразится информация:

Got answer from: 10.0.2.2

Если нет ответа:

no answer

Опишу ключи запуска dhcping:
-v (подробный режим)
-V (очень подробный режим)
-i (использовать DHCPINFORM пакеты)
-r (использовать DHCPREQUEST пакеты (стандартно))
-q (краткий режим)
-t maxwait (время ожидания ответа, стандартно 3 секунды)
-c IP (запросить указанный IP)
-s IP (послать запрос на указанный IP)
-h MAC (использовать указанный MAC-адрес в запросе)
-g IP (использовать в пакете указанный IP шлюза)

Блокировка сторонних DHCP серверов на Huawei Quidway S2300 (DHCP Snooping)

Приведу пример как на коммутаторе Huawei Quidway S2300 (на примере используется S2326TP-EI) разрешить получение DHCP ответов c uplink порта и запретить от клиентских.

Читать далее «Блокировка сторонних DHCP серверов на Huawei Quidway S2300 (DHCP Snooping)»

Блокировка DHCP серверов на коммутаторах FoxGate

На примере возьму коммутатор FoxGate S6224-S4, на других моделях настройка почти аналогична.

Для начала включим функцию dhcp snooping:

ip dhcp snooping enable

Читать далее «Блокировка DHCP серверов на коммутаторах FoxGate»

Подавление DHCP серверов (dhcdrop)

dhcdrop — утилита для подавления ненужных DHCP серверов и стресс-тестирования.

Читать далее «Подавление DHCP серверов (dhcdrop)»

Блокировка DHCP пакетов на D-Link DES-38xx

Ничего сложного, просто создаем ACL правило, благодаря которому на определенных портах коммутатор будет отбрасывать либо пропускать пакеты которые идут на 67 порт клиента от DHCP сервера и таким образом он не получит IP от ненужных DHCP серверов.

Читать далее «Блокировка DHCP пакетов на D-Link DES-38xx»