BIND9搭配ISC-DHCP单设备添加DNS正向映射返回REFUSED错误排查
问题原因
你排查到的bad owner name (check-names)报错就是问题的直接根源:
BIND默认遵循RFC 1123域名规范,正向区域的主机名仅允许包含英文字母、数字、连字符(-),不允许使用下划线(_)。本次报错的特斯拉设备上报的主机名为Tesla_Model_3,包含两个下划线,不符合BIND默认的校验规则,因此BIND直接拒绝了DHCP服务发起的DNS记录更新请求,返回REFUSED错误。其余设备上报的主机名均不含非法字符,所以可以正常更新。
解决方案
提供两种可选方案:
方案1:遵循规范修改主机名(推荐)
在ISC-DHCP的配置文件中为该设备的MAC地址4c:fc:aa:1f:9d:13配置静态租约,手动指定合规主机名,将下划线替换为连字符即可,示例配置如下:
host Tesla-Model-3 { hardware ethernet 4c:fc:aa:1f:9d:13; fixed-address 192.168.1.69; option host-name "Tesla-Model-3"; }
修改完成后执行systemctl reload isc-dhcp-server重载配置即可。
方案2:关闭BIND的主机名校验(兼容方案,不推荐)
如果不想修改设备主机名,可以调整BIND的配置放宽校验规则:
- 编辑BIND的区域配置文件,找到
argylecourt.lan对应的zone配置段,添加check-names ignore;参数:
zone "argylecourt.lan" IN { type master; file "/etc/bind/db.argylecourt.lan"; allow-update { key dhcp_updater; }; check-names ignore; # 新增该行关闭当前区域的主机名校验 };
- 执行
systemctl reload bind9重载配置生效。
内容的提问来源于stack exchange,提问作者MaxG
相关产品推荐
相关产品推荐

