为什么在子接口上启动 ISC DHCP 服务器时会出现“无子网声明”的情况?

为什么在子接口上启动 ISC DHCP 服务器时会出现“无子网声明”的情况?

我已经创建了两个子接口eth0

  • eth0:0带有 IP192.168.10.1/24
  • eth0:1带有 IP192.168.11.1/24

配置/etc/dhcp/dhcpd.conf如下:

option domain-name-server 194.204.159.1;

subnet 192.168.10.0 netmask 255.255.255.0 {
   option routers 192.168.10.1;
   option subnet-mask 255.255.255.0;
   range 192.168.10.10 192.168.10.100;
}

subnet 192.168.11.0 netmask 255.255.255.0 {
   option routers 192.168.11.1;
   option subnet-mask 255.255.255.0;
   range 192.168.11.10 192.168.11.100;
}

但是当我尝试启动 DHCP 服务器时,我得到了:

No subnet declaration for eth0:0 (no IPv4 addresses).
 ** Ignoring requests on eth0:0.  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:0 is attached. **

No subnet declaration for eth0:1 (no IPv4 addresses).
 ** Ignoring requests on eth0:1.  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:1 is attached. **

配置在/etc/default/isc-dhcp-server

INTERFACES="eth0:0 eth0:1"

那有什么问题?

更新:

忘记说了,我正在尝试在子接口(别名?)上配置单臂路由器。我设置了 2 台主机,192.168.10.2192.168.11.2在配置了第 3 台主机的子接口后eth0:0eth0:1在这两台主机之间转发数据包。但现在我正在尝试配置 DHCP 服务器,它可以动态地将 IP 分配给 2 个子网中的 2 台主机。

答案1

这不会起作用,因为 IP 别名只是一种向现有接口添加地址的方法。您在这里可能应该做的是 VLAN。

答案2

您不需要有子接口来为这些网络提供 DHCP 请求。 http://manpages.ubuntu.com/manpages/hardy/man5/dhcpd.conf.5.html

DHCP 是一种类似于 TCP/IP 的协议,因此它在机器拥有 IP 地址之前的某个层面上工作,因此您不需要在子接口上侦听 DHCP 请求,而是要侦听实际的物理接口(在您的情况下可能是 eth0)来获取这些请求。

然后,您将需要定义向这些组出租 IP 地址的规则 - 通过静态 MAC 地址映射,或者任何(我猜是 ubuntu)允许您做的事情。

eth0:1 和 eth0:0 接口仅对于 NAT 路由是必要的,并且不应出现在 DHCP 配置中的任何位置。

相关内容