Вопрос или проблема
Я попробовал обе подсети и маршрутизацию вторичного 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.
Решение
- Проверьте файл конфигурации 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;
}
}
-
Убедитесь, что интерфейсы работают: Проверьте вывод команд
ifconfig
иip add
, чтобы убедиться, что ваши подинтерфейсы (eth0:0
иeth0:1
) находятся в состоянии UP и имеют назначенные IP-адреса. -
Перезапустите сервер DHCP: После внесения изменений в конфигурацию важно перезапустить сервер DHCP, чтобы применить новые настройки:
sudo service isc-dhcp-server restart
- Проверка логов: После перезапуска сервера DHCP проверьте логи в
/var/log/syslog
, чтобы увидеть, нет ли еще сообщений об ошибках и правильно ли сервер распознает ваши подинтерфейсы.
Итог
Правильная настройка деклараций подсетей для каждого подинтерфейса в конфигурационном файле DHCP — это ключ к решению проблемы с отсутствующими IPv4 адресами. Убедитесь, что ваши интерфейсы активны и перезапустите службу после внесения изменений. Следуя этим шагам, вы сможете устранить проблему и обеспечить корректную работу вашего DHCP-сервера.
Если у вас есть дополнительные вопросы или требуется более детальная помощь, не стесняйтесь обращаться за поддержкой.