DNS 揭秘💪
DNS是域名系统 (Domain Name System) 的缩写 。由于 DNS 的选项/功能众多,很容易让人混淆。让我们一起揭开 DNS 的神秘面纱!
目录
- 什么是 DNS?
- DNS 如何工作?
- 什么是 DNS 缓存?
- DNS 记录
- 常问问题
什么是 DNS?
DNS 将主机名(example.com)转换为 IP 地址(93.184.216.34)
当您的计算机连接到互联网时,它会获得一个唯一的数字,用于在互联网上识别它。这称为 互联网协议地址,简称 IP 地址。这些 IP 地址可以是 IPv4(192.62.9.1)或更复杂的 IPv6 (2001:0db8:85a3:0000:0000:8a2e:0370:7334)格式。
然而,人类比数字更能记住有意义(或无意义)的名称。例如,哪个对你来说更容易?facebook.com 还是 192.161.82.254?当你拥有多个网站时,记住数字会变得更加困难。因此,我们使用名称(称为 主机名)来访问互联网上的网站。
例如:google.com、facebook.com、wikipedia.com、en.wikipedia.com
当你在 Web 浏览器中输入主机名 (example.com) 时,浏览器并不知道 example.com 的服务器在哪里。然后,浏览器会连接到域名系统 (DNS),DNS 会将 主机名转换 为 IP 地址,从而找到服务器的实际 IP 地址。
DNS 是一个大型服务器和数据库的集合,其工作过程称为 DNS 协议。
DNS 工作原理的简单说明
DNS 如何工作?
虽然上图只显示了两个步骤,但实际的域名系统 (DNS) 包含多个步骤,并且有不同类型的服务器专门负责某些任务。首先,让我们了解一下服务器的类型以及它们存在的原因。
域名系统主要包括4种类型的服务器。
- DNS 检索器 ——在图书馆中查找书籍的人
- 根域名服务器 ——图书馆的走廊
- 顶级域名 (TLD) 名称服务器 ——走廊里的一个架子上标明了这本书的类别。
- 权威域名服务器 ——本书
找到书后,我们可以在那里找到主机名对应的 IP 地址。 不过,这个图书馆场景与实际场景类似,并不完全相同。让我们看看每个服务器的职责是什么。
服务器 1:DNS 递归器
来源: Cloudflare
从你的电脑到域名系统 (DNS) 最先出现的东西是 DNS 递归器 (DNS Recursor,又称解析器)。当我们在浏览器中请求 example.com 时,浏览器需要找到它的 IP 地址。因此,它会向 DNS 递归器寻求帮助。
DNS 递归服务器由您的互联网服务提供商提供 。但是,它并不知道给定主机名的 IP 地址。它会递归地向其他服务器发送请求,以查找确切的 IP 地址。
你知道一个外国人的地址,需要找到他。首先,你要找到他的国家。然后是他的省份。接着是他的地区。然后是他的城镇。接着是他的街道。最后是他的房子。
这里的逻辑是一样的。DNS Recursor 需要找到主机名(地址)对应的 IP(人)。
- 它首先询问 根名称服务器 并获取 TLD 名称服务器的地址。
- 然后它询问 TLD 名称服务器 并获取权威名称服务器的地址。
- 它最终会请求 权威域名服务器 ,并获取该主机名对应的服务器的实际 IP 地址。耶!🎉
服务器 2:根名称服务器
来源:Cloudflare
世界上只有 13 个根域名服务器(来源),所有递归域名服务器都知道这 13 个根域名服务器。这些递归域名服务器也不知道我们要查找的主机名的 IP 地址是什么。(可惜?不。)它知道一件非常宝贵的事情:主机名顶级域名的数据保存在哪里。
例如,如果主机名是 example.com ,则根名称服务器将发回所有.com域的顶级名称服务器的地址 。
服务器 3:TLD 域名服务器
来源:Cloudflare
TLD 域名服务器维护特定顶级域名(例如 .com、.org、.io 等)所有域名的数据。例如,当 DNS 解析器请求 example.com 的信息时,TLD 域名服务器会返回权威域名服务器的地址。(别担心,这是最后一步)
服务器 4:权威名称服务器
来源:Cloudflare
权威域名服务器负责维护单个域名的信息。当 DNS 解析器向其权威域名服务器请求 example.com 的 IP 地址时,它会运行 DNS 查找来查找该 IP 地址。在此过程中,它会查找 A 记录或 CNAME 记录(稍后会详细介绍)。如果找到,它会返回该主机名的 IP 地址。
让我们总结一下...
- 您在浏览器中输入 example.com。
- 您的浏览器向 DNS 递归器(或解析器)请求 IP 地址
- Recursor 会逐级向下面发送请求,找到下一个的地址。
- 根域名服务器
- TLD 域名服务器
- 最后,向域的权威名称服务器发出请求,DNS 递归器将把请求的主机名的 IP 地址返回给浏览器。
现在,你的浏览器将渲染并显示该网站!💪(如果找到了该网站)
什么是 DNS 缓存?
你每天都会给妈妈打电话。把她的号码保存在手机常用号码列表的顶部,比每次需要时都去搜索要方便得多。对吧?
DNS 缓存的概念与此类似。 缓存的含义 是将数据临时保存在易于访问的位置,以便轻松检索而无需处理,主要是为了提高性能。DNS 缓存与 DNS 有关,它可以在任何 DNS 服务器、用户的操作系统甚至用户的浏览器中进行。缓存数据离用户浏览器越近,检索速度就越快。(合乎逻辑吧?)
注意:NDNS 数据仅在预定义的时间内缓存,该时间称为 TTL (生存时间)。
使用缓存的 DNS 解析示例:
- 您从浏览器请求 example.com。
- 浏览器检查其缓存中的 DNS 数据。
- 如果找到,它将终止 DNS 解析并将请求直接发送到 IP 地址。
- 如果没有,它会向 DNS 递归器请求。
- DNS 检索器检查其缓存中是否存在所请求域的 DNS 数据。
- 如果找到,它将终止 DNS 解析并将 IP 地址发送回浏览器,而无需进一步请求。
- 如果没有,则继续 DNS 解析过程...
- ......
您可以理解为请求很少到达权威服务器(除非该域是新的)。
DNS 记录
你曾经为网站设置过自己的域名吗?那么,你肯定对 DNS 记录感到困惑。
让我们实际一点。假设您刚刚购买了梦寐以求的域名。购买域名的公司会(而且必须)为您提供更改 域名服务器地址的功能。默认情况下,这些地址通常指向该公司自己管理的域名服务器。但是,您可以使用自定义域名服务器或 Cloudflare 等免费服务。此过程称为 将您的域名指向域名服务器。 这并不是一种新的域名服务器,而是我们之前所了解的“权威域名服务器”。
然后,您将获得一个基于 Web 的 DNS 记录管理器,通常称为 DNS 区域 ,您可以在其中添加/删除/编辑新购买的域名的 DNS 记录。
域名的详细信息保存在这些 DNS 记录中。它就像一个调查文件堆栈——包含大量有关您域名的信息。
添加 DNS 记录
进入域的 DNS 区域后,您可以添加包含以下数据的 DNS 记录
- 类型——DNS 记录类型之一(低于 5 或任何其他)
- 主机 - 用于
@
根域名。或者,使用子域名www
, 例如blog
。 - 值——取决于类型。
- TTL(可选)—— 生存时间。建议使用“自动”。
- 优先级(仅适用于 MX 记录)——设置优先级(不用担心,您的电子邮件服务会提供该优先级)
DNS 记录的类型
虽然有很多 DNS 记录,但以下是最常见的。
记录类型 | 代表 | 描述 |
---|---|---|
一个 | 地址 | 将主机名映射到 IPv4。该值应为 IP 地址。 |
AAAA | 地址 | 除了使用 IPv6 之外,与 A 相同。 |
别名记录 | 规范名称 | 将主机名映射到另一个主机名。如果服务器没有静态 IP,此功能很有用。通常用于转发 www 到 @ 。您也可以转发到外部域名()blog 。 my-blog.herukodns.com |
MX | 邮件交换 | 将邮件直接发送到电子邮件服务器。您可以设置优先级来选择首先使用哪个服务器。 |
TXT | 文本 | 存储注释/值。常用于验证您的网站。 |
常问问题
问:为什么流程这么复杂?难道我们不能只用一个数据库吗?
注册域名超过3亿个。将所有数据和主机名都放在一台服务器上并不现实。因此, Paul Mockapetris于1983年 发明了DNS。这是一种去中心化技术,可以简化数据处理并提高速度。
问:域名和主机名有什么区别?
主机名:example.com、blog.example.com、shop.example.com。域名:仅限 example.com。明白了吗?点击 此处了解更多信息。
问: 为什么 DNS 记录更改需要等待一段时间才能看到?
这是因为 DNS 缓存。请尝试清除浏览器和操作系统的 DNS 缓存。如果还不行,我得说,你得有点耐心 😉。
在本文中,我们讨论了什么是 DNS、DNS 的工作原理、DNS 缓存以及 DNS 记录。如果您有任何疑问,请在下方评论。
谢谢你!
最初发表于Hyvor Talk 博客。Hyvor Talk 是一个博客评论平台。我们也通过分享技巧和博文来帮助用户成长。
文章来源:https://dev.to/hyvor/dns-demystified-what-is-dns-how-dns-works-dns-caching-and-dns-records-33bl