5月29日 01:38
DNS 是什么?域名解析的递归查询和迭代查询有什么区别?
DNS(Domain Name System)是将域名映射为 IP 地址的分布式数据库系统,是互联网基础设施的核心组件。当浏览器访问域名时,解析流程为:浏览器缓存 → 系统缓存(hosts)→ 本地 DNS 服务器 → 根域名服务器 → 顶级域服务器 → 权威 DNS 服务器,逐级查询直到获得最终 IP。其中客户端到本地 DNS 是递归查询(服务器代为完成全部查询),本地 DNS 到根/TLD/权威服务器是迭代查询(每级只返回下一级地址,由本地 DNS 继续追问)。
追问
常见的 DNS 记录类型有哪些? A 记录映射域名到 IPv4,AAAA 到 IPv6,CNAME 将域名指向另一个域名(别名),MX 指定邮件服务器,NS 指定域名服务器,TXT 用于验证和配置(如 SPF、DKIM)。
TTL 在 DNS 中起什么作用? TTL(Time To Live)决定解析结果的缓存有效期。短 TTL 可加快 DNS 变更生效(如故障切换),但增加查询量;长 TTL 减少查询但变更传播慢。CDN 切换节点时需要权衡 TTL 设置。
DNS 劫持是什么?DNSSEC 如何防护? DNS 劫持是中间人篡改 DNS 响应返回恶意 IP。DNSSEC 通过对 DNS 响应数字签名验证数据来源和完整性,客户端可验证响应未被篡改。
CDN 如何利用 CNAME 实现就近访问? 用户域名 CNAME 到 CDN 域名后,CDN 的权威 DNS 根据用户 IP 返回最近的边缘节点 IP。部分服务商采用 CNAME Flattening,在权威 DNS 层直接返回 A 记录,避免 CNAME 链过长影响性能。
写段代码
bash# 常用 DNS 查询命令 dig example.com A # 查 A 记录 dig example.com CNAME # 查 CNAME nslookup example.com # 简单查询 host -t MX example.com # 查邮件记录