dhcpd 无法在 eth1 上启动

dhcpd 无法在 eth1 上启动

我在配置和启动计算机上的 ISC DHCP 服务器时遇到问题。我运行的是 Ubuntu 11.10 桌面版。我通过运行以下命令安装了 ISC DHCP

$ sudo apt-get install dhcp3-server

我的机器有两个网卡:

eth0,连接到路由器以访问互联网,其 IP 地址为192.168.2.2. eth1,我希望 dhcpd 为​​子网提供请求服务。

我已修改/etc/default/isc-dhcp-server为指向 eth1:

$ cat /etc/default/isc-dhcp-server
# Defaults for dhcp initscript
INTERFACES="eth1"

我已经为简单子网配置了 dhcpd:

$ cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
  interface eth1;
  range 192.168.0.50 192.168.0.100;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.0.255;
}

使用这种配置,dhcpd 无法启动:

$ sudo /etc/init.d/isc-dhcp-server start
* Starting ISC DHCP server dhcpd
* check syslog for diagnostics.               [fail]

$ tail /var/log/syslog
Aug 15 15:29:45 eptc4 dhcpd: No subnet declaration for eth1 (no IPv4 addresses).
Aug 15 15:29:45 eptc4 dhcpd: ** Ignoring requests on eth1.  If this is not what
Aug 15 15:29:45 eptc4 dhcpd:    you want, please write a subnet declaration
Aug 15 15:29:45 eptc4 dhcpd:    in your dhcpd.conf file for the network segment
Aug 15 15:29:45 eptc4 dhcpd:    to which interface eth1 is attached. **
Aug 15 15:29:45 eptc4 dhcpd: 
Aug 15 15:29:45 eptc4 dhcpd: 
Aug 15 15:29:45 eptc4 dhcpd: Not configured to listen on any interfaces!

我是不是漏掉了什么步骤?我不明白为什么 dhcpd 会抱怨它没有配置为监听任何接口。

这是我第一次设置 DHCP。我花了三天时间阅读手册和论坛,认为自己做对了一切,但总是出现同样的错误。任何能帮助我走上正轨的提示都将不胜感激!

答案1

简而言之:您需要在接口上设置一个地址,eth1然后 DHCP 才能处理来自该接口的请求。

长话短说:DHCP 服务器将读取配置文件,然后将subnet声明与当前分配给接口的 IP 地址进行匹配。只有 IP 地址与声明匹配的接口subnet才会为该子网提供服务。因此,如果您希望 ISC DHCP 服务器为来自它的 192.168.0.0/24 请求提供服务,则需要设置eth1192.168.0.0/24 范围内的地址。

答案2

下面在 Ubuntu 12.04 中对我有用

apt-get remove --purge dhcp3-server
sudo apt-get install isc-dhcp-server

转到 /etc/dhcp。创建一个新文件“dhcp.conf”在此之前保留现有“dhcp.conf”文件的备份

将以下详细信息添加到新的 dhcp.conf 文件中

# Sample /etc/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    range 192.168.1.150 192.168.1.200;
} 

现在转到/etc/defaults/isc-dhcp-server并将您的接口名称添加到文件中isc-dhcp-server

使用您的服务器静态详细信息修改/etc/network/interfaces文件,如下所示

auto eth1
iface inet eth1 static
    address 192.168.1.149
    netmask 255.255.255.0
    gateway 192.168.1.255
    dns-nameservers 192.168.1.1

这次跑步sudo /etc/init.d/isc-dhcp-server restart之后sudo /etc/init.d/networking restart

注意:不要忘记在客户端系统中安装 dhcp 客户端。此外,在服务器系统中安装 dhcp 服务器后,请将系统从外部网络中移除,这样它就不会损害网络中已有的其他设备(除了您感兴趣的特定客户端)

现在如果你将客户端连接到托管服务器的同一网络,客户端将获取指定范围内的 IP

答案3

启动 dhcp-server 的另一种方法是使用服务实用程序。

例如:

# sudo service isc-dhcp-server start

相关内容