我在配置和启动计算机上的 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 请求提供服务,则需要设置eth1
192.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