SEO 百科

DNS

本页目录

DNS

DNS 是域名系统,一套分布在全球、把域名和 IP 地址互相翻译的数据库与规则。ICANN 对它给的定位是帮人在互联网上找到方向:每台机器都有一个由数字组成的 IP 地址,这串数字难记,于是 DNS 让人用熟悉的字母名称来代替它[2]。站长改解析、加记录、换服务器、验证站点归属,动的都是 DNS。这一篇讲它站在记录之上那一层的结构,一次查询具体怎么走放在条目 DNS 解析 里。

分层与委派

域名按点分成若干层,每一层都能把管理权交给下一个人。ICANN 用 whois.icann.org 举例,org 是顶级,icann 是二级,whois 是三级,并说明在每一个点上,创建、编辑、删除下层名称的权力都可以委派给别的机构[2]。注册一个域名,等于在域名系统里开出自己的一个分支,自己就成了这个分支的授权方。

这种一层压一层的委派,决定了改设置要去哪个地方改:顶级由注册局管,自己域名的记录由自己指定的权威服务器管。

权威服务器与解析器

RFC 1035 把参与 DNS 的角色分成两类。一类是权威名称服务器,它保管一个叫 zone(区域)的数据集,这个区域是域名树里被裁出来的一棵子树,装着这棵子树的完整数据,里面的数据被称作 authoritative(权威的)[1]。另一类是解析器,它替发问的程序去查询和缓存,某台服务器失联时再转去问别处的副本[1]。

站长能直接改的是自己区域里的记录,位置在权威服务器这一层。权威服务器把这份区域数据对外发布,全球解析器查询它、把答案按 TTL 缓存一段时间[1]。缓存的机制、迁移前为什么要先把 TTL 调小,见条目 TTL。

记录类型的分类

一个区域里放着很多条记录,每条记录回答一个不同类型的问题。RFC 1035 给每种记录定了一个类型编号,下表按功能把常用几类归一归[1]。

功能大类 回答什么问题 代表记录
地址类 这个域名对应哪个 IP 地址 A、AAAA
别名类 这个名称是不是另一个名称的别名 CNAME
委派与区域类 由哪台服务器负责、区域从哪里开始 NS、SOA
邮件类 发往这个域名的邮件投递到哪台服务器 MX
文本与策略类 存一段文本,用于验证与发送授权 TXT

A 在 RFC 1035 里编号 1,指向一台主机地址;NS 编号 2,标明权威名称服务器;CNAME 编号 5,是某个别名的规范名称;SOA 编号 6,标志一个授权区域的开始;MX 编号 15,负责邮件交换;TXT 编号 16,存文本字符串[1]。AAAA 是为 IPv6 补上的同类记录,出现得比前几类晚。每一类怎么用、填什么值,各自成篇,见 A 记录、CNAME、MX、TXT 与 SPF 这几条。

和抓取的关系

解析排在抓取前面,这一步出错,后面都无从谈起。百度把搜索引擎的工作概括成三步,从互联网抓取网页、建立索引数据库、把索引库中的数据展现给用户[3]。域名解析不通,爬虫连站点的 IP 都拿不到,抓取这一步就断了。

Google 说得更具体:网络超时、连接重置和 DNS 错误,它按和 5xx 服务器错误类似的方式处理,抓取会立刻放慢,收不到内容就无法索引,已收录的网址会在几天内被移出索引[4]。而排查 DNS 错误时,最常见的原因就是配置写错[4]。核对的思路是顺着记录一层层查下去:

# 看这个域名的权威 NS 指向哪几台服务器
dig +nocmd example.com ns +noall +answer
# 看 A 记录解析到的 IP 对不对
dig +nocmd example.com a +noall +answer
# 看 www 的 CNAME 指向哪个主机名
dig +nocmd www.example.com cname +noall +answer

改过解析不到 72 小时的,还要等变更在全球 DNS 网络里传开[4]。选谁来做权威服务器、在哪改这些设置,见条目 解析商。

附录

参见

参考资料

官方(境外)

  1. 《RFC 1035 : STD 13 : Domain names - implementation and specification》,IETF。
  2. 《About Domain Names》,ICANN。
  3. 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
  4. 《调试 Google 抓取工具的网络连接错误和 DNS 错误》,Google 搜索中心。

外部链接

无。