使用 Amazon Route53 的白标 DNS

Kik*_*nev 4 domain-name-system amazon-ec2 amazon-web-services amazon-route53

我在互联网上搜索了答案,但找不到,这是因为 DNS 管理并不完全符合我的技能。我想使用 Amazon AWS Route53 来托管带有负载均衡器和 ec2 实例的多租户 php 应用程序。我目前将我的域 example.com 转发到 route53 并驻留在托管区域中。这部分工作正常,域 example.com 指向正确的实例。但是我想创建子域

ns1.example.com 和 ns2.example.com

这样我就可以将它们用作其他域的名称服务器。假设我想通过将 mydomain2.com 的名称服务器更改为 ns1.example.com 和 ns2.example.com 将 mydomain2.com 转发到负载均衡器。但是,我不确定如何添加子域 ns1 和 ns2 并将它们指向亚马逊 Route53 gui 控制台中的 LB。

我将不胜感激任何帮助。

Neo*_*Neo 10

我已经这样做了,请在实际执行此操作之前阅读我的文章:

http://neonos.net/white-labeled-dns-name-servers-on-amazon-route-53-with-delegation-sets/

该功能已由亚马逊于 2014 年 11 月编程,但尚未在基于 Web 的控制台中实现,希望他们能尽快实现。我也找不到有关此主题的文档或任何文章。但是我可以通过使用AWS CLI Client来做到这一点,如下所示:

使用 CLI 客户端创建您的委托集

aws route53 create-reusable-delegation-set  --caller-reference MyDelegationSet
Run Code Online (Sandbox Code Playgroud)

这将返回诸如:

{
    "Location": "https://route53.amazonaws.com/2015-01-01/delegationset/xxx",
    "DelegationSet": {
        "NameServers": [
            "ns-xxx.awsdns-xx.com",
            "ns-xxx.awsdns-xx.co.uk",
            "ns-xxx.awsdns-xx.org",
            "ns-xxx.awsdns-xx.net"
        ],
        "CallerReference": "MyDelegationSet",
        "Id": "/delegationset/XXXXXXXXXX"
    }
}
Run Code Online (Sandbox Code Playgroud)

创建可重用委托集后,您将需要使用 CLI 客户端创建托管区域,这将允许您将新区域与上面创建的委托集相关联。

aws route53  create-hosted-zone --delegation-set-id /delegationset/XXXXXXXX --name mydomain.tld --caller-reference UNIQUEREFERENCEID
Run Code Online (Sandbox Code Playgroud)

使用输出中找到的名称服务器列表,ping 每个服务器以获取 IP 地址。使用 IP 地址在父区域中创建粘合记录(使用 A 记录)。我建议使用较短的 TTL,以防亚马逊通知 dns 区域的 IP 更改。我打电话给我的 route531.mydomain.com、route532...等。

现在在注册商处更新您的域名服务器,然后更新您的 Route53 以将这些域名服务器也包括为权威域名服务器。


更多信息:

亚马逊声称这可以在没有任何进一步参考的情况下对这些名称服务器进行白标。

“此功能还使您可以创建“白标”名称服务器地址,例如 ns1.example.com、ns2.example.com 等,您可以将这些地址指向您的 Route 53 名称服务器。然后您可以使用您的“白标”名称服务器地址作为您需要的多个域名的权威名称服务器。” --SeanM@AWS

https://forums.aws.amazon.com/ann.jspa?annID=2733


问题是亚马逊还说他们不能保证域名服务器的 IP 不会改变。

https://forums.aws.amazon.com/thread.jspa?messageID=474708

“我们承诺您的 Route 53 域名服务器的 DNS 名称不会改变,但我们无法对它们的 IP 地址做出同样的保证。如果将来它们发生变化,如果您在这种不受支持的方式。” -- DavidR@AWS 2011 年 1 月 25 日

在你吓坏之前,这可能会帮助你感觉更好:

一些注册商只允许您使用 IP 地址指定名称服务器;它们不允许您指定完全限定的域名。如果您的注册商要求使用 IP 地址,您可以使用 dig 实用程序(适用于 Mac、Unix 或 Linux)或 nslookup 实用程序(适用于 Windows)获取名称服务器的 IP 地址。我们很少更改名称服务器的 IP 地址;如果我们需要更改 IP 地址,我们会提前通知您。 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html

请记住,使用您自己的域为每个名称服务器创建 CNAME 记录是一个坏主意,尽管这在理论上可以解决 IP 问题的更改,但它是一个坏主意:

指向 CNAME 的 NS 记录是错误的,并且可能与当前的 BIND 服务器发生严重冲突。事实上,当前的 BIND 实现会忽略这些记录,可能会导致一个蹩脚的委托。BIND 中进行了一定数量的安全检查,以防止欺骗 DNS NS 记录。此外,据报道,较旧的 BIND 服务器将陷入无限查询循环中,试图找出别名名称服务器的地址,从而导致发送连续的 DNS 请求流。--RFC1912

http://www.faqs.org/rfcs/rfc1912.html