我正试图build立一个非常简单的DHCP服务器。 我使用Ubuntu 10.04,并安装了“dhcp3-server”软件包。 服务器有一个接口(eth0)静态设置为10.0.0.10(/ 21)。 我想从networking10.255.224.0/19分发IP。
按照各种在线指南所述,我编辑/ etc / default / dhcp3-server以包含“INTERFACES =”eth0“行。
然后我写了我的dhcpd.conf。 我不得不把一个空的子网或我得到的错误:
No subnet declaration for eth0 (10.0.0.10). ** Ignoring requests on eth0. If this is not what you want, please write a subnet declaration in your dhcpd.conf file for the network segment to which interface eth0 is attached. **
一旦我添加这个空的子网,守护进程将启动。 我尝试另一台作为DHCP客户端的机器来testing它。 这是我在dhcpd日志中看到的:
dhcpd: DHCPDISCOVER from 00:1d:09:b1:f5:dc via eth0: network 10.0.0/21: no free leases
这个“networking”明确地看起来不正确,但我找不到问题在哪里阻止我的testing客户端获得IP。 这是我的dhcpd.conf:
ddns-update-style none; option domain-name "example.org"; option domain-name-servers 10.10.10.83, 10.10.10.84; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; #empty subnet to prevent error on start subnet 10.0.0.0 netmask 255.255.248.0 { } subnet 10.255.224.0 netmask 255.255.224.0 { option subnet-mask 255.255.224.0; option broadcast-address 10.255.255.255; option routers 10.0.0.1; range 10.255.224.2 10.255.255.254; }
过去我曾经使用ISC-DHCPd,但这是我试图构build和部署自己的第一台服务器。 任何提示将是超级!
在同一物理networking中,两个子网是10.0.0.0/255.255.248.0和10.255.224.0/255.255.224.0吗? 如果是,则需要将地址从10.255.224.0/255.255.224.0分配给DHCP服务器,或者需要在10.255.224.0/255.255.224.0networking的某个设备上设置DHCP中继代理 。
如果它们不在同一个networking上,我不确定你的DHCP服务器怎么会看到这个请求,但是你绝对需要一个在10.255.224.0/255.255.224.0networking上有一个地址的设备上的DHCP中继代理将请求转发给DHCP服务器。
这一切都是必须的,因为DHCP服务器将通过使用接收请求的接口的networking/掩码(如果广播接收到)来select范围以提供地址。 如果请求通过单播与GIADDR地址填充, 一个DHCP中继填充这个 ,然后GIADDR将被用来select作出报价的范围。