Debian dhcpd "No hay declaración de subred para eth0"

9


Estoy tratando de configurar un servidor de arranque pxe en una máquina Debian 6.0.3 Squeeze que ofrece imágenes de PLoP Linux. Estaba siguiendo este tutorial.
Cuando intento iniciar dhcpd (desde el paquete dhcp3-server), obtengo lo siguiente:

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!

Mi /etc/dhcpd.confes idéntico al del tutorial, salvo algunos cambios:

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

es en cambio

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

Mi /etc/network/interfaceses:

# 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

Y esta es mi /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"

que también copié /etc/default/dhcp3-server, sin saber qué comprobaría.

También intenté configurar la ip /etc/network/interfacescomo 10.0.0.1 y 10.0.0.2, pero produjo el mismo resultado.

Suchipi
fuente

Respuestas:

8

Dado que dhcpd tiene que entregar direcciones IP a los clientes, necesita conocer el rango de direcciones de las que es responsable. La declaración de subred le da a dhcpd esa información y más. Suponiendo que está utilizando 10.0.0 / 24, lo siguiente debería ayudarlo a comenzar y a pasar el mensaje de error, pero realmente necesita ingresar a la documentación para ir más allá. Agregue esto a su 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"; 
} 

Las direcciones IP que conecté arriba son suposiciones. Debe configurarlos correctamente para su configuración.

Kyle Jones
fuente
2

El problema es que 10.0.0.0no es una dirección IPv4 válida. La primera dirección en la subred (la dirección con todos los ceros para la parte del host) es el identificador de subred y, por lo tanto, no es una dirección de host válida. Tratar 10.0.0.1. También debe evitar la última dirección en una subred, ya que esa es la dirección de transmisión 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)
Cadera
fuente
1

Terminé simplemente purgando dhcp3-server y usando dnsmasq en su lugar. Revisé el archivo de configuración y pude usar los ejemplos que había comentado para configurar mi servidor como lo necesitaba. dnsmasq también tiene un servidor tftp incorporado que utilicé para el arranque PXE.

Suchipi
fuente
Estoy teniendo el mismo problema que tú aquí. Me preguntaba si puedes compartir algo de luz sobre esto o compartir tu dnsmasq.conf por favor ... ¡Gracias!
user1680784
@ user1680784 Ya no tengo el sistema configurado para hacer esto, así que no puedo compartir mi archivo de configuración. Si bien no sé qué está tratando de lograr específicamente, si tiene problemas para configurar dhcpd o dnsmasq a mano, es posible que desee intentar usar DRBL para proporcionar imágenes de arranque de Linux.
Suchipi
0

Verifícalo con

ifconfig eth0

Si su interfaz eth0 tiene la ipv4 correcta

(parece que lo configuró para address 10.0.0.0que no sea válido de todos modos)

si tiene una IP en el rango incorrecto, dele una nueva dirección, por ejemplo con:

ifconfig eth0 10.0.0.1

luego intente reiniciar su servidor dhcp

rubo77
fuente
0

Eliminar dnsmasq resolvió mi problema

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

En sistemas operativos basados ​​en systemd, asegúrese de que se esté ejecutando NetworkManager-wait-online.service.

He tenido un problema similar en Fedora 26, y debido a que no pude encontrar ninguna referencia, publicaré mi solución aquí en caso de que alguien la necesite:

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 es un sistema operativo basado en systemd, donde los scripts de inicio tradicionales (/etc/rc.d/init.d) han sido reemplazados por archivos nativos de servicios systemd.

Mi archivo 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

Estas líneas:

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

asegúrese de que el servicio se inicie después de que la red esté en línea, pero el servicio "esperar" correcto también debe estar habilitado 1 : NetworkManager-wait-online.service

La mía no.

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

Ovidiu Luca
fuente