dhcpd无法启动eth1

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

$ sudo apt-get install dhcp3-server 

我的机器有两个NIC: eth0 ,它连接到一个用于Internet访问的路由器,其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。 我花了三天时间阅读手册和论坛,并认为我已经做好了一切,但仍然遇到同样的错误。 任何让我走上正确轨道的提示都非常感谢!

简而言之:在DHCP可以为其提供请求之前,您需要在接口eth1上设置一个地址。

更长的故事:DHCP服务器将读取配置文件,然后将subnet声明与当前分配给接口的IP地址进行匹配。 只有IP地址与subnet声明匹配的接口才会为该subnet提供请求。 因此,如果希望ISC DHCP服务器从中提供192.168.0.0/24的请求,则需要使用192.168.0.0/24范围内的地址设置eth1

以下在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 restartsudo /etc/init.d/networking restart

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

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

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

例如:

 # sudo service isc-dhcp-server start