Debian dhcpd "Немає декларації підмережі для eth0"


9


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

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/interfacesякості 10.0.0.1 і 10.0.0.2, але це дало той же результат.

Відповіді:


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.


У мене є та сама проблема, що і у вас тут. Мені було цікаво, чи можете ви поділитися світлом на цьому або поділитися своїм dnsmasq.conf будь ласка ... Дякую!
користувач1680784

@ user1680784 У мене більше немає системи, яка була створена для цього, тому я не можу поділитися своїм конфігураційним файлом. Хоча я не знаю, що ви конкретно намагаєтеся зробити, якщо у вас виникають проблеми з налаштуванням dhcpd або dnsmasq вручну, ви можете спробувати використовувати DRBL для видачі завантажувальних зображень Linux.
Suchipi

0

Перевірте

ifconfig eth0

Якщо ваш інтерфейс eth0 має правильний ipv4

(здається, ви встановили його таким, address 10.0.0.0що все одно було б недійсним)

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

ifconfig eth0 10.0.0.1

потім спробуйте перезапустити dhcp-сервер



0

У ОС на базі системних систем переконайтеся, що 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 - це ОС на базі системних систем, де традиційні скрипти init (/etc/rc.d/init.d) були замінені нативними файлами системних служб.

Мій файл 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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.