Debian dhcpd “Nessuna dichiarazione di sottorete per eth0”


9


Sto cercando di configurare un server di avvio pxe su una macchina Debian 6.0.3 Squeeze che dia immagini di PLoP Linux. Stavo seguendo questo tutorial.
Quando provo ad avviare dhcpd (dal pacchetto dhcp3-server), ottengo quanto segue:

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!

Il mio /etc/dhcpd.confè identico a quello del tutorial, salvo alcune modifiche:

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

è invece

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

Il mio /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

E questo è il mio /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"

in cui ho copiato /etc/default/dhcp3-serveranche, incerto su cosa avrebbe verificato.

Ho anche provato a impostare l'ip /etc/network/interfacescome 10.0.0.1 e 10.0.0.2, ma ha prodotto lo stesso risultato.

Risposte:


8

Poiché dhcpd deve distribuire gli indirizzi IP ai client, deve conoscere l'intervallo di indirizzi di cui è responsabile. La dichiarazione di sottorete fornisce a dhcpd tali informazioni e altro ancora. Supponendo che tu stia utilizzando 10.0.0 / 24, quanto segue dovrebbe iniziare e superare il messaggio di errore, ma è necessario accedere alla documentazione per andare oltre. Aggiungi questo al tuo 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"; 
} 

Gli indirizzi IP che ho inserito sopra sono ipotesi. Devi impostarli correttamente per la tua configurazione.


2

Il problema è che 10.0.0.0non è un indirizzo IPv4 valido. Il primo indirizzo nella sottorete (l'indirizzo con tutti gli zeri per la porzione host) è l'identificatore della sottorete e quindi non è un indirizzo host valido. Prova 10.0.0.1. Dovresti anche evitare l'ultimo indirizzo in una sottorete, poiché quello è l'indirizzo di trasmissione 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

Ho finito per eliminare dhcp3-server e usare invece dnsmasq. Ho esaminato il file di configurazione e sono stato in grado di utilizzare gli esempi che aveva commentato per configurare il mio server come avevo bisogno. dnsmasq ha anche un server tftp integrato che ho usato per l'avvio PXE.


Sto avendo lo stesso problema che hai fatto qui Mi chiedevo se puoi condividere un po 'di luce su questo o condividere il tuo dnsmasq.conf per favore ... Grazie!
user1680784,

@ user1680784 Non ho più il sistema che è stato impostato per fare questo, quindi non posso condividere il mio file di configurazione. Anche se non so cosa stai cercando di realizzare in modo specifico, se hai problemi a configurare manualmente dhcpd o dnsmasq, potresti provare a usare DRBL per distribuire immagini di avvio di Linux.
Suchipi,

0

Controllare con

ifconfig eth0

Se l'interfaccia eth0 ha l'ipv4 corretto

(sembra che tu lo abbia impostato su address 10.0.0.0quale sarebbe comunque non valido)

se ha un IP nell'intervallo errato, assegnagli un nuovo indirizzo, ad esempio con:

ifconfig eth0 10.0.0.1

quindi prova a riavviare il tuo server DHCP


0

La rimozione di dnsmasq ha risolto il mio problema

sudo apt-get -y remove dnsmasq

0

Su sistemi operativi basati su systemd, assicurarsi che NetworkManager-wait-online.service sia in esecuzione.

Ho avuto un problema simile su Fedora 26 e, poiché non sono riuscito a trovare alcun riferimento, posterò la mia soluzione qui nel caso qualcuno ne avesse bisogno:

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 è un sistema operativo basato su systemd, in cui gli script di init tradizionali (/etc/rc.d/init.d) sono stati sostituiti da file nativi di servizi di systemd.

Il mio file 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

Questa linea:

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

assicurarsi che il servizio venga avviato dopo che la rete è online ma deve essere abilitato anche il servizio "wait" corretto 1 : NetworkManager-wait-online.service

Il mio no.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.