我有一个 RDS 实例正在运行,并且可以访问 Internet。
我希望 VPC 中的实例在内部而不是通过互联网连接到它。
根据另一个问题(https://stackoverflow.com/questions/21089582/amazon-rds-endpoint-internal),如果从 VPC 内部查询,主机连接字符串应映射到内部 IP。这不起作用,无论如何我都会获得外部IP。
- 我只有一个 VPC,所以没有使用对等互连。
- 我确实设置了自定义 DHCP 选项,这可能是我的问题所在。
我的 VPC 的 DHCP 选项集是
domain-name = mysite.local;domain-name-servers = 10.10.51.254;
由于我的自定义 DHCP 选项集,我有一种感觉,这是它坏掉的地方。mysite.local
是本地域,并且10.10.51.254
是本地绑定服务器(不使用 Route53)。
我是否需要在我的 DNS 服务器中配置某种正向查找,us-east-1.rds.amazonaws.com
或者我在某处缺少某些配置?我认为这应该是 VPC 中的“自动”,所以我想我错了。
所以这里的问题确实是我使用的是私有 DNS 服务器,而不是亚马逊提供的 DNS。没有任何“来自亚马逊的自动 VPC 魔法”可以帮助这些 AWS 服务进行域查找(我有点错误地假设了)
如果 VPC 具有
DNS resolution
并DNS hostnames
设置为,YES
那么您可以在 VPC CIDR 块 +2 的基地址处查找 VPC 的 DNS 服务器(因此,如果您的 VPC 是10.10.0.0/16
,则 DNS 查找地址为10.10.0.2
)-我发现这是关闭的我在查找时随机发布了一些博客文章,不确定它是否在官方文档中,因为我通过 Amazon 文档进行的所有 DNS 搜索都充斥着 Route 53 的内容。所以现在我们有了一个有效的 DNS 正向查找,我们需要做的就是在绑定服务器中添加转发查找。这里的问题是 RDS 实例的主机名实际上是 CNAME 查找。
例如:
查找实际上是到 a 的 CNAME 记录,
compute-1.amazonaws.com
因此两者都需要转发规则。TL;DR:鉴于我的 VPC 的 CIDR 是
10.10.0.0/16
,这里是解决我的问题并回答了这个问题的示例转发块:现在本地 VPC 中的所有服务都可以查找 RDS 实例的私有 IP,公共解析也仍然可以在 VPC 外部进行。