CNAME DNS 委派

CNAME DNS 委派

只是想确认/纠正我对 CNAME 委托工作原理的理解

如果我的 DNS 中有一个 CNAME cdn.example.com 指向第三方 CNAME cdn.thirdparty.com,那么该第三方是否可以在其 DNS 中注册一个类似于 test.cdn.thirdparty.com 的 A 记录?

即,如果他们的名称服务器现在实际上负责解析 cdn.thirdparty.com,他们是否可以注册二级子域名?还是只能为 cdn.thirdparry.com 注册 A 记录?

谢谢

答案1

CNAME 不是“委托”。顾名思义,它是一个通用名称,因此由a.example.com CNAME b.example.org您定义别名并说“a.example.com是通常称为”的资源的别名b.example.org。没有发生“子域解析”或其他任何事情;b.a.example.com是完全不同的名称,除非您也将其添加为 CNAME,否则a.example.com它不会像以前一样解析。b.b.example.org

但是,CNAME 不仅会将别名的 A 记录解析重定向到通用名称,还会将任何类型的记录重定向。它只是重定向所有解析,说“无论您想从别名获得什么,都询问通用名称并应用于别名”。

您可以添加多个这样的“子域”别名或其他任何内容,它们将同时起作用:

# nsupdate -l
> update add a.example.com 10 CNAME google.com
> update add b.a.example.com 10 CNAME microsoft.com
> update add c.a.example.com 10 A 192.0.2.222
> send
> quit
...
$ host a.example.com
a.example.com is an alias for google.com.
google.com has address 142.250.150.138
google.com has IPv6 address 2a00:1450:4010:c1c::65
google.com mail is handled by 10 smtp.google.com.
...
(all the rest google.com DNS entries)
$ host b.a.example.com
b.a.example.com is an alias for microsoft.com.
microsoft.com has address 20.70.246.20
microsoft.com has IPv6 address 2603:1030:b:3::152
microsoft.com mail is handled by 10 microsoft-com.mail.protection.outlook.com.
...
(all the rest microsoft.com DNS entries)
$ host c.a.example.com
c.a.example.com has address 192.0.2.222
$ host -t txt b.a.example.com
b.a.example.com is an alias for microsoft.com.
microsoft.com descriptive text "google-site-verification=uFg3wr5PWsK8lV029RoXXBBUW0_E6qf1WEWVHhetkOY"
...
(all the rest microsoft.com TXT records; there are many!)
$ host d.a.example.com
Host d.a.example.com. not found: 3(NXDOMAIN)

在此示例中,我添加了这些记录,其中两个是 CNAME,然后尝试解析它们。如您所见,TXT 和 MX 记录解析也发生在 CNAME 下,而不仅仅是 A 和 AAAA。(我实际上进行了这些测试以获得真实的输出。)您还会看到最后一次检查没有解析(不是 asd.google.com或任何其他)——我没有添加它,它根本不存在。

相关内容