DD-WRT:DNSMasq 扩展主机不工作

DD-WRT:DNSMasq 扩展主机不工作

我有一台运行 DD-WRT 的 Linksys 路由器(固件:DD-WRT v24-sp2 (09/08/09) mini)。我成功地解析了 DHCP 分配系统的 DNS 名称,但只有当我完全符合这些域的条件时才可以。尽管使用了“expand-hosts”DNSMasq 附加选项,该选项应该可以激活此精确功能。

这是我的 dnsmasq.conf:

interface=br0
resolv-file=/tmp/resolv.dnsmasq
domain=example.com
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=51
dhcp-option=lan,3,10.77.0.5
dhcp-authoritative
dhcp-range=lan,10.77.0.100,10.77.0.149,255.255.0.0,1440m
dhcp-host=00:1A:A0:1D:82:5A,astatichostname,10.77.1.40,infinite
expand-hosts

(仅供参考:example.com 和 astatichostname 是我使用的真实名称的占位符。我的网络使用 10.77.0.0/16;我的路由器在 10.77.0.5。)

结果:

> nslookup astatichostname 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

** server can't find astatichostname: NXDOMAIN

> nslookup astatichostname.example.com 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

Name:   astatichostname.example.com
Address: 10.77.1.40

还有什么其他因素可能导致 DNSMasq 中的 expand-host 发生故障?

答案1

这个问题很老了,但它是谷歌上关于这个问题的搜索结果中排名靠前的之一,我终于弄明白了。

问题是,它不是这样expand-hosts做的。关于它的文档非常模糊,但它所做expand-hosts的是将域添加到主机条目中/etc/hosts,而不是添加到 DNS 查询中。例如

在 /etc/hosts 中:

10.77.0.5 astatichostname

dnsmasq.conf:

expand-hosts
domain=example.com

然后 的 DNS 查询astatichostname.example.com将解析为10.77.0.5(除了 的 DNS 查询astatichostname)。



解决方案:

因此,解决方案是让 dd-wrt ​​创建/etc/hosts不带域的条目,然后告诉 dnsmasqexample.com在完全合格的 A 记录 DNS 查询进入时将这些主机条目视为域的一部分。
为此,您必须:

  1. example.com域名放入域名字段上的设置->基本设置页面下可选设置
  2. 空白LAN 域设置在服务页面下DHCP 服务器
  3. 添加expand-hosts其他 DNSMasq 选项服务页面下DNSMasq

#1控制domain=放入dnsmasq.conf文件中的设置。步骤#2从输入的条目中删除域/etc/hosts。步骤#3/etc/hosts当完全合格的 DNS 查询进入时,将域名添加到条目中。


我很高兴 dd-wrt ​​让这一切变得简单而美好......

答案2

以下内容适用于我的 DD-WRT:

expand-hosts
local=/lan/
domain=lan

我认为这是因为您缺少local设置。我也已lan在 GUI 中将其设置为“LAN 域”。

相关内容