Фиксированные IP адреса в ISC-DHCP сервере

Фиксированные IP адреса в ISC-DHCP сервере — один из этапов на пути функционального контроллера домена Linux. Имея уже работающий Linux AD-DC. Работающую локальную DNS зону. А так же проинтегрированный с BIND9 ISC-DHCP сервер. У нас возникает новая проблема.
Данная статья — продолжение серии статей про создание IT инфраструктуры для малого предприятия с нуля.
Управлять DNS сервером Bind9 и доменом в целом, мы можем с помощью родных оснасток RSAT. Но с ISC-DHCP сервером дела обстоят иначе. ISC-DHCP сервер изначально не заточен под управление стандартными средствами Windows. Поэтому тут нам придётся чуть-чуть погрызть кактус. Ведь мы всё же хотим иметь в локальной сети фиксированные IP адреса. Устройства, которые не меняют свой IP адрес. При этом чтобы эти устройства продолжали управляться DHCP сервером. Помним что получение IP от DHCP сервера, проинтегрированного с DNS сервером контроллера домена, инициирует обновление локальной DNS зоны. Это позволяет нам обращаться к устройству через его DNS имя.
Фиксированные IP адреса в ISC-DHCP — Настройка dhcpd.conf
Открываем на редактирование файл конфигурации dhcpd. Позже, чтобы сохраниться нужно будет нажать Ctrl+o. Чтобы закрыть файл Ctrl+x.
sudo nano /etc/dhcp/dhcpd.conf
Добавляем статическую запись
Прямо под областью где мы определяем нашу подсеть, добавляем записи следующего вида. Чтобы было понятнее к кому относятся записи, с помощью # можно указать комментарии.
# Тестовая линуксовая машина
host client-lin-1 {
hardware ethernet 00:0c:29:20:ce:d2;
fixed-address 192.168.1.250;
}
# HP MicroServer
host adm-win {
hardware ethernet C8:60:00:54:CC:A9;
fixed-address 192.168.1.111;
}
В host указываем фактическое уникальное имя хоста для которого идёт данный блок настроек. Но в типовой конфигурации, вам не сильно критично что будет указано в host. Главное чтобы это значение было уникальным.
hardware ethernet — фактический MAC адрес того интерфейса, для которого последует настройка
fixed-address — IP адрес который будет назначен интерфейсу

Фиксированные IP адреса в ISC-DHCP сервере
Радуемся
Теперь у DHCP сервера есть список фиксированных IP адресов. Получив запрос он посмотрит dhcpd.conf. Найдя там запись host с MAC адресом обратившегося устройства, выдаст ему fixed-address.

Мммммм. Фиксированные лизы в ISC-DHCP
Немного о dhcpd.conf
- Если в конфиге будет две записи host с одинаковыми именами — dhcpd выпилится и не будет работать пока вы не удалите дубли
- В случае если в конфиге будет две записи host с разными именами но с одинаковыми hardware ethernet — отработает та, что ближе к началу файла
- Если у вас несколько интерфейсов у одного хоста — просто создайте несколько host записей с разными именами. В каждой укажите hardware ethernet нежных интерфейсов и они получат свой фиксированный IP адрес
- В иерархии ключевых слов описывающих структуру dhcpd.conf — host имеет наивысший приоритет т.к. стоит в самом низу иерархии и имеет эффект только на конкретный хост. Иерархия следующая: global > shared-network > subnet > group > host Всё что правее — перезаписывает настройки всего что левее
- Имя host имеет прикладное значение только в том случае, если клиент передаёт на сервер параметр dhcp-client-identifier. Если этот параметр не передаётся, опознавание клиента происходит по сопоставлению его MAC адреса с параметром hardware ethernet
- Если DHCP сервер проинтегрирован с BIND9. То DNS А запись хоста будет содержать IP адрес последнего обратившегося к DHCP серверу интерфейса этого хоста.
Узнать список всех фиксированных IP адресов ISC-DHCP сервера
Необходимо заменить путь /etc/dhcp/dhcpd.conf на свой, в случае если он у вас отличается.
Выводим фиксированные IP адреса ISC-DHCP сервера на экран терминала
Данная команда выведет на экран терминала все записи host имеющие fixed-address
cat /etc/dhcp/dhcpd.conf | egrep -o 'host.*{|ethernet.*;|fixed.*;' | awk '{print $2}' | xargs -n 3 | sed 's/;//' | sed 's/;//'
Выводим фиксированные IP адреса ISC-DHCP сервера в файл
Если вам нужно вывести этот же список куда-то в файл, откуда потом его заберёт дальше в работу какая-то другая ваша софтина, то вам нужно просто к приведённой выше команде добавить > /путь до файла/имя файла
cat /etc/dhcp/dhcpd.conf | egrep -o 'host.*{|ethernet.*;|fixed.*;' | awk '{print $2}' | xargs -n 3 | sed 's/;//' | sed 's/;//' > fixed-leases.txt
Приведённый пример выведет список в файл fixed-leases.txt, профиля от которого выполняется команда.
Далее этот файлик у меня подхватывает утилита занимающаяся централизованным резервным копированием.
Создание фиксированных IP адресов особенно полезно в случае нахождения внутри диапазона DHCP пула, устройств со статическими IP. Когда вы хотите не дать DHCP серверу выдать какой-либо IP из пула, даже если этот IP никто у него ранее не запрашивал.