![我可以只使用 A 记录吗?CNAME 记录实际上能带来什么?](https://linux22.com/image/752998/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%8F%AA%E4%BD%BF%E7%94%A8%20A%20%E8%AE%B0%E5%BD%95%E5%90%97%EF%BC%9FCNAME%20%E8%AE%B0%E5%BD%95%E5%AE%9E%E9%99%85%E4%B8%8A%E8%83%BD%E5%B8%A6%E6%9D%A5%E4%BB%80%E4%B9%88%EF%BC%9F.png)
所以我理解 A 记录指向 IP,而 CNAME 记录只是指向其他 A/CNAME 记录的指针。仅使用 A 记录有什么缺点。CNAME 记录只是为了方便和组织吗?例如,5 个子域使用 A 记录指向同一个 IP,而不是使用 CNAME 指向主域。
答案1
如果您有控制权,A 记录会更好 - 解决速度更快且易于理解。
CNAMES 填补了您指向无法完全控制的资源的空白。
值得注意的是,CNAME 并非“记录只是指向其他 A/CNAME 记录的指针”——尽管这种误解很常见,而且它们的行为通常也类似,但这种误解会带来意想不到的后果。CNAME 代表规范名称——它将自身及其左侧的所有内容映射到另一个域。因此,如果您在同一级别拥有 MX 记录和 CNAME 记录,则 MX 记录将被忽略。
答案2
通常我推荐的 DNS 设置是给主机名 A 记录和服务名 CNAME 记录,假设您有一个 domain.com 域,从那里您有 host01 ~ host99 服务器和 www 或 mongodb 服务名称。
首先,最好将 mongodb 客户端设置为通过以下方式连接mongodb.domain.com,如果你需要切换 mongodb 的主机host31.domain.com到host45.domain.com你不需要 IP调包,只需更新您的 DNS 就可以了。
现在,如果mongodb.domain.com指向与以下相同的 IP 地址:host45.domain.com有一天你必须搬家主机45从达拉斯到里约热内卢,因此需要一个新的 IP 地址,您必须更新所有不相关的主机名(mongodb.domain.com,rabbitmq.domain.com,主-mdb.domain.com,rs1-mdb.domain.com等)以反映 IP 同时更改host45.domain.com,这必定会在一周后被遗忘,并成为一个 IT 事件。
另一方面,如果你放置mongodb.domain.com CNAME host45.domain.com你需要做的就是更新主机45的记录,其他一切将效仿。
正如@davidgo 指出的那样,不拥有 SOA 的主机也可能会更改其 IP,因此 google.domain.com 应该CNAME www.google.com代替172.217.28.4。
这就是我所做的,希望能帮助你们简化 IT 管理。