supersede指令的核心作用
在DHCP配置中,supersede
是一个强制覆盖指令,用于声明客户端应忽略服务器下发的特定参数值,转而使用本地配置的值。这个指令在以下场景特别有用:
- 需要覆盖服务端下发的默认域名
- 强制使用本地DNS配置
- 解决DHCP服务器配置错误时的应急方案
domain-name参数的具体应用
当配置中出现:
supersede domain-name "SOMETHING.COM FOO.ORG";
这表示:
- 客户端将完全忽略DHCP服务器下发的domain-name参数
- 使用"SOMETHING.COM FOO.ORG"作为搜索域
- 多个域名用空格分隔,按顺序尝试解析
实际配置案例
以下是完整的dhclient.conf配置示例:
interface "eth0" {
supersede domain-name "company.local example.com";
supersede domain-name-servers 192.168.1.100, 8.8.8.8;
request subnet-mask, broadcast-address, routers;
}
调试技巧
验证配置是否生效:
# 查看当前域名配置
cat /etc/resolv.conf
# 手动触发DHCP更新
dhclient -r eth0 && dhclient eth0
# 检查DHCP日志
tail -f /var/log/syslog | grep dhclient
常见问题排查
如果配置未生效,检查:
- 配置文件路径是否正确(/etc/dhcp/dhclient.conf)
- 网卡名称是否匹配
- 是否缺少request语句
- SELinux/AppArmor是否阻止配置更新