我刚刚成功配置 BIND 用作缓存服务器,并且我直接从 13 个根服务器(作为提示文件)提取信息,而不是使用来自其他人的 DNS 服务器的转发器。
我的named.conf文件包括以下内容:
options {
listen-on port 53 { 127.0.0.1; 10/8; };
allow-query { localhost; 127.0.0.1; 10/8; };
{snip}
}
zone "." IN {
type hint;
file "named.ca";
};
由于尚未准备好将其部署到公众手中,我开始使用 BIND 时认为只需将我自己的计算机的网络适配器指定为新的 DNS 服务器即可。我对其进行了测试以确保其正常工作,然后将 IP 地址提供给几位精通技术的同事,让他们也开始使用它,这样我就可以在接下来的一两天内监控这个新的工作服务器。
但真正让我困惑的是:我在过去 10 分钟内一直在运行 dnstop,我发现我们至少有 18 台设备正在与服务器通信,并且已经有几个设备发出了超过 2,000 次查询,而这些设备并未被告知新的 DNS 服务器。
显然,我告诉它在我们的整个 10/8 网络中进行监听。但我认为我们需要配置我们的路由器(由我们的网络工程师而不是我来完成),以便让每个人都与这个新的 DNS 服务器通信。
我是否明显误解了 DNS 的工作方式以及设备如何进行 DNS 查询?我的观察表明,这个新的 BIND 服务器正在“广播”自身,以便网络上的多个(如果不是全部)设备都知道它。
答案1
DHCP 下的 DNS 服务器分配由 DHCP 服务器分配 - 而不是由路由器分配。一般来说,您说得对,没有人知道的 DNS 服务器就在那里。但是:许多带有病毒的计算机可能会向许多不同的 IP 发送许多 DNS 查询,以查找漏洞等。对于发出查询的设备,有没有办法找出这些查询是什么?这将让您对正在发生的事情有所了解。
答案2
Bind 不会广播其存在。您的 IP 地址可能在某些配置中被列为名称服务器。
某些恶意软件也可能正在搜索您的 DNS 服务器。您可以通过几种方式查看请求的内容。
- 在绑定服务器上启用查询日志记录。
- 使用
tcpdump
或其他数据包嗅探器来捕获传入的查询。
然后,您需要确定这些查询是否合法。如果请求的源地址似乎无法直接到达您的服务器,则可能是恶意软件在发送查询。对于 UDP 查询,您不一定能信任源地址。伪造的源地址已被用来对服务器发起 DOS 攻击。