Динамические и статические аренды в ISC DHCP

Вопрос или проблема

Я запускаю ISC DHCPd на Raspbian. Я хочу настроить мой сервер так, чтобы все адреса в 192.168.0.0/24 были статическими арендами, а все в 192.168.1.0/24 — динамическими. Я бы хотел, чтобы оба использовали подсеть 192.168.0.0/23.

Уточнение: По сути, я хочу, чтобы один DHCP сервер обрабатывал DHCP для всей подсети 192.168.0.0/23. Если у устройства, запрашивающего IP, есть запись host в dhcpd.conf, то ему будет назначен указанный IP-адрес. Если нет, то ему будет назначен адрес в диапазоне 192.168.1.2 - 192.168.1.254. Для упрощения я ограничил все свои статические аренды диапазоном 192.168.0.2 - 192.168.0.254.

Я настроил мой сервер следующим образом:

option domain-name "home";
option domain-name-servers 192.168.0.3;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
host mightyturing{ hardware ethernet 10:bf:48:87:74:a2; fixed-address 192.168.0.64; }
host beastnugget{ hardware ethernet 34:e6:d7:52:1e:e4; fixed-address 192.168.0.65; }
host ... (около 50 статических аренд)
subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.0.1;
        option broadcast-address 192.168.1.255;
        option domain-name-servers 192.168.0.3, 1.1.1.1;
        option domain-name "home";
        option subnet-mask 255.255.254.0;
        ddns-updates off;
}

Когда я пытаюсь запустить службу, она жалуется:

Nov 17 17:45:26 raspberrypi dhcpd[681]: DHCPREQUEST for 192.168.0.64 from 10:bf:48:87:74:a2 via eth0
Nov 17 17:45:26 raspberrypi dhcpd[681]: DHCPACK on 192.168.0.64 to 10:bf:48:87:74:a2 via eth0
Nov 17 17:45:59 raspberrypi dhcpd[681]: Dynamic and static leases present for 192.168.0.64.
Nov 17 17:45:59 raspberrypi dhcpd[681]: Remove host declaration mightyturing or remove 192.168.0.64
Nov 17 17:45:59 raspberrypi dhcpd[681]: from the dynamic address pool for 192.168.0.0/23

… и поскольку мой пул аренд 192.168.1.0/24… Я совершенно уверен, что это означает, что 192.168.0.64 не находится в пуле. Почему же ISC это не распознает? Почему она жалуется на диапазон, для которого я не указывал выдачу динамических IP?

Также:

Когда я меняю диапазон для выдачи динамических IP на 10.0.0.0/24 (для проверки работоспособности ISC), но сохраняю статические аренды в 192.168.0.0/24, она по-прежнему жалуется на 192.168.0.0/23. Что происходит? Где именно я попросил раздавать адреса 192.168.0.0/23?

option domain-name "home";
option domain-name-servers 192.168.0.3;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
host mightyturing{ hardware ethernet 10:bf:48:87:74:a2; fixed-address 192.168.0.64; }
host beastnugget{ hardware ethernet 34:e6:d7:52:1e:e4; fixed-address 192.168.0.65; }
subnet 10.0.0.0 netmask 255.255.255.254 {
        option routers 10.0.0.1;
        option broadcast-address 10.0.0.255;
        option domain-name-servers 1.1.1.1;
        option domain-name "home";
        option subnet-mask 255.255.255.0;
        ddns-updates off;
}

Мне удалось реализовать мою первоначальную идею с помощью предложений @Thomas. Я использовал subnet 192.168.0.0 netmask 255.255.254.0 и range 192.168.1.2 192.168.1.254 и всё заработало. Я перечислил все свои статические IP в диапазоне 192.168.0.0/24.

Ответ или решение

Настройка динамических и статических аренд в DHCP-сервере ISC на Raspbian

Понимание динамических и статических аренд в DHCP-сервере ISC

Вопрос стоит в том, чтобы настроить DHCP-сервер на Raspbian для обслуживания всего подсети 192.168.0.0/23, где 192.168.0.0/24 использовался бы для статических аренд, а 192.168.1.0/24 — для динамических.

Исходная ситуация

Вы описали необходимость использования ISC DHCP-сервера для выделения IP-адресов в пределах расширенной подсети 192.168.0.0/23, при этом предполагается, что:

  • Статические IP-адреса выдаются в диапазоне 192.168.0.2 – 192.168.0.254.
  • Динамические адреса — в диапазоне 192.168.1.2 – 192.168.1.254.
  • Сервер некорректно интерпретирует конфигурацию и сообщает об ошибке относительно перекрытия динамических и статических аренд.

Возможное реше́ние проблемы перекрытия

Как вам удалось выяснить, решение заключалось в правильной настройке конфигурационного файла dhcpd.conf. Следующий порядок конфигурации позволил исправить ошибку:

  1. Настройка подсети как единого диапазона:

    subnet 192.168.0.0 netmask 255.255.254.0 {
       option routers 192.168.0.1;
       option broadcast-address 192.168.1.255;
       option domain-name-servers 192.168.0.3, 1.1.1.1;
       option domain-name "home";
       option subnet-mask 255.255.254.0;
       ddns-updates off;
       range 192.168.1.2 192.168.1.254;
    }
  2. Определение статических записей:
    Для статических адресов прописываются отдельные записи host, которые связаны с конкретными MAC-адресами. Например:

    host mightyturing {
       hardware ethernet 10:bf:48:87:74:a2;
       fixed-address 192.168.0.64;
    }
    host beastnugget {
       hardware ethernet 34:e6:d7:52:1e:e4;
       fixed-address 192.168.0.65;
    }

Проблема и ее устранение

Ошибки возникали из-за того, что сервер неверно интерпретировал границы подсетей, воспринимая их как единое пространство 192.168.0.0/23. Это было исправлено путем объявления всей подсети 192.168.0.0/23 в одном блоке с явно заданными диапазонами для динамических адресов.

Заключение

Такая конфигурация позволяет ISC DHCP правильно обрабатывать запросы IP-адресов, избегая конфликта между статическими и динамическими арендными записями. Важно помнить о том, что статические назначения должны всегда явно определяться по соответствиям MAC-адресов и использоваться за пределами динамического диапазона.

Эта настройка обеспечивает гибкость и надежность в управлении сетевыми ресурсами, позволяя администратору эффективно контролировать как постоянные, так и временные подключения в сети.

Настройка DHCP-сервера, таким образом, требует внимательного определения диапазонов аренды и тщательной проверки совпадений, чтобы избежать возможных конфликтов и обеспечить бесперебойную работу сети.

Оцените материал
Добавить комментарий

Капча загружается...