在我们的办公室,我们有一个带有纯内部 DNS 设置的局域网,客户端都命名为whatever.lan
. 我也有一个 VMware 环境,在纯虚拟机网络上,我将虚拟机命名为whatever.vm
。
目前,无法从我们的局域网访问此虚拟机网络,但我们正在设置一个生产网络以将这些虚拟机迁移到该网络,该网络可从 LAN 访问。因此,我们正在尝试为我们正在设置的这个新网络上的来宾应用的域后缀/TLD 约定一个约定,但鉴于此,我们无法提出一个好的约定.vm
,.local
并且.lan
在我们的环境中都有现有的内涵。
那么,在这种情况下,最佳做法是什么?是否有一个 TLD 或域名列表可以安全地用于纯内部网络?
不要使用发明的 TLD。如果 ICANN 将其委托给您,您将遇到大麻烦。如果您与碰巧使用相同虚拟 TLD 的另一个组织合并,也会发生同样的事情。这就是为什么首选全球唯一域名的原因。
标准RFC 2606为示例、文档、测试保留名称,但没有用于一般用途,并且有充分的理由:今天,获得一个真实且唯一的域名是如此容易和便宜,以至于没有充分的理由使用一个假人。
因此,购买
iamthebest.org
并使用它来命名您的设备。自从编写了该问题的先前答案以来,已经有几个 RFC 在某种程度上改变了指导。 RFC 6761讨论了特殊用途的域名,但没有为专用网络提供具体指导。 RFC 6762仍然建议不要使用未注册的 TLD,但也承认在某些情况下无论如何都会这样做。由于常用的.local与多播 DNS(RFC 的主题)冲突,附录 G. 私有 DNS 命名空间建议使用以下 TLD:
IANA 似乎承认这两个 RFC,但(当前)不包含附录 G 中列出的名称。
换句话说:你不应该这样做。但是,当您决定这样做时,请使用上述名称之一。
将您公司注册域的子域用于您不希望在 Internet 上提供其名称的内部机器。(然后,当然,只在您的内部 DNS 服务器上托管这些名称。)以下是虚构的 Example Corporation 的一些示例。
面向 Internet 的服务器:
www.example.com
mail.example.com
dns1.example.com
内部机器:
dc1.corp.example.com
dns1.corp.example.com
client1.corp.example.com
我用“corp”来表示这个子域描述了内部公司网络上的机器,但是你可以在这里使用任何你想要的东西,比如“internal”:client1.internal.example.com。
还要记住,DNS 区域和子域不必与您的网络编号方案保持一致。例如,我的公司有 37 个位置,每个位置都有自己的子网,但所有位置都使用相同的(内部)域名。相反,您可能只有一个或几个子网,但有许多对等的内部域或子域级别来帮助您组织机器。
使用内部子域还有另一个优点:巧妙地使用搜索后缀和仅使用主机名而不是 FQDN,您可以构建在开发、QA 和生产中都可以使用的配置文件。
例如,您总是在配置文件中使用“database = dbserv1”。
在开发服务器上,将搜索后缀设置为“dev.example.com”=> 使用的数据库服务器:dbserv1.dev.example.com
在 QA 服务器上,将搜索后缀设置为“qa.example.com”=> 使用的数据库服务器:dbserv1.qa.example.com
在生产服务器上,您将搜索后缀设置为“example.com”=> 使用的数据库服务器:dbserv1.example.com
这样,您可以在每个环境中使用相同的设置。
与往常一样,有法律上和事实上的标准。
当“非营利性”ICANN 在政治和金钱方面发挥作用时,我们普通人却在受苦。IETF 曾经
.home
为个人家庭 Intranet 引入 (RFC 7788),但他们没有权力控制仅供 IANA 播放器使用,并且重新引入了.home.arpa
(RFC 8375) 下的域,仅由 IETF 控制.arpa
。https://www.rfc-editor.org/rfc/rfc6762的附录 G提到:
如果您真的想要内部顶级域名,请使用。
大玩家(谷歌、亚马逊)使用
.internal
虚拟内联网:ip-private-ipv4-address.ec2.internal
(us-east-1
其中ip-private-ipv4-address.region.compute.internal
private-ipv4-address 是反向查找 IP 地址)。[INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
。这些公司可以购买互联网。所以在
.internal
内部使用 TLD 实际上是安全的 ))如前所述,您不应将未注册的 TLD 用于您的专用网络。尤其是现在 ICANN 几乎允许任何人注册新的 TLD。然后,您应该使用真实域名。
另一方面,RFC 1918很明确:
因此,您的名称服务器也应该使用视图来防止私人记录在 Internet 上传输。
我们倾向于认为主机的虚拟命名与物理层没有区别——事实上,我们已经将主机配置(软件)从物理层抽象出来。
所以我们购买硬件项目,并在它们之上创建主机项目(并使用简单的关系在我们的文档中显示)。
目的是当主机存在时,DNS 不应该是决定因素——因为我们已经让机器从一个空间移动到另一个空间——例如,低性能的 web 应用程序不需要消耗昂贵的 CPU 周期——虚拟化它,并且它保留了它的命名方案,一切都会继续工作。
一份已过期的名为“私有互联网顶级域”的互联网草案将批准将 42 个两个字母的“用户分配的代码元素”用作私人使用的 TLD。
AA
QM
至QZ
XA
至XZ
ZZ
所以我们可以使用
aaaaaa.aaaaaaaaaa.aa
gg.qq
tired.zz
windows.xp
等等。
虽然该草案已过期,因此不会成为提议的标准,但在 IETF-111 上,dnsop小组对该提议进行了更新:分钟 视频 幻灯片 1 幻灯片 2
更新以(强调我自己的)结束:
所以,在字里行间,本着无需许可的创新精神……
但说真的,在使用任何这些之前,请观看视频或至少阅读几分钟!
根据IETF 规范,真正的答案是:
当真正的具体指导自 1999 年以来一直存在时,我对所有的仇恨答案感到惊讶。
我不能说这是否总是会绕过 HSTS。这可能仍然是一个悬而未决的问题。
我不确定这会对您有所帮助,但对于我的 AWS 账户中的内部 DNS,我将
.aws
其用作 tld,它似乎工作得很好。我知道有些顶级域名您应该完全不使用,但除此之外,我认为它并不太严格。
我在几家大公司工作,他们将身份验证源用作 TLD,这意味着如果它是 MS/Windows 服务器,使用 Active Directory 作为身份验证源,它会是
.ad
,而其他一些会是.ldap
(为什么他们不是'不只是使用相同的源?还是从同一目录服务复制的服务器?我不知道,当我到达那里时就是这样)祝你好运