Получение “нет IPv4 адресов” с isc-dhcp-server и субинтерфейсами

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

Я попробовал обе подсети и маршрутизацию вторичного IP-адреса, и ни один из этих методов не работает для isc-dhcp-server. Он отказывается выдавать правильные IP-адреса. Я использую Debian 8 Jessie и ISC-DHCP-SERVER 4.3.1.

Мой /etc/network/interfaces

## Корпоративная сеть
auto eth0
allow-hotplug eth0
iface eth0 inet manual

## Новая подсеть
auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 10.0.0.2
    gateway 10.0.0.1
    netmask 255.255.0.0
    dns-nameservers 127.0.0.1 10.0.0.3
    dns-search example.net
    dns-domain example.net

## Старая подсеть
auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 10.136.136.253
    netmask 255.255.255.0

ifconfig

eth0      Link encap:Ethernet  HWaddr b8:27:eb:c0:59:e5
          inet6 addr: fe80::ba27:ebff:fec0:59e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26688 errors:0 dropped:69 overruns:0 frame:0
          TX packets:7301 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7174565 (6.8 MiB)  TX bytes:1286716 (1.2 MiB)

eth0:0    Link encap:Ethernet  HWaddr b8:27:eb:c0:59:e5
          inet addr:10.0.0.2  Bcast:10.0.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr b8:27:eb:c0:59:e5
          inet addr:10.136.136.253  Bcast:10.136.136.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

ip add

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:c0:59:e5 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.2/16 brd 10.0.255.255 scope global eth0:0
       valid_lft forever preferred_lft forever
    inet 10.136.136.253/24 brd 10.248.28.255 scope global eth0:1
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fec0:59e5/64 scope link
       valid_lft forever preferred_lft forever

/var/log/syslog при запуске isc-dhcp-server

Aug 12 09:48:20 ns01 dhcpd: Записано 0 удалённых записей хостов в файл аренды.
Aug 12 09:48:20 ns01 dhcpd: Записано 0 новых динамических записей хостов в файл аренды.
Aug 12 09:48:20 ns01 dhcpd: Записано 5544 аренды в файл аренды.
Aug 12 09:48:21 ns01 dhcpd:
Aug 12 09:48:21 ns01 dhcpd: Нет декларации подсети для eth0:1 (нет IPv4 адресов).
Aug 12 09:48:21 ns01 dhcpd: ** Игнорирование запросов на eth0:1. Если это не то, что
Aug 12 09:48:21 ns01 dhcpd:    вы хотите, пожалуйста, напишите декларацию подсети
Aug 12 09:48:21 ns01 dhcpd:    в вашем файле dhcpd.conf для сетевого сегмента,
Aug 12 09:48:21 ns01 dhcpd:    к которому подключен интерфейс eth0:1. **
Aug 12 09:48:21 ns01 dhcpd:
Aug 12 09:48:21 ns01 dhcpd:
Aug 12 09:48:21 ns01 dhcpd: Нет декларации подсети для eth0:0 (нет IPv4 адресов).
Aug 12 09:48:21 ns01 dhcpd: ** Игнорирование запросов на eth0:0. Если это не то, что
Aug 12 09:48:21 ns01 dhcpd:    вы хотите, пожалуйста, напишите декларацию подсети
Aug 12 09:48:21 ns01 dhcpd:    в вашем файле dhcpd.conf для сетевого сегмента,
Aug 12 09:48:21 ns01 dhcpd:    к которому подключен интерфейс eth0:0. **
Aug 12 09:48:21 ns01 dhcpd:
Aug 12 09:48:21 ns01 dhcpd: failover peer failover: Я перехожу от нормального к запуску
Aug 12 09:48:21 ns01 dhcpd: Сервер начинает работу.

Это может быть очевидно для многих, но сначала нужно установить адрес DHCP в ручной режим для соответствующего интерфейса (в моем случае eno1, но обычно eth1), и ручной IP-адрес должен соответствовать настройкам в /etc/dhcp/dhcpd.conf. На Ubuntu 22:04 это можно сделать через интерфейс в Настройках сети.

В итоге я нашел ответ в другом посте. Декларации подсетей в dhcpd.conf должны быть обернуты в декларацию shared-network.

shared-network vlan1 {
    subnet 10.0.0.0 netmask 255.255.0.0 {
        ....
    }

    subnet 10.136.136.0 netmask 255.255.255.0 {
        ....
    }
}

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

Решение проблемы "нет IPv4 адресов" с isc-dhcp-server и подинтерфейсами

Когда вы сталкиваетесь с сообщением об ошибке "нет IPv4 адресов" при использовании isc-dhcp-server на Debian 8 Jessie, важно понимать, что проблема часто связана с отсутствующими декларациями подсети в вашем конфигурационном файле DHCP. Давайте разберем детали проблемы и предложим решение.

Понимание проблемы

Из предоставленных логов системы видно следующее:

No subnet declaration for eth0:1 (no IPv4 addresses).
Ignoring requests on eth0:1. If this is not what you want, please write a subnet declaration in your dhcpd.conf file for the network segment to which interface eth0:1 is attached.

Это сообщение указывает на то, что ваш сервер DHCP не знает, к какой подсети относится интерфейс eth0:0 и eth0:1. Поскольку у вас несколько подинтерфейсов, необходимо убедиться, что для каждого из них есть соответствующая декларация подсети в файле конфигурации DHCP.

Решение

  1. Проверьте файл конфигурации DHCP (/etc/dhcp/dhcpd.conf): Вам нужно добавить декларации подсетей для каждого подинтерфейса. Декларации должны быть обернуты в блок shared-network, если вы используете несколько подсетей на одном физическом интерфейсе. Пример:
shared-network mynetwork {
    subnet 10.0.0.0 netmask 255.255.0.0 {
        range 10.0.0.10 10.0.0.100;  # Укажите диапазон DHCP
        option routers 10.0.0.1;
        option domain-name "example.net";
        option domain-name-servers 10.0.0.3;
    }

    subnet 10.136.136.0 netmask 255.255.255.0 {
        range 10.136.136.100 10.136.136.200;  # Укажите диапазон DHCP
        option routers 10.136.136.1;
        option domain-name "example.net";
        option domain-name-servers 10.136.136.3;
    }
}
  1. Убедитесь, что интерфейсы работают: Проверьте вывод команд ifconfig и ip add, чтобы убедиться, что ваши подинтерфейсы (eth0:0 и eth0:1) находятся в состоянии UP и имеют назначенные IP-адреса.

  2. Перезапустите сервер DHCP: После внесения изменений в конфигурацию важно перезапустить сервер DHCP, чтобы применить новые настройки:

sudo service isc-dhcp-server restart
  1. Проверка логов: После перезапуска сервера DHCP проверьте логи в /var/log/syslog, чтобы увидеть, нет ли еще сообщений об ошибках и правильно ли сервер распознает ваши подинтерфейсы.

Итог

Правильная настройка деклараций подсетей для каждого подинтерфейса в конфигурационном файле DHCP — это ключ к решению проблемы с отсутствующими IPv4 адресами. Убедитесь, что ваши интерфейсы активны и перезапустите службу после внесения изменений. Следуя этим шагам, вы сможете устранить проблему и обеспечить корректную работу вашего DHCP-сервера.

Если у вас есть дополнительные вопросы или требуется более детальная помощь, не стесняйтесь обращаться за поддержкой.

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

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