Debian dhcpd“ eth0没有子网声明”


9


我试图在Debian 6.0.3 Squeeze机器上设置pxe引导服务器,该机器提供PLoP Linux的图像。我正在关注教程。
当我尝试从软件包dhcp3-server启动dhcpd时,得到以下信息:

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,但结果相同。

Answers:


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-server并改用dnsmasq。我浏览了它的配置文件,并能够使用它注释的示例来配置我的服务器。dnsmasq还具有一个内置的tftp服务器,该服务器用于PXE引导。


我遇到的问题与您在此处遇到的问题相同,我想知道您是否可以对此发表一些看法或共享您的dnsmasq.conf?谢谢!
user1680784 2014年

@ user1680784我不再具有执行此操作的系统,因此无法共享我的配置文件。虽然我不知道您要具体完成什么,但是如果您在手动配置dhcpd或dnsmasq时遇到问题,则可能需要尝试使用DRBL分发Linux启动映像。
Suchipi 2014年

0

检查与

ifconfig eth0

如果您的接口eth0具有正确的ipv4

(似乎您将其设置为address 10.0.0.0无论如何都将无效)

如果它的IP范围错误,请给它一个新地址,例如:

ifconfig eth0 10.0.0.1

然后尝试重新启动dhcp服务器



0

在基于systemd的OS上,确保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是一个基于systemd的OS,其中传统的初始化脚本(/etc/rc.d/init.d)已被本机systemd服务文件取代。

我的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

确保该服务在网络联机后启动,但也必须启用正确的“等待”服务1NetworkManager-wait-online.service

我的不是。

参考:https : //www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.