我开始了解 VPC,但没有看到一个好的内部 DNS 解决方案。例如,我们使用 VPC 中的其他服务器连接到的非 RDS 数据库服务器。我想通过名称而不是 IP 进行连接。部分原因是这样我可以获得内部 10.xxx 地址,这可能更快。最重要的是,它使配置更容易、更清晰、更灵活。
在过去(大约 2008 年),在 VPC 之前,我有一个运行 MaraDNS 的服务器,我们会在启动和更改实例时更新它,这很麻烦,特别是因为服务器在重新启动时会获得自己的 DHCP 分配的内部地址,而且这是另一件需要处理的事情。我的一些运行不同系统的同事认为我做这些努力是个白痴——他们只是更新了 /etc/hosts 文件(这很好,直到发生中断,他们的所有服务器都恢复了新的 IP)。
我是否应该查看 Route53(我们在那里执行所有公共 DNS)或者我是否遗漏了什么?
更新:2017 年——内部 DNS 现在是 Route 53 的一项功能。哇哦!
答案1
实例在启动时应通过 DDNS 将其 DNS 名称注册到您的 DNS 服务器(作为其公共 AWS 分配的 FQDN 的 CNAME);这样,无论您身在何处,您都可以通过众所周知的名称引用它们并获取最合适的地址(内部或外部)。Route53 可能内置了这种神奇的功能,但我更喜欢尽可能独立于提供商的解决方案。
答案2
从 AWS VPC 来看文档利用 AWS VPC 内部的 DNS 服务器的推荐方法是首先创建一个DHCP 选项设置并将其与 VPC 关联。然后您可以在该 VPC 中建立 1-4 个 DNS 服务器。此外,DHCP 选项集将允许您为所有包含的 VPC 实例设置以下内容。(摘自文档)
DHCP Option Name | Description
domain-name | A domain name of your choice (for example, example.com).
domain-name-servers | The IP address of a domain name server.
ntp-servers | The IP address of a Network Time Protocol (NTP) server.
netbios-name-servers | The IP address of a NetBIOS name server.
netbios-node-type | The NetBIOS node type (1, 2, 4, or 8).
答案3
不会像阿瓦希能用吗?它甚至已安装并很好地打包到大多数 Linux 发行版中。只需为每个需要访问的实例指定一个唯一的主机名,一切就都搞定了。