DNS解析

107 阅读6分钟

DNS | 解析记录

公司官网WordPress的服务器托管在Siteground平台上, 域名与域名解析是在阿里云上.
现在想要优化全球的访问速度, 就打算用一下CDN. 刚好Siteground有提供CDN服务, 就直接开了, 没想到, Siteground的CDN服务没有将MX的记录迁移过来, 貌似只迁移了A记录. 导致所有的邮件都被拒接了.

1. DNS

DNS,即 Domain Name System(域名系统) ,是互联网核心基础设施的关键组件,负责将人类可读的域名(如 www.example.com)解析为机器可识别的IP地址(IPv4或IPv6).

2. DNS解析记录

常用的解析, 扫一眼就可以了.

记录类型作用/功能典型值/格式使用场景注意事项
A将域名映射到 IPv4 地址。example.com. IN A 192.0.2.1网站、邮件服务器、API服务等所有需要IPv4地址的资源。最基础的记录类型。一个域名可以有多个A记录(实现负载均衡)。
AAAA将域名映射到 IPv6 地址。example.com. IN AAAA 2001:0db8::1IPv6网络环境下的网站、服务等。IPv6版本的A记录。
CNAME将一个域名(别名)映射到另一个域名(规范名)。www.example.com. IN CNAME example.com.1. 将www子域指向主域。
2. CDN服务集成。
3. 多个服务指向同一个主机。
1. 不能与同名的其他记录共存(除了DNSSEC相关记录)。
2. 根域名(@example.com)通常不建议使用CNAME,因为它会阻止MX、NS等其他记录的存在。
MX指定负责接收该域名邮件的邮件服务器。example.com. IN MX 10 mail.example.com.
example.com. IN MX 20 backupmail.example.com.
电子邮件服务(如Gmail, Outlook等)。1. 值必须是域名,不能是IP地址。
2. 包含优先级(数字越小优先级越高),用于指定邮件投递顺序。
NS指定负责解析该域名或子域的权威名称服务器。example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
域名委托管理,将子域的解析权交给其他DNS服务器。1. 一个域名通常至少需要两个NS记录以提供冗余。
2. 通常在域名注册商处配置,而非DNS服务商。
TXT存储任意文本信息。example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
1. SPF (Sender Policy Framework) 记录,用于邮件反垃圾。
2. DKIM (DomainKeys Identified Mail) 记录,用于邮件签名验证。
3. DMARC (Domain-based Message Authentication, Reporting & Conformance) 记录,用于邮件认证策略。
4. 域名所有权验证(如Google Search Console)。
极其灵活,常用于各种验证和策略配置。内容必须用双引号括起来。
SRV指定特定服务的主机名和端口号。_sip._tcp.example.com. IN SRV 10 0 5060 sip.example.com.1. VoIP (SIP) 服务。
2. XMPP (Jabber) 服务。
3. LDAP 服务。
4. Microsoft Lync/Skype for Business 等。
格式为:优先级 权重 端口 目标主机名。允许客户端自动发现服务。
PTR将IP地址映射到域名(反向DNS解析)。1.2.0.192.in-addr.arpa. IN PTR host.example.com. (对应IP 192.0.2.1)1. 邮件服务器反垃圾验证。
2. 日志记录和网络故障排除。
3. 安全审计。
通常由IP地址的拥有者(ISP或数据中心)配置,而不是域名所有者。
CAA证书颁发机构授权(Certificate Authority Authorization),限制哪些CA可以为该域名颁发SSL/TLS证书。example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "sectigo.com"
增强域名SSL/TLS证书的安全性,防止未经授权的CA颁发证书。1. 允许指定特定CA。
2. issuewild用于通配符证书。
3. iodef用于报告违规行为。

其中需要注意的是,NS记录是在域名注册商那里配置之后, 然后提交存储到根域名服务器 和 顶级域名服务器. 其他记录存储在权威域名服务器中. (可以先看下面的流程再回来看这里)

在使用CDN时, 需要把DNS也交由同一个服务商, 也是是修改NameServer, 因为只有当该服务商域名的权威DNS服务器时,它才能控制这些DNS解析,从而将流量引导到其CDN网络。

3. 域名解析流程

(1) 用户发起DNS请求

(2) 查询本地DNS缓存

(3) 查询 递归DNS解析器

这通常是您的ISP(互联网服务提供商)提供的DNS服务器,或者您手动配置的公共DNS服务器(如Google Public DNS 8.8.8.8、Cloudflare DNS 1.1.1.1)。

(4) 递归解析器查询根域名服务器

  • 如果递归解析器也没有该域名的缓存,它会向全球 13组根域名服务器 中的一个发起查询。
  • 根域名服务器不存储具体域名的IP地址,但它知道所有 顶级域名 (TLD)  的权威服务器地址。
  • 根服务器会告诉递归解析器:“我不知道 www.example.com 的IP,但你可以去问 .com 域名的顶级域名服务器。”并返回 .com TLD服务器的IP地址列表。

(5) 递归解析器查询顶级域名服务器

  • 递归解析器收到根服务器的响应后,会向 .com TLD服务器发起查询。
  • TLD服务器知道所有在该TLD下注册的域名的 权威域名服务器 地址。
  • TLD服务器会告诉递归解析器:“我不知道 www.example.com 的IP,但你可以去问 example.com 的权威域名服务器。”并返回 example.com 权威服务器的IP地址列表。

(6) 递归解析器查询权威域名服务器

  • 递归解析器收到TLD服务器的响应后,会向 example.com 的 权威域名服务器 发起查询。
  • 权威域名服务器 是真正存储 example.com 及其所有子域(如 www.example.commail.example.com)DNS记录(A, AAAA, CNAME, MX, TXT等)的服务器。
  • 权威服务器会查找 www.example.com 对应的A记录(或AAAA记录),并返回其IP地址。

(7) 返回IP地址并缓存

  • 权威服务器将 www.example.com 的IP地址(例如 192.0.2.1)返回给递归解析器。
  • 递归解析器会将这个IP地址缓存起来,并设置一个 TTL (Time To Live)  值。在TTL过期之前,所有后续对 www.example.com 的查询都可以直接从其缓存中获取,无需重复上述步骤。
  • 递归解析器将IP地址返回给最初发起请求的客户端操作系统。
  • 客户端操作系统也会将这个IP地址缓存起来(同样遵循TTL)。
  • 客户端浏览器也会将这个IP地址缓存起来。

一些好用的工具

刷新GoogleDNS缓存
刷新Cloudflare缓存
查询全球DNS记录