设置内部 DNS 主机

设置内部 DNS 主机

我有一个域名(例如 example.com)和一个来自 ISP 的静态 IP(例如 192.168.1.200)。域名的 A 记录指向该静态 IP。我已使用路由器中的端口转发将所有请求路由到本地网络上的服务器(10.0.0.10)。现在,当我打开我的域名时,内容将从本地网络上的服务器提供。截至目前,一切正常。

我现在正在尝试为我的开发环境设置内部 DNS(例如 dev.example.com)。当我在本地网络中访问它时,流量应该由我的本地网络提供。这将节省我的时间和带宽。

同时,它也应该可以从外部网络访问。

当我在本地网络中时,我可以通过在主机文件中添加条目来实现它,但这是一个坏主意,因为会涉及许多用户。

我怎样才能实现这个目标?

答案1

TL;DR:不要使用 DNS 绕过路由。让路由器路由,这样更经济。

请重新考虑您的架构。仅有的您尝试节省的只是单个路由器跳数*。这些是微秒。您尝试牺牲 DNS 的可用性和可预测性来节省微秒。

一次精神混乱的情况“我以为域名解析到那里,但我忘了它在这里解析了!”可能会花费你比所有这些微秒累积起来更多的时间。而且它将要将来会发生。

分割视图 DNS 是一种负担。我见过的每一个案例,它总是会带来陷阱风险,并且总是会增加一个故障排除步骤。遗憾的是,一旦引入它,几乎不可能根除(这是它在大型组织中如此普遍的主要原因;这和老式的货物崇拜)。

假设你正在排除连接问题。使用干净的单一 DNS,你会问“你使用了哪个 URL?”。使用分视图 DNS,你需要问“你使用了哪个 URL?顺便问一下,解析该 URL 名称的实际机器的 IP 是什么?”这个问题很难回答(将来要做好准备,因为代理和代理链会开始增长)。它没关系只有少数名称实际上解析为不同的 IP 地址,因为你需要查看分割视图配置每个这种情况下甚至会触及 DNS 的分割视图区域。因此,在这种情况下,您要么诅咒 DNS,要么让路由器完成其预期的工作。它是一件硬件,所以它可能不会诅咒您。

[*是的,你可能会担心关于吞吐量。我想这不是一个真正的问题:你可能不会在开发环境中使路由器接口饱和。如果你在开发环境中使它饱和(例如,它是 100 Mbps),那么考虑它就毫无意义了生产用户使用同一个路由器- 您迫切需要升级路由器。]

答案2

我将设置一个内部 DNS 服务器,该服务器对 example.dev 之类的域名具有权威性(而不是使用子域名 dev.example.com)。

使用内部 DNS 作为内部用户的解析器。

只要内部 DNS 是所有它不知道的域(例如 example.com)的正确解析器,一切都会正常工作。

相关内容