Debian dhcpd “Nenhuma declaração de sub-rede para eth0”

9


Estou tentando configurar um servidor de inicialização pxe em uma máquina Debian 6.0.3 Squeeze que fornece imagens do PLoP Linux. Eu estava seguindo um deste tutorial.
Quando tento iniciar o dhcpd (do pacote dhcp3-server), obtenho o seguinte:

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!

Meu /etc/dhcpd.confé idêntico ao do tutorial, exceto algumas alterações:

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

é ao invés

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

Meu /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 este é o meu /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 eu copiei /etc/default/dhcp3-servertambém, sem saber o que verificaria.

Eu também tentei configurar o ip /etc/network/interfacescomo 10.0.0.1 e 10.0.0.2, mas produziu o mesmo resultado.

Suchipi
fonte

Respostas:

8

Como o dhcpd precisa distribuir endereços IP aos clientes, ele precisa saber o intervalo de endereços pelos quais é responsável. A declaração de sub-rede fornece ao dhcpd essas informações e muito mais. Supondo que você esteja usando 10.0.0 / 24, o seguinte deve ser iniciado e passado a mensagem de erro, mas você realmente precisa entrar na documentação para ir mais longe. Adicione isso ao seu 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"; 
} 

Os endereços IP inseridos acima são suposições. Você precisa configurá-las corretamente para sua configuração.

Kyle Jones
fonte
2

O problema é que 10.0.0.0não é um endereço IPv4 válido. O primeiro endereço na sub-rede (o endereço com todos os zeros para a parte do host) é o identificador da sub-rede e, portanto, não é um endereço de host válido. Tente 10.0.0.1. Você também deve evitar o último endereço em uma sub-rede, pois esse é o endereço de transmissão 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
fonte
1

Acabei limpando o servidor dhcp3 e ​​usando o dnsmasq. Examinei o arquivo de configuração e pude usar os exemplos comentados para configurar o servidor como eu precisava. O dnsmasq também possui um servidor tftp interno que eu usei para a inicialização do PXE.

Suchipi
fonte
Estou tendo o mesmo problema que você aqui. Gostaria de saber se você pode compartilhar alguma luz sobre isso ou compartilhar seu dnsmasq.conf por favor… Obrigado!
user1680784
@ user1680784 Não tenho mais o sistema configurado para fazer isso, portanto não posso compartilhar meu arquivo de configuração. Embora eu não saiba o que você está tentando realizar especificamente, se estiver tendo problemas para configurar o dhcpd ou o dnsmasq manualmente, convém tentar usar o DRBL para fornecer imagens de inicialização do Linux.
precisa saber é o seguinte
0

Verificar com

ifconfig eth0

Se sua interface eth0 tiver o ipv4 correto

(parece que você definiu address 10.0.0.0como inválido de qualquer maneira)

se ele tiver um IP no intervalo errado, dê um novo endereço, por exemplo, com:

ifconfig eth0 10.0.0.1

tente reiniciar o servidor dhcp

rubo77
fonte
0

A remoção do dnsmasq resolveu meu problema

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

Nos sistemas operacionais baseados em systemd, verifique se o NetworkManager-wait-online.service está em execução.

Eu tive um problema semelhante no Fedora 26 e, como não consegui encontrar nenhuma referência, postarei minha solução aqui caso alguém precise:

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. **

O Fedora 26 é um sistema operacional baseado em systemd, onde os scripts init tradicionais (/etc/rc.d/init.d) foram substituídos por arquivos nativos de serviços systemd.

Meu arquivo 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 linhas:

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

verifique se o serviço inicia após a rede estar on-line, mas o serviço "espera" correto também deve ser ativado 1 : NetworkManager-wait-online.service

O meu não era.

referência: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

Ovidiu Luca
fonte