如何在路由53上配置DNS以允许内部IP解析并避免CNAME/TXT冲突

如何在路由53上配置DNS以允许内部IP解析并避免CNAME/TXT冲突,dns,amazon-route53,Dns,Amazon Route53,我们在AWS VPC上有几个服务器,但都有一个通过DNS的“公共”面孔,通过Route53处理。问题是,当一台服务器通过DNS查找另一台服务器的地址时,如果条目是“A”记录,它将获得公共IP,而不是AWS“专用”IP,并且传输将通过外部网络地址进行 另一方面,如果我将域配置为指向AWS公共DNS名称的CNAME,如下所示: CNAME super.domain.com ec2-1-2-3-4.compute-1.amazonaws.com 然后从VPC的“外部”查找得到真实的外部IP地址,

我们在AWS VPC上有几个服务器,但都有一个通过DNS的“公共”面孔,通过Route53处理。问题是,当一台服务器通过DNS查找另一台服务器的地址时,如果条目是“A”记录,它将获得公共IP,而不是AWS“专用”IP,并且传输将通过外部网络地址进行

另一方面,如果我将域配置为指向AWS公共DNS名称的CNAME,如下所示:

CNAME  super.domain.com  ec2-1-2-3-4.compute-1.amazonaws.com
然后从VPC的“外部”查找得到真实的外部IP地址,“内部”查找得到本地
10.x.x.x
地址。这正是我想要的。现在问题来了,这些服务器需要发送邮件,几乎每个人(mailgun、mandrill等)都需要SPF和DKIM记录。但你不能把这些TXT记录和CNAME混在一起

我知道我可以使用服务器上的
/etc/hosts
文件来抢先DNS查找并使用A记录,但现在有14台服务器,而且在不断增长,每次重新启动其中一台服务器时,我都必须更新所有的主机文件,这似乎是一个搞糟事情的方法

我的问题是:有没有办法设置AWS Route53,这样我就可以利用亚马逊公共DNS名称的自动内部/外部解析,并仍然提供有效的SPF和DKIM记录?我在AWS论坛上问过这个问题,但没有得到任何帮助


Mailgun可能是最接近的,因为您可以为SPK/DKIM记录使用子域(例如
mg.super.domain.com
),这样就不会与CNAME记录冲突。但随后您遇到了问题,解决方案似乎是A记录,当实例IP地址更改时,我又不得不维护许多记录了

这是一个有趣的问题,我有理由相信没有解决办法。(至少在CNAME/TXT混合版上是这样)-有可能拥有super.subdomain.domain.com吗?我在周末考虑过之后得出了同样的结论。从我在我链接的另一篇文章中读到的内容来看,添加更多的子域只会将问题向下推。至少您可以在那里使用A记录来接收邮件服务器不反弹邮件,因为这不会像CNAME那样冲突。它稍微好一点,因为至少我得到了顶级域名的AWS内部/外部分辨率。但是每次服务器重新启动时,我仍然需要四处查看并更新IP地址,这是我真正想要避免的。您是否可以配置一个私有的VPC托管区域,并在您的服务器之间内部使用这些私有R53域,而在外部使用公共R53记录?只需将.internal或其他内容添加到您的域中。Public:server1.domain.com Private:server1.domain.internal我想在内部和外部使用不同的名称将是解决方案的一部分,尽管这并不能解决让AWS只做正确事情的原始问题:)。我认为我们只是生活在使用机器之间的外部访问,或者配置内部软件以使用本地IP,在那里有大量的传输。