有没有办法从 DHCP 池中排除单个 IP 地址?由于各种原因,我有一台无法重新配置或移出网络的机器(我们称之为打印机)。它已使用地址进行硬编码,x.x.x.50
我的 DHCP 池是x.x.x.10 -> x.x.x.246
。我不想为这个子网定义两个池,只是为了覆盖这台机器两侧的范围。是否有某种形式的“排除 IP”参数/选项?
我正在使用 Ubuntu 11 和该isc-dhcp-server
软件包。
免责声明:我已经在 Google 上搜索过,但只找到了 IOS 和 Juniper 配置信息。
答案1
为什么不明确设置该设备的 IP:
# The standard subnet
subnet 10.0.0.0 netmask 255.255.255.0 {
option domain-name "ourdomain.internal";
option routers 10.0.0.1;
option domain-name-servers 10.0.0.2;
range 10.0.0.10 10.0.0.49;
range 10.0.0.51 10.0.0.246;
}
#has hardcoded ip, and dhcp should not use that in pool
host fixedipappliance {
hardware ethernet 10:4e:ed:co:ff:ee;
fixed-address 10.0.0.50;
}
我刚刚成功测试了具有两个范围的配置。多个范围语句是合法的,根据手册页,必须有至少一个范围语句:
范围语句
range [ dynamic-bootp ] low-address [ high-address];
对于任何将动态分配地址的子网,必须至少有一个范围语句。范围语句给出范围内的最低和最高 IP 地址。范围内的所有 IP 地址都应位于声明范围语句的子网中。如果指定范围内的地址可以动态分配给 BOOTP 客户端以及 DHCP 客户端,则可以指定 dynamic-bootp 标志。指定单个地址时,可以省略 high-address。
答案2
我认为您想进行静态 DHCP 分配。看看这是否有帮助。 http://www.miquels.cistron.nl/isc-dhcpd/ http://forums.whirlpool.net.au/archive/309440
答案3
您不必担心 - DHCP 服务器会在分配地址之前检查网络上是否存在该地址。请执行man dhcpd.conf
并查看相关IP Address Conflict Prevention
部分。只要设备将响应 ICMP 回显请求,您就无需执行任何操作。
注意:如果设备最初通过 DHCP 获取 IP 地址,然后又分配静态地址,则可能会发生冲突。