我有一个带有许多客户端的 AWS Route53,我想在 Bind9 中构建类似 DNS 服务器的东西,这样我就可以允许我的客户端在他们的注册器上使用相同的 DNS,然后我会通过绑定来管理这个 EC2 中的哪个 DNS 去往何处。
我想知道这是否可行,或者还有其他方法吗?我无法让我的客户指向 Route53 奇怪的委派集。这是超出我能力范围的决定。
从技术角度来说:
注册商的当前 DNS:
- 主服务器:ns-470.awsdns-58.com
- 从属 1:ns-1099.awsdns-09.org
- 从属 2:ns-1804.awsdns-33.co.uk
- 从属 3:ns-723.awsdns-26.net
我希望能够:
- 主:ns1.myappdomain.com
- 从属 1:ns2.myappdomain.com
- 从属服务器 2:ns3.myappdomain.com
- 从属 3:ns4.myappdomain.com
然后这些会通过 Bind9 在 Route53 上指向这个 EC2,但我不知道如何将连接路由到实际的名称服务器。
答案1
这个答案的原始形式是一场灾难。所有查看编辑历史的人都不要抱有希望。这是重新制作的更正确的答案。
如果我理解正确的话,您正在使用 Route 53,但不想给您的客户提供丑陋的 Amazon URL。您希望您的客户将其域的 NS 记录指向你的DNS 服务器将被赋予比 Route53 风格更具吸引力的名称。您将在 R53 中管理 DNS 记录,但随后您需要将区域复制到您的服务器,以便它们保持同步。您的评论证实了这一怀疑:
我需要证明这个概念是不正确的,因为我的老板认为为客户传递丑陋的 DNS 在某种程度上是不好的
第一的,不要将您的名称服务器 CNAME 到 Route53,然后让您的客户端将其 NS 记录指向您的 CNAME。正如您所发现的,这在某些应用程序中通常是不被允许的。
最好的办法是简单地从 Amazon 到 BIND 服务器执行区域传输。但是,在本文发布时,用亚马逊员工的话来说:
AXFR/IXFR 是我们将考虑在未来添加的功能,但目前还没有确定的计划。
如果你需要 Route 53 的区域传输,我知道的选项是 easyRoute53,以及http://romana.now.ie/route53d/(仅限 IXFR)。
在本文发布时,唯一与 Route53 集成的主要公开第三方是easyDNS 的 easyRoute53 会将 easyDNS 区域推送到 Route53 作为辅助区域,但这不是您想要做的。该解决方案意味着 easyDNS 是您的主要名称服务器,但您想使用自己的金属。
那么现在怎么办?看来你需要写一些定制中间件查询亚马逊的名称服务器以获取单个记录并更新 BIND 服务器的记录。但这毫无意义,原因有九种,但最终最大的问题是无论如何,您已经将故障点缩小到您自己的服务器,所以,除非您认为杰夫·贝佐斯需要更多钱,否则为什么还要与亚马逊打交道呢?
如果您必须拥有漂亮的名称服务器,则只需使用自己的金属并管理自己的 DNS 服务堆栈,或者转移到其他 DNS 服务,该服务可为您提供白标 DNS 管理的能力并使用自己的虚荣名称服务器。我不会列出任何可以这样做的服务,因为它们会过时。目前,使用 Route53 执行您想要做的事情没有任何优势,尝试使其工作只会带来缺点和停机时间。
答案2
这是可能的,但令人惊讶的是没有人对此发表文章,甚至亚马逊也没有对其进行足够的记录。
答案3
这很容易做到:
- 在 AWS 中,创建一个托管区域。
- 获取每个名称服务器的 IP(挖掘 ns-1954.awsdns-52.co.uk -> 5.5.5.5)
- 在您的注册商处创建/注册 4 个名称服务器
- 每个域名都应指向 aws ip (ns1.example.com -> 5.5.5.5)
- 接下来更改域本身指向的名称服务器。使用新的服务器(ns1.example.com 等)
- 在 AWS 中,编辑 NS 记录集。删除 4 个 aws 名称服务器并放入您的名称服务器(ns1.example.com 等)