什么是 DNS?
DNS(域名系统)为我们提供了一种与互联网上的设备进行通信的简单方法,而无需记住复数。就像每个房子都有一个唯一的地址来直接向它发送邮件一样,互联网上的每台计算机都有自己唯一的地址来与之通信,称为 IP 地址。IP 地址如下所示:104.26.10.229,4 组数字,范围从 0 到 255,用句点分隔。 当我们想访问一个网站时,记住这组复杂的数字并不完全方便,而这正是 DNS 可以提供帮助的地方。
域层次结构
TLD(顶级域名)
TLD是域名最右边的部分。例如:Google.com ,则TLD: .com。TLD 有两种类型,gTLD(通用顶级)和 ccTLD(国家代码顶级域名)。从历史上看,gTLD旨在告诉用户域名的目的,例如:.com用于商业目的,.org用于组织,.edu用于教育,.gov用于政府。ccTLD 用于地理目的,例如,.ca 用于加拿大网站,.co.uk 用于英国网站等。由于这种需求,大量新 gTLD 涌入,包括 .online、.club、.website、.biz 等。
二级域名
以 myon.com 为例,.com部分是TLD,myon是二级域名。注册域名时,二级域名限制为63个字符+TLD,只能使用a-z 0-9和连字符(不能以连字符开头或结尾,也不能有连续的连字符)。
子域
子域位于二级域的左侧,使用句点将其分隔;例如:在名称 admin.myon.com,管理部分是子域。子域名的创建限制与二级域名相同,限制为 63 个字符,并且只能使用 a-z 0-9 和连字符(不能以连字符开头或结尾,也不能有连续的连字符)。 可以使用多个用句点拆分的子域来创建更长的名称,例如 jupiter.servers.myon.com,但长度必须保持在 253 个字符或更少,可以为域名创建的子域数量没有限制。
DNS 记录类型
DNS解析不仅适用于网站,并且存在多种类型的DNS记录。
记录
这些记录解析为 IPv4 地址,例如 104.26.10.229
AAAA 记录
这些记录解析为 IPv6 地址,例如 2606:4700:20::681a:be5
CNAME 记录
这些 记录解析为另一个域名,例如,Myon 的在线商店的子域名 store.myon.com 返回 CNAME 记录 shops.shopify.com。然后,另一个 DNS 请求将 shops.shopify.com 计算出 IP 地址。
MX 记录
这些记录解析为处理电子邮件的服务器的地址,正在查询的域,例如 MX 记录响应 myon.com 看起来有点像 alt1.aspmx.l.google.com。 这些记录还带有优先级标志。这告诉客户端哪个顺序尝试服务器,这非常适合如果主服务器出现故障,需要将电子邮件发送到备份服务器。
TXT 记录
.TXT 记录是自由文本字段,可以在其中存储任何基于文本的数据。 TXT 记录有多种用途,但一些常见的用途可以是列出 有权代表域发送电子邮件的服务器 (这可以帮助打击垃圾邮件和欺骗性电子邮件)。他们 也可用于在注册时验证域名的所有权 用于第三方服务。
发出 DNS 请求时会发生什么情况
-
当请求域名时,计算机首先会检查其本地缓存,以查看最近是否查找过该地址;如果没有,将向递归 DNS 服务器发出请求。
-
递归DNS服务器通常由ISP提供,但也可以选择自己的服务器。该服务器还具有最近查找的域名的本地缓存。如果在本地找到结果,则会将其发送回计算机,请求到此结束(这对于 Google、Facebook、Twitter 等流行且请求量很大的服务很常见)。如果在本地找不到请求,则从互联网的根 DNS 服务器开始寻找正确答案的旅程。
-
根服务器充当互联网的 DNS 骨干;他们的工作是根据请求重定向到正确的顶级域服务器。例如,如果请求 www.myon.com,根服务器将识别.com顶级域,并引荐到处理.com地址的正确 TLD 服务器。
-
TLD 服务器保存在何处查找权威服务器以应答 DNS 请求的记录。权威服务器通常也称为域的名称服务器。例如myon.com 的名称服务器是 kip.ns.cloudflare.com 和 http://uma.ns.cloudflare.com/。通常会发现一个域名的多个名称服务器作为备份,以防一个域名出现故障。
-
权威 DNS 服务器是负责存储特定域名的 DNS 记录的服务器,并将在其中对域名 DNS 记录进行任何更新。根据记录类型,DNS 记录随后被发送回递归 DNS 服务器,其中将缓存本地副本以供将来的请求使用,然后中继回发出请求的原始客户端。所有 DNS 记录都带有 TTL(生存时间)值。此值是一个以秒为单位的数字,应在本地保存响应,直到必须再次查找它。缓存节省了每次与服务器通信时发出 DNS 请求的麻烦。
我们可以构建请求以进行 DNS 查询并查看结果: