我在同一个接口(eth0)上配置了一个具有多个范围的 Linux dhcpd 服务器。需要这些 IP 地址的设备(DHCP 客户端)位于两个不同的远程网络上。网络团队已完成所有配置,包括中间的 DHCP 中继,因此请求以以下格式到达我的 DHCP 服务器:
DHCPDISCOVER from macaddress via 10.238.16.10 (remote_network_1)
DHCPDISCOVER from macaddress via 10.238.25.20 (remote_network_2)
(我认为上面提到的 IP 属于将 DHCP 请求转发到我的服务器的远程路由器。)
现在,DHCP 服务器成功地将 IP 从第一个配置的范围(10.238.16.x)分配给从 remote_network_1 和 remote_network_2 请求的客户端。
如何配置它,以便当请求来自 10.238.16.10 时,它分配一个 10.238.16.X IP,当它来自 10.238.25.20 时,它分配一个 10.238.25.X IP。
我知道还有其他方法可以解决这个问题——比如将 dhcpd 配置为监听两个不同的接口等,但这对我不起作用。
我尝试了“选项广播地址”,但没有奏效。
我的 dhcpd.conf:
ddns-update-style none;
default-lease-time 6000;
max-lease-time 72000;
authoritative;
log-facility local7;
subnet 10.238.24.0 netmask 255.255.255.248 {
}
shared-network DA {
subnet 10.238.16.0 netmask 255.255.255.0{
range 10.238.16.52 10.238.16.254;
option routers 10.238.24.9;
option broadcast-address 10.238.16.255;
}
subnet 10.238.25.0 netmask 255.255.255.0{
range 10.238.25.52 10.238.25.254;
option routers 10.238.24.9;
option broadcast-address 10.238.25.255;
}
}
从系统日志:
Feb 3 13:32:18 linux-server dhcpd: DHCPDISCOVER from b8:5e:7b:1e:c2:89 via 10.238.25.20
Feb 3 13:32:19 linux-server dhcpd: DHCPOFFER on 10.238.16.53 to b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb 3 13:32:19 linux-server dhcpd: DHCPREQUEST for 10.238.16.53 (10.238.24.20) from b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb 3 13:32:19 linux-server dhcpd: DHCPACK on 10.238.16.53 to b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb 3 13:35:40 linux-server dhcpd: DHCPDISCOVER from 40:f3:08:89:3f:13 via 10.238.16.10
Feb 3 13:35:41 linux-server dhcpd: DHCPOFFER on 10.238.16.54 to 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
Feb 3 13:35:41 linux-server dhcpd: DHCPREQUEST for 10.238.16.54 (10.238.24.20) from 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
Feb 3 13:35:41 linux-server dhcpd: DHCPACK on 10.238.16.54 to 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
删除了
shared-network
部分。这不是共享网络。你只需要两个范围。来自man dhcpd.conf
:您还应该修复
option routers
每个子网中的线路。此行应列出每个网络的默认网关。最后我们发现最好的方法是配置 DHCPD 以根据设备 MAC 地址分配静态 IP。
我们控制连接到这些网络的设备,而且数量有限,因此该解决方案适合我们。这是一些额外的工作,但也增加了一些安全性。