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::1 | IPv6网络环境下的网站、服务等。 | 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域名的顶级域名服务器。”并返回.comTLD服务器的IP地址列表。
(5) 递归解析器查询顶级域名服务器
- 递归解析器收到根服务器的响应后,会向
.comTLD服务器发起查询。 - TLD服务器知道所有在该TLD下注册的域名的 权威域名服务器 地址。
- TLD服务器会告诉递归解析器:“我不知道
www.example.com的IP,但你可以去问example.com的权威域名服务器。”并返回example.com权威服务器的IP地址列表。
(6) 递归解析器查询权威域名服务器
- 递归解析器收到TLD服务器的响应后,会向
example.com的 权威域名服务器 发起查询。 - 权威域名服务器 是真正存储
example.com及其所有子域(如www.example.com、mail.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地址缓存起来。