从分布中排除子网吗?

从分布中排除子网吗?

在 Windows 的 DHCP 服务器中,可以排除将整个子网分配给没有预留的客户端。他们称之为“排除分配的 IP 地址”。

现在我想在 Linux 的 DHCPD 上执行相同操作。所以我有这些子网

# servers
subnet 192.168.91.0 netmask 255.255.255.0 {
  range 192.168.91.2 192.168.91.254;
  option routers 192.168.91.1;
}

# desktop computers
subnet 192.168.234.0 netmask 255.255.255.0 {
  range 192.168.234.2 192.168.234.254;
  option routers 192.168.234.1;
}

其中,用户桌面永远不应被赋予“服务器”范围内的 IP。只有拥有预留的主机才能够从“服务器”范围内获取 IP。但任何人都可以从“桌面”范围内获取 IP。

问题

我如何在 Linux 的 DHCPD 中做到这一点?

答案1

简单——不要添加范围。

# servers
subnet 192.168.91.0 netmask 255.255.255.0 {
  option routers 192.168.91.1;
}

然后在稍后的配置中,您可以根据需要将该子网中的特定 IP 分配给特定的 MAC 地址。

下面是我实际的 DHCP 服务器的一个示例(抱歉,是在家里的 Pi 上,不是在“专业环境”中,但无论如何都一样……只是规模问题)

$ cat /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 700;
ddns-update-style none;
authoritative;
log-facility local7;
lease-file-name "/etc/dhcp/leases.dhcpd";

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-routes code 249 = array of unsigned integer 8;

#notice no range in this subnet
subnet 192.168.1.0 netmask 255.255.255.0 {
  option domain-name "home.test";
  option domain-name-servers 192.168.1.2;
  option routers 192.168.1.1;
  option rfc3442-classless-static-routes 24, 10,99,97, 192,168,1,2;
  option ms-classless-routes 24, 10,99,97, 192,168,1,2;
}

subnet 10.99.97.0 netmask 255.255.255.0 {
  range 10.99.97.150 10.99.97.175;
  option domain-name "home.test";
  option domain-name-servers 192.168.1.2;
  option routers 10.99.97.2;
}

host webdev{
 hardware ethernet 08:00:27:74:07:21;
 fixed-address 192.168.1.90;
}

相关内容