我在 Ubuntu 10.04 上运行 bind9,管理 (LAN) 域 lan.group04.org - 请参阅以下区域文件
lan.group04.org. IN SOA dns.lan.group04.org. admin.lan.group04.org. (
2006081401
28800
3600
604800
38400
)
lan.group04.org. IN NS dns.lan.group04.org.
gateway IN A 10.10.1.1
wlan-access IN A 10.10.1.2
dns IN A 10.10.1.3
payment IN A 10.10.1.4
iodine IN A 10.10.1.5
tunnel IN NS iodine.lan.group04.org.
您可能已经从这些巧妙选择的名字中猜到了,我正在尝试碘(这是课程作业,而不是试图破解 Gibson :P)。
我现在的问题是,我的 DNS 服务器从不向 10.10.1.5 发送 DNS 请求。要使 iodine 正常工作,我需要 DNS 将对 tunnel.lan.group04.org 中的任何内容的任何请求转发到该 IP;例如,对 hello.tunnel.lan.group04.org 的请求应转发到 iodine-machine。
我尝试了上述的多种变体,这些变体在语义上似乎相同,语法上也有效,但无法将子域请求转发到 iodine-machine。我知道它们没有从两台机器上的 wireshark 转发到那里。
关于网络:全部在 10.10.1.0/17 中,10.10.1.4(本地 DNS)和 10.10.1.5(碘)之间没有路由器/防火墙/交换机,端口是开放的,ping、http、.... 可以正常工作。iodine.lan.group04.org 可以正确解析。
我是否需要在 named.conf.local 中将碘服务器设置为该子域的主服务器?我已经尝试过一次,但可能搞砸了,所以我将在发布此问题后立即再次尝试。
有人知道我在这里做错了什么吗?
编辑已解决;请参阅我自己的答案。接受的答案是感谢 AndreasM 帮助我解决了这个问题。
答案1
回应赞成票的答案 ;)。我不知道 bind9 是如何做到的,通常它应该首先检查它的视图(按配置的顺序)以决定它是否应该充当解析器或授权者。我同意你的观点,在你的情况下它应该以解析器模式运行(假设其他查询(如 www.google.com)有效),然后从授权模式回答,但显然它没有。这就是为什么我在测试这些东西时总是使用专用的解析器。
您的解决方案只是部分解决方案,您从未从外部测试过它是否也有效。这是您测试的“捷径”,意思是“如果您没有得到答案,也请询问这个”。
答案2
好的,问题解决了;我没有将 10.10.1.5 设置为本地 DNS 服务器的转发器;在我的本地 DNS 的 named.conf.options 中,它需要是:
forwarders {
...
10.10.1.5;
...
}
这(当然还有随后的绑定重启)解决了我的问题。