配置顶级域名

配置顶级域名

我刚开始一份新工作,我们有一个内部网,有自己的顶级域名,例如 .abc。因此,如果我想登录我们的“电子福利网站”,我只需打开网络浏览器并转到工作链接.abc并从那里登录。

作为对 DNS 和系统 IT 了解甚少的开发人员,我很好奇它的工作原理,以及我需要做什么才能在家里完成类似的事情。

我叫 Adam,我想拥有一个家庭内部网,其中所有域名可能都以管理员后缀。这样,我就可以开发内部 Java Web 应用程序来映射到诸如http://mydomain.adm?foo=bar等页面。我非常确定这会将我带入 DNS 服务器和配置的新世界,但这并不会吓到我。

你们这些“系统专家”能否为可怜的 Java 开发人员提供高水平的、外行人能理解的介绍,让我知道如何实现这一点?目前我甚至不知道从哪里开始。如果你能给我一份像样的待办事项清单,我可以从那里研究细节。提前谢谢!

答案1

正如 Dan 所说,您可以使用系统/etc/hosts文件来实现您想要的功能。这并非以任何有意义的方式“设置 TLD”,因为它实际上与 DNS 无关。/etc/hosts通常由您的系统引用它会检查 DNS。该hosts文件只是将名称映射到地址,它对域一无所知。因此,如果您将其放入/etc/hosts

127.0.0.1 localhost apple.com

然后执行以下操作:

curl http://apple.com/

curl将尝试连接到127.0.0.1。但如果您这样做:

curl http://www.apple.com/

您的系统将(...可能...)引用 DNS,因为在文件www.apple.com中未找到hosts。由于大多数软件使用系统名称解析功能(由 控制/etc/nsswitch.conf),因此这几乎适用于所有软件。这很简单,但也有一些缺点:

  • 如果您有多台机器,则需要使hosts所有机器上的文件保持最新。
  • 除了使用文件进行名称到地址的映射之外,您无法提供任何其他内容hosts。因此,没有MXSRV记录,没有CNAME记录,等等。

下一个最简单的解决方案是使用域名系统,这是一个非常实用的工具,可提供 DNS、DHCP 和 TFTP 服务——换句话说,它几乎提供了小型网络所需的一切。使用dnsmasq,您可以:

  • 创建您自己的顶级域名(TLD)供您在网络上使用,
  • 通过 DHCP 自动向客户端提供本地名称服务器的 IP 地址,
  • 覆盖来自公共 DNS 服务器的答案(例如,您可以用您选择的内部服务器替换“www.google.com”)。

dnsmasq有很好的文档记录,但如果您在看完文档后有具体问题,请回来,我会看看我能做些什么。

这是一个非常简短的例子...如果你运行它:

dnsmasq -C /dev/null --local=/localnet/ -s localnet -E

-C /dev/null为了确保我们从“空”配置开始,因为我不知道您的本地配置中可能有什么/etc/dnsmasq.conf。此命令行是否dnsmasq会使/etc/hosts文件中的任何条目通过“localnet”域中的 DNS 可用。例如,如果我的文件中有以下内容hosts

10.10.10.10 fluff
10.10.10.11 nutella

dnsmasq我可以在配置为使用我的实例进行 DNS 的系统上执行此操作:

$ host fluff.localnet
fluff.localnet has address 10.10.10.10

我也可以使用不合格的名称:

$ host nutella
nutella has address 10.10.10.11

你可以使用dnsmasq,这对于家庭网络来说可能已经足够了。如果你需要为更多的人提供服务——并提供冗余的 DNS 服务、内部/外部视图、ACL 等等——那么你会看到类似绑定,但这对于您所做的事情来说不是必要的(或者对于我所做的事情来说,就此而言 - 我dnsmasq在家里使用)。

相关内容