Назад к статьям

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

AdminGuide ·
Фиксированные 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.

bash
sudo nano /etc/dhcp/dhcpd.conf

Добавляем статическую запись

Прямо под областью где мы определяем нашу подсеть, добавляем записи следующего вида. Чтобы было понятнее к кому относятся записи, с помощью # можно указать комментарии.

bash
# Тестовая линуксовая машина
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 сервере

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

Радуемся

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

emoji AdminGuide - Очень приятно

Мммммм. Фиксированные лизы в ISC-DHCP

Немного о dhcpd.conf

  1. Если в конфиге будет две записи host с одинаковыми именами — dhcpd выпилится и не будет работать пока вы не удалите дубли
  2. В случае если в конфиге будет две записи host с разными именами но с одинаковыми hardware ethernet — отработает та, что ближе к началу файла
  3. Если у вас несколько интерфейсов у одного хоста — просто создайте несколько host записей с разными именами. В каждой укажите hardware ethernet нежных интерфейсов и они получат свой фиксированный IP адрес
  4. В иерархии ключевых слов описывающих структуру dhcpd.conf — host имеет наивысший приоритет т.к. стоит в самом низу иерархии и имеет эффект только на конкретный хост. Иерархия следующая: global > shared-network > subnet > group > host Всё что правее — перезаписывает настройки всего что левее
  5. Имя host имеет прикладное значение только в том случае, если клиент передаёт на сервер параметр dhcp-client-identifier. Если этот параметр не передаётся, опознавание клиента происходит по сопоставлению его MAC адреса с параметром hardware ethernet
  6. Если DHCP сервер проинтегрирован с BIND9. То DNS А запись хоста будет содержать IP адрес последнего обратившегося к DHCP серверу интерфейса этого хоста.

Узнать список всех фиксированных IP адресов ISC-DHCP сервера

Необходимо заменить путь /etc/dhcp/dhcpd.conf на свой, в случае если он у вас отличается.

Выводим фиксированные IP адреса ISC-DHCP сервера на экран терминала

Данная команда выведет на экран терминала все записи host имеющие fixed-address

bash
cat /etc/dhcp/dhcpd.conf | egrep -o 'host.*{|ethernet.*;|fixed.*;' | awk '{print $2}' | xargs -n 3 | sed 's/;//' | sed 's/;//'

Выводим фиксированные IP адреса ISC-DHCP сервера в файл

Если вам нужно вывести этот же список куда-то в файл, откуда потом его заберёт дальше в работу какая-то другая ваша софтина, то вам нужно просто к приведённой выше команде добавить > /путь до файла/имя файла

bash
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 никто у него ранее не запрашивал.