我们公司拥有该域名example.com
。我们有一个合作伙伴,我们想将子域名委托给他sub.example.com
。他们想使用亚马逊的 Route53 DNS 服务来管理这个区域。
我认为AWS 文档:
sub.example.com
我们的合作伙伴必须创建一个名为Route53 的DNS 区域。- 然后,我们必须将子域的 NS 记录更新
sub.example.com
到我们合作伙伴的 DNS 服务名称服务器。
好了,子域名已委托。
此过程意味着,在 Route53 中创建 DNS 区域会将该区域“注册”在 Route53 的一个(或多个)名称服务器中,无论该域的 NS 记录是否实际指向这些名称服务器(因为该区域是创建的前NS 记录)。
现在,假设亚马逊的 Route53 DNS 服务只有 1 个名称服务器(以下推理可以轻松扩展到 N 个名称服务器)。如果另一家公司已经创建了自己的sub.example.com
区域,当我的合作伙伴尝试为自己声明 DNS 区域时会发生什么前他?
当然,DNS区域不能在两家公司之间共享!那么Route53如何降低恶意公司抢注DNS区域的风险并阻止其他人创建自己的DNS区域呢?
答案1
正是您上面描述的 NS 代表团保护您免受虐待。
如果我是 DNS 客户端并且想要查找 xxx.sub.example.com,那么原则上我会执行以下操作:
- 我检查了我配置的根名称服务器列表;
- 我向其中一个根名称服务器请求 .com 的名称服务器;
- 我向 .com 服务器请求 example.com 的名称服务器;
- 我向 example.com 名称服务器询问 sub.example.com 的名称服务器;
- 然后我要求该名称服务器解析xxx.sub.example.com。
因此,我可以构建一个邪恶的名称服务器,为 sub.example.com 域提供错误的答案,但步骤 4(由您控制)意味着没有真正的客户端会打电话给我。(这不是 Route53 特有的;只是 DNS 的工作原理)
答案2
经过进一步调查,我发现并非所有 DNS 服务都以相同的方式处理 DNS 区域冲突。
OVH 会阻止客户创建另一个客户已在其名称服务器中声明的 DNS 区域。任何 OVH 客户都可能滥用此功能,因为他们可以创建 DNS 区域并阻止任何其他 OVH 客户稍后声明同一区域。
Amazon Route53 拥有多个名称服务器,因此他们可以保证不同客户创建的两个相同 DNS 区域不会在同一个名称服务器中声明。这可以通过为他们拥有的每个名称服务器组创建 1 个 AWS 账户,并在每个账户中声明区域来以同样的方式被滥用,从而“填满”所有名称服务器并阻止其他 AWS 账户创建相同的区域。尽管这可能很难设置,具体取决于 AWS 拥有的名称服务器的数量。
我不确定目前是否有标准方法可以防止此类滥用。我能想到的 DNS 服务的唯一解决方法是在创建新区域时将客户 ID 包含在名称服务器域中,这样不同的客户在创建同一区域时就不会引起冲突。这看起来不像是 DNS 服务实际会做的事情。