Debian dhcpd“没有 eth0 的子网声明”

Debian dhcpd“没有 eth0 的子网声明”

我正在尝试在 Debian 6.0.3 Squeeze 机器上设置 PXE 启动服务器,以提供 Plop Linux 的映像。我正在关注“Plop Linux - 从网络 PXE 启动 - Linux 服务器”教程。当我尝试启动 dhcpd(从 dhcp3-server 包)时,我得到以下信息:

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

答案1

由于 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

我已经解决了为我的接口配置子网的问题 /etc/dhcp/dhcpd.conf

**# 我的界面

subnet 172.20.19.20 netmask 255.255.255.255 { }**

subnet 172.20.11.0 netmask 255.255.255.0 {
        option routers          172.20.11.253;
        option subnet-mask      255.255.255.0;
        option domain-name-servers 192.168.20.251;
        range 172.20.11.10 172.20.11.100;
        option tftp-server-name "192.168.254.102";
}

答案3

问题是这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)

答案4

删除 dnsmasq 解决了我的问题

sudo apt-get -y remove dnsmasq

相关内容