Debian dhcpd «Нет декларации подсети для eth0»

9


Я пытаюсь настроить загрузочный сервер pxe на компьютере Debian 6.0.3 Squeeze, который выдает образы PLoP Linux. Я следовал этому уроку.
Когда я пытаюсь запустить dhcpd (из пакета dhcp3-server), я получаю следующее:

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



Not configured to listen on any interfaces!

Моя /etc/dhcpd.confидентична той, что в учебнике, за исключением нескольких изменений:

host testpc {
        hardware ethernet 00:0C:6E:A6:1A:E6;
        fixed-address 10.0.0.250;
}

вместо

host tablet {
        hardware ethernet 00:02:3F:FB:E2:6F;
        fixed-address 10.0.0.249;
}

Мой /etc/network/interfacesэто:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 10.0.0.0
        netmask 255.255.255.0

И это мое /etc/default/isc-dhcp-server:

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

который я тоже скопировал /etc/default/dhcp3-server, не зная, что он будет проверять.

Я также попытался установить IP в /etc/network/interfaces10.0.0.1 и 10.0.0.2, но он дал тот же результат.

Suchipi
источник

Ответы:

8

Поскольку dhcpd должен раздавать IP-адреса клиентам, ему необходимо знать диапазон адресов, за которые он отвечает. Объявление подсети дает dhcpd эту информацию и многое другое. Предполагая, что вы используете 10.0.0 / 24, следующее должно помочь вам начать работу с этим сообщением об ошибке, но вам действительно нужно обратиться к документации, чтобы пойти дальше. Добавьте это в ваш dhcpd.conf:

subnet 10.0.0.0 netmask 255.255.255.0 { 
   authoritative; 
   range 10.0.0.1 10.0.0.254; 
   default-lease-time 3600; 
   max-lease-time 3600; 
   option subnet-mask 255.255.255.0; 
   option broadcast-address 10.0.0.255; 
   option routers 10.0.0.0; 
   option domain-name-servers 8.8.8.8; 
   option domain-name "example.com"; 
} 

IP-адреса, которые я подключил выше, являются догадками. Вы должны установить их правильно для вашей настройки.

Кайл Джонс
источник
2

Проблема в том, что 10.0.0.0это недопустимый адрес IPv4. Первый адрес в подсети (адрес со всеми нулями для части узла) является идентификатором подсети и, следовательно, не является допустимым адресом узла. Попробуй 10.0.0.1. Также следует избегать последнего адреса в подсети, так как это широковещательный IP-адрес.

Decimal: 
  Address:     10   .0  .0  .0
  Subnet Mask: 255.255.255.255
Hex:     
  Address:     0A 00 00 00 
  Subnet Mask: FF FF FF 00
  Network:     ^^ ^^ ^^
  Host:                 ^^
  Smallest Addr:        01 (.1)
  Largest Addr:         FE (.254)
  Broadcast:            FF (.255)
бедро
источник
1

В итоге я просто удалил dhcp3-сервер и использовал вместо него dnsmasq. Я просмотрел файл конфигурации для него и смог использовать примеры, которые он прокомментировал, чтобы настроить свой сервер так, как мне нужно. У dnsmasq также есть встроенный tftp-сервер, который я использовал для загрузки PXE.

Suchipi
источник
У меня та же проблема, что и у вас здесь. Мне было интересно, можете ли вы поделиться с вами некоторыми подробностями или поделиться своим dnsmasq.conf, пожалуйста ... Спасибо!
user1680784
@ user1680784 У меня больше нет системы, которая была настроена для этого, поэтому я не могу поделиться своим файлом конфигурации. Хотя я не знаю, что конкретно вы пытаетесь выполнить, если у вас возникают проблемы с настройкой dhcpd или dnsmasq вручную, вы можете попробовать использовать DRBL для выдачи загрузочных образов Linux.
Сучипи
0

Проверить с

ifconfig eth0

Если ваш интерфейс eth0 имеет правильный ipv4

(кажется, вы установили его, address 10.0.0.0который в любом случае будет недействительным)

если IP-адрес находится в неправильном диапазоне, укажите новый адрес, например, с помощью:

ifconfig eth0 10.0.0.1

затем попробуйте перезапустить ваш DHCP-сервер

rubo77
источник
0

Удаление dnsmasq решило мою проблему

sudo apt-get -y remove dnsmasq
Фатхур Рохим
источник
0

В ОС на базе systemd убедитесь, что NetworkManager-wait-online.service запущен.

У меня была похожая проблема в Fedora 26, и, поскольку я не смог найти никакой ссылки, я опубликую свое решение здесь, если кому-то это понадобится:

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

Fedora 26 - основанная на systemd ОС, в которой традиционные сценарии инициализации (/etc/rc.d/init.d) были заменены собственными файлами служб systemd.

Мой файл dhcpd.service:

[Unit]
Description=DHCPv4 Server Daemon
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
Wants=network-online.target
After=network-online.target
After=time-sync.target

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/dhcpd
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS
StandardError=null

[Install]
WantedBy=multi-user.target

Это строки:

Wants=network-online.target
After=network-online.target

убедитесь, что служба запускается после того, как сеть подключена к сети, но должна быть включена и нужная служба ожидания 1 : NetworkManager-wait-online.service

Моего не было.

ссылка: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

Овидиу Лука
источник