DNS 第8章 DNS的记录类型 DNS 第8章 DNS的记录类型

2023-06-02

域名与 IP 之间的对应关系,称为"记录"(record)。

根据使用场景,"记录"可以分成不同的类型(type),前面已经看到了有 A 记录和 NS 记录。

常见的 DNS 记录类型如下。

  • (1) A:地址记录(Address),返回域名指向的IP地址。

  • (2) NS:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。

  • (3)MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。

  • (4)CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,详见下文。

  • (5)PTR:逆向查询记录(Pointer Record),只用于从IP地址查询域名,详见下文。

一般来说,为了服务的安全可靠,至少应该有两条 NS 记录,而 A 记录和 MX 记录也可以有多条,这样就提供了服务的冗余性,防止出现单点失败。

CNAME 记录主要用于域名的内部跳转,为服务器配置提供灵活性,用户感知不到。举例来说,www.baidu.com 这个域名就是一个 CNAME 记录。

dig www.baidu.com

https://file.lulublog.cn/images/3/2023/06/WMLq8BmXFpmx5Qlp5BBmX0fbrfRbU0.jpg

上面结果显示,www.baidu.com 的 CNAME 记录指向 www.a.shifen.com。

也就是说,用户查询 www.baidu.com 的时候,实际上返回的是 www.a.shifen.com 的 IP 地址。

这样的好处是,变更服务器 IP 地址的时候,只要修改 www.a.shifen.com 这个域名就可以了,用户的 www.baidu.com 域名不用修改。

由于 CNAME 记录就是一个替换,所以域名一旦设置 CNAME 记录以后,就不能再设置其他记录了(比如 A 记录和MX 记录),这是为了防止产生冲突。举例来说,foo.com 指向 bar.com,而两个域名各有自己的 MX 记录,如果两者不一致,就会产生问题。由于顶级域名通常要设置 MX 记录,所以一般不允许用户对顶级域名设置 CNAME 记录。

PTR 记录用于从 IP 地址反查域名。

dig 命令的 -x 参数用于查询 PTR 记录。

dig -x 192.30.252.153

https://file.lulublog.cn/images/3/2023/06/P9DwQtZ96H2T17HFDHffZhT2jf7N9a.jpg

上面结果显示,192.30.252.153 这台服务器的域名是lb-192-30-252-153-iad.github.com

逆向查询的一个应用,是可以防止垃圾邮件,即验证发送邮件的IP地址,是否真的有它所声称的域名。

dig 命令可以查看指定的记录类型。

dig a github.com
dig ns github.com
dig mx github.com
阅读 451