我已经创建了两个子接口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.2
并192.168.11.2
在配置了第 3 台主机的子接口后eth0:0
,eth0: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 配置中的任何位置。