我正在运行 djbdns dnscache;有没有办法让它返回特定的 IP 而不是 NXDOMAIN?
答案1
dnscache 的字面意思是:DNS 缓存。如果您想要A
为您控制的域指定(正向解析)记录,则需要运行功能齐全的 DNS,例如 BIND 或 djbdns。
在发送 NXDOMAIN 响应时使用 IP 进行响应,则会破坏 RFC。 NXDOMAIN 重写是有争议的做法不推荐并且通常不支持,因为它违反了 RFC。djbdns 和 BIND 均不支持此功能。
据我所知,目前只有商业解决方案可以实现这一点。其中包括裸果以及其他一些。
这是一个有趣的邮政来自一个邮件列表,其中某人看起来像是 ISC 工程总监 Keith Mitchell,表示他不想在 BIND 中引入支持。
如果您有合理的需求,我们也许能够为您提供替代的技术解决方案。
答案2
这是我们内部网设置的一项要求;我知道这存在争议,但这不是重点。
我设法让它工作了 - 但我不知道它是否会破坏其他任何东西;到目前为止一切似乎还好。
在查看 dnscache 日志后,我发现,在尝试根服务器解析 nonexistent.foo 后,它将尝试解析 nonexistent.foo.local.host(其中 local.host 是 localhost 的名称)。因此,我在环回接口 (127.0.0.10) 上设置了 tinydns,为 *.local.host 提供 1.2.3.4。然后,我在 dnscache/root/servers 中添加了环回 ip 作为 local.host 的服务器。
这种设置的唯一缺点是 foo.local.host 的查找解析为 1.2.3.4,但这并不麻烦。