AWS Route53 别名值
假设在 AWS Route53 上注册了一个域名。对该域名的 HTTP 请求应由 AWS CloudFront CDN 分发提供。为了实现这一点,A
定义了一个别名记录:
dig
结果
但是dig
结果显示的是实际的 IP 地址。事实上,这些 IP 地址并不是恒定的,而是随着时间而变化的:
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION:
serverlessdaystlv.io. 60 IN A 13.32.67.21
serverlessdaystlv.io. 60 IN A 13.32.67.27
serverlessdaystlv.io. 60 IN A 13.32.67.97
serverlessdaystlv.io. 60 IN A 13.32.67.122
serverlessdaystlv.io. 60 IN A 13.32.67.141
serverlessdaystlv.io. 60 IN A 13.32.67.159
serverlessdaystlv.io. 60 IN A 13.32.67.201
serverlessdaystlv.io. 60 IN A 13.32.67.216
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION:
serverlessdaystlv.io. 60 IN A 52.222.232.13
serverlessdaystlv.io. 60 IN A 52.222.232.24
serverlessdaystlv.io. 60 IN A 52.222.232.43
serverlessdaystlv.io. 60 IN A 52.222.232.55
serverlessdaystlv.io. 60 IN A 52.222.232.63
serverlessdaystlv.io. 60 IN A 52.222.232.104
serverlessdaystlv.io. 60 IN A 52.222.232.136
serverlessdaystlv.io. 60 IN A 52.222.232.224
我的问题
什么是 Route53 别名记录?它是 DNS 记录的内置类型,还是仅仅是 CloudFront 分发的实际 IP 的内部 AWS 别名,永远不会暴露给外部?
答案1
路线 53别名记录是一个独立于 DNS 协议的概念记录类型: 例如A
是地址记录CNAME
并正典名称记录。CNAME
的作用类似于指向规范名称的别名,而A
与别名无关。(见RFC 1035。
一个别名记录是亚马逊内部特有的指针在更高级别上工作;在技术 DNS 级别上,根据情况,结果可能是A
或CNAME
。DNS 不需要知道此内部指针类型或目标,因为 Route53 仅使用结果记录进行回答。
亚马逊的一篇文章在别名记录和非别名记录之间进行选择详细解释这一点:
别名记录提供 Route 53 特定的 DNS 功能扩展。别名记录不包含 IP 地址或域名,而是包含指向 CloudFront 分配、Elastic Beanstalk 环境、ELB Classic、应用程序或网络负载均衡器、配置为静态网站的 Amazon S3 存储桶或同一托管区域中的其他 Route 53 记录的指针。当 Route 53 收到与别名记录中的名称和类型匹配的 DNS 查询时,Route 53 将跟踪指针并使用适用的值进行响应:
CloudFront 分配的备用域名– Route 53 通过使用 CloudFront 域名(例如)进行响应,就好像查询已经请求了 CloudFront 分配一样
d111111abcdef8.cloudfront.net
。Elastic Beanstalk 环境– Route 53 使用环境的一个或多个 IP 地址来响应每个请求。
ELB 负载均衡器– Route 53 使用负载均衡器的一个或多个 IP 地址来响应每个请求。
配置为静态网站的 Amazon S3 存储桶– Route 53 使用 Amazon S3 存储桶的一个 IP 地址响应每个请求。
同一托管区域中的另一条 Route 53 记录– Route 53 的响应就好像查询要求指针引用的记录一样。
这种混淆是可以理解的,因为你似乎正在添加A
IPv4 类型地址记录而目标是主机名而不是 IP 地址;您宁愿使用CNAME
!