![本地 DNS 配置和最佳实践](https://linux22.com/image/1503414/%E6%9C%AC%E5%9C%B0%20DNS%20%E9%85%8D%E7%BD%AE%E5%92%8C%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.png)
我最近在家庭网络上设置了 PowerDNS + PowerAdmin 服务器。我将其设置为权威 + 递归 DNS 服务器组合,以便简化操作。我已将 8.8.8.8 设置为递归服务器。
我已经确认我可以执行:“dig google.com @(dns 服务器的 ip)”,并且效果很好。
我的目标基本上是能够在我的家庭网络上为正在运行的各种虚拟机使用 DNS。让我们使用 wiki 服务器作为此示例。
我原本打算这样做:wiki01.catpants.lan 作为名称,但有人告诉我这是一个坏主意。(使用假的顶级域名)所以现在我只需购买一个域名并执行类似 wiki.catpants.com 的操作(或我决定使用的任何名称)。
我有几个问题。
使用 8.8.8.8 作为递归器可以吗?我知道谷歌的 DNS 服务器很常用,但我想知道是否有更合适的选择。
我希望能够一眼就看出服务器是“仅供内部使用”还是也可供外部使用。我考虑使用另一个子域名,因此对于“仅供内部使用”的 wiki,其域名应为 wiki01.lan.catpants.com,对于外部可用的 wiki,其域名应为 wiki02.catpants.com。这样可以,但我认为有点丑陋,而且需要额外输入。或者,我应该购买和使用仅供内部使用的域名吗?对我来说这似乎有点浪费,因为我有想要运行的外部服务。看,在我看来,使用 .lan 确实有一些优势。这些优势是免费且易于判断服务器是仅供内部使用还是可供外部使用。
(主要问题)我一直在尝试使用我已经拥有的域来测试创建一些内部 DNS 记录。将其命名为 foo.com。我目前使用 he.net 作为 foo.com 的名称服务器。当我尝试使用 poweradmin 为 foo.com 创建主区域时,它会为其创建一个 SOA 记录,但默认值为:
8.8.8.8 2016081300 28800 7200 604800 86400
IIRC,首次配置 poweradmin 时,它会询问我有关某种默认值的问题(可能与 SOA 有关)。不知道那里发生了什么,我只是输入了 8.8.8.8,以为它在询问递归器。当然,现在似乎没有办法编辑该设置,所以不确定它是什么。SOA 记录应该是什么样的?我应该使用 DNSSEC 吗?如果它被认为是“最佳实践”,我可以自己研究它。
是否有可能出现“泄漏”?也就是说,我认为从安全角度来看,如果包含我的内部 DNS 记录的数据包永远不会在互联网上路由,那就太好了。如果有人捕获了我网络的所有出站流量,那么字符串“wiki01.lan.catpants.com”应该绝不出现在该流量中。此设置是否会出现这种情况?
谢谢!!
答案1
请为内部和外部客户端配置单独的 DNS 服务。这可以通过拆分 DNS 或不同的服务器来实现。我使用这两个选项。
- 如果您要进行递归查询,则应从根服务器开始。它们应从提示文件中填充。不要向从互联网连接的主机提供此服务。如果您这样做,您会发现您的网络带宽被用于创建放大攻击。
- 有几种机制可以分离外部和内部条目。使用子域名就是其中之一。配置这些地址,使它们不会泄露到互联网上。购买单独的域名供内部使用是过度的。
- 您的内部地址不应列在 he.net 域服务器上。这些地址在互联网上无效,也不应由面向互联网的 DNS 服务器提供服务。为这些地址创建您自己的内部区域。
- 在某些时候你应该使用 DNSSEC。留到以后再考虑。
- 使用 10.0.0./8、172.16.0.0/12 和 192.168.0.0/16 范围内的私有 IP 地址,流量将不会被路由到互联网。无论如何,如果您的 DNS 服务器和客户端位于同一个 LAN 上,流量将不会通过互联网在服务器之间路由。