DHCP 4.2.5版本fixed-address功能异常问题咨询
解决DHCP固定IP被动态分配的问题
这是DHCP服务器的典型默认行为——你通过host块给特定MAC绑定的固定IP,如果没有被排除在动态分配范围之外,当对应的设备不在线时,DHCP会把这些IP当作空闲资源分配给其他请求的客户端。下面是具体的解决方法:
核心思路
要确保固定IP不会被纳入动态分配池,要么把固定IP放在动态范围之外,要么明确从动态池中排除这些IP。
具体配置示例
假设你的子网是192.168.1.0/24,想要给两个MAC分别绑定192.168.1.10和192.168.1.11,动态分配范围设为192.168.1.100-192.168.1.200,修改/etc/dhcp/dhcpd.conf如下:
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; # 动态分配范围避开固定IP range 192.168.1.100 192.168.1.200; # 绑定第一个设备的固定IP host device1 { hardware ethernet 11:22:88:55:66:22; fixed-address 192.168.1.10; } # 绑定第二个设备的固定IP host device2 { hardware ethernet AA:BB:CC:DD:EE:FF; fixed-address 192.168.1.11; } }
如果你的固定IP必须落在原本的动态范围内(比如192.168.1.50和192.168.1.51),可以把动态范围拆分成两段,跳过这些固定IP:
# 动态范围拆分为两段,排除50和51 range 192.168.1.1 192.168.1.49; range 192.168.1.52 192.168.1.200;
验证与生效
- 先检查配置文件语法是否正确:
dhcpd -t -cf /etc/dhcp/dhcpd.conf
如果没有报错,说明配置合法。
- 重启DHCP服务使配置生效:
systemctl restart dhcpd
原理说明
DHCP服务器只会把range指令定义的IP范围作为动态分配的资源池。当你的固定IP不在这个池子里时,即使对应的设备不在线,服务器也不会将这些IP分配给其他客户端——它只会把这些IP保留给绑定的MAC地址,直到该设备发送DHCP请求。
内容的提问来源于stack exchange,提问作者Kiran
相关产品推荐
相关产品推荐

