Debian dhcpd “Tidak ada deklarasi subnet untuk eth0”

9


Saya mencoba menyiapkan server boot pxe pada mesin Squian Debian 6.0.3 yang menghasilkan gambar PLoP Linux. Saya mengikuti tutorial ini .
Ketika saya mencoba memulai dhcpd (dari paket dhcp3-server), saya mendapatkan yang berikut:

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!

Saya /etc/dhcpd.confidentik dengan yang ada di tutorial, simpan untuk beberapa perubahan:

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

sebaliknya

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

Saya /etc/network/interfacesadalah:

# 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

Dan ini milik saya /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"

yang saya salin /etc/default/dhcp3-serverjuga, tidak yakin akan memeriksa mana.

Saya juga mencoba mengatur ip /etc/network/interfacessebagai 10.0.0.1 dan 10.0.0.2, tetapi menghasilkan hasil yang sama.

Suchipi
sumber

Jawaban:

8

Karena dhcpd harus membagikan alamat IP kepada klien, ia perlu mengetahui kisaran alamat yang menjadi tanggung jawabnya. Deklarasi subnet memberikan dhcpd informasi itu dan banyak lagi. Dengan asumsi Anda menggunakan 10.0.0 / 24, hal-hal berikut ini akan membantu Anda memulai dan melewati pesan kesalahan, tetapi Anda benar-benar perlu masuk ke dokumentasi untuk melangkah lebih jauh. Tambahkan ini ke dhcpd.conf Anda:

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"; 
} 

Alamat IP yang saya gunakan di atas hanyalah tebakan. Anda harus mengatur ini dengan benar untuk pengaturan Anda.

Kyle Jones
sumber
2

Masalahnya adalah itu 10.0.0.0bukan alamat IPv4 yang valid. Alamat pertama di subnet (alamat dengan semua nol untuk bagian host) adalah pengenal subnet dan karenanya bukan alamat host yang valid. Coba 10.0.0.1. Anda juga harus menghindari alamat terakhir dalam sebuah subnet, karena itu adalah alamat broadcast 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)
Huckle
sumber
1

Saya akhirnya hanya membersihkan dhcp3-server dan menggunakan dnsmasq sebagai gantinya. Saya pergi melalui file konfigurasi untuk itu dan dapat menggunakan contoh yang telah dikomentari untuk mengkonfigurasi server saya seperti yang saya butuhkan. dnsmasq juga memiliki server tftp bawaan yang saya gunakan untuk boot PXE.

Suchipi
sumber
Saya mengalami masalah yang sama seperti yang Anda lakukan di sini. Saya ingin tahu apakah Anda dapat berbagi sedikit tentang ini atau berbagi dnsmasq.conf Anda, tolong ... Terima kasih!
user1680784
@ user1680784 Saya tidak lagi memiliki sistem yang telah diatur untuk melakukan ini sehingga saya tidak dapat berbagi file konfigurasi saya. Walaupun saya tidak tahu apa yang ingin Anda capai secara khusus, jika Anda mengalami kesulitan mengkonfigurasi dhcpd atau dnsmasq dengan tangan, Anda mungkin ingin mencoba menggunakan DRBL untuk memberikan gambar boot Linux.
Suchipi
0

Periksa dengan

ifconfig eth0

Jika antarmuka Anda, eth0 memiliki ipv4 yang benar

(Sepertinya Anda mengaturnya address 10.0.0.0yang tidak valid lagi)

jika memiliki IP dalam kisaran yang salah, berikan alamat baru misalnya dengan:

ifconfig eth0 10.0.0.1

lalu coba restart server dhcp Anda

rubo77
sumber
0

Menghapus dnsmasq memecahkan masalah saya

sudo apt-get -y remove dnsmasq
Fathur Rohim
sumber
0

Pada OS berbasis sistem, pastikan NetworkManager-wait-online.service berjalan.

Saya memiliki masalah yang sama pada Fedora 26, dan karena saya tidak dapat menemukan referensi, saya akan memposting solusi saya di sini jika seseorang membutuhkannya:

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 adalah OS berbasis systemd, di mana skrip init tradisional (/etc/rc.d/init.d) telah digantikan oleh file layanan systemd asli.

File layanan dhcpd.service saya:

[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

Baris ini:

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

pastikan bahwa layanan dimulai setelah jaringan online tetapi layanan "tunggu" yang tepat juga harus diaktifkan 1 : NetworkManager-wait-online.service

Milik saya tidak.

referensi: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

Ovidiu Luca
sumber