将域名从 A 记录迁移到 CNAME 非常重要

将域名从 A 记录迁移到 CNAME 非常重要

我们正在将一些网站从其他提供商迁移到 AWS。我们当前的负载均衡器在单个 IP 上可用,因此所有 DNS 条目都是使用 A 记录创建的,例如:

A example.com 192.0.2.0

您可能知道,AWS Elastic Load Balancer 已经为其负载均衡器提供了 A 记录,因此网站是使用 CNAME 记录创建的,例如:

CNAME example.com production-lb1-<numbers>.us-west-1.elb.amazonaws.com

我们将该记录的 TTL 设置为 900 秒,但我们没有看到它传播出去

dig all example.com

是否存在一些神奇的 DNS 内部机制可以阻止此类名称冲突?例如,它不想创建 CNAME,因为 A 和 CNAME 指向的是相互矛盾的信息?

那么这是否意味着我必须删除 A 记录,然后添加 CNAME?DNS 控制器是否足够智能,不会丢弃没有任何指向我的网站?也就是说,当 CNAME 尚未启动时,我真的不希望 A 名称消失。您觉得呢?

答案1

  1. 什么是TTL 的老的一个记录? 例如,如果是 43200(12 小时),旧记录将保留在全球 DNS 缓存中长达 12 小时。

    解决方案是在更改记录之前提前将旧记录的 TTL 降低到 300(5 分钟)左右。

  2. 不能域根目录中的 CNAME(又名 apex)。ieexample.com A 123.456.789.123是有效的,example.com CNAME production-lb1-...elb.amazonaws.com无效。这可能就是您的 DNS 服务器忽略该操作的原因。

    解决方案是将域迁移example.com到 AWS Route53,然后使用ALIAS A记录而不是CNAME。这样,请求将example.com返回 ELB 的实际 IP 地址,而不是 ELB 的 CNAME。这是一个细微但至关重要的区别。

    不幸的是,只有当域和负载均衡器都在 AWS 上时,ALIAS 才有效。

    看这里:为什么域名的根不能是 CNAME

希望有帮助:)

相关内容