前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二、DNS如何工作?

二、DNS如何工作?

作者头像
咻一咻
发布2020-05-29 11:45:21
5880
发布2020-05-29 11:45:21
举报
文章被收录于专栏:咻一咻咻一咻
DNS如何工作
DNS如何工作
  • 上一篇文章(什么是DNS)中,我们解释了 DNS 所涉及到的一些术语,接下来我们来看看 DNS 这个系统是如何工作的?
  • 从高层次上看,这个系统非常简单,但是当你关注细节时,它又非常复杂。总的来说,它是一个非常可靠的基础设施,对于构建我们当今的互联网,是至关重要的。
根服务器

  如前所述,DNS 的核心是一个分层系统。在这个系统的顶部是所谓的 “根服务器”。这些服务器由各种组织控制,并由 ICANN(互联网名称和数字地址分配公司)授权。

  目前正在使用的根服务器有 13 个。但是,由于每分钟都要解析的名称数量多得令人难以置信,所以实际上每个根服务器都有镜像服务器。有关这个一个有趣的事情是,每个根服务器与它的镜像服务器共享同一个 IP 地址。当你对某个根服务器发出请求时,请求会被路由到该根服务器离你最近的镜像服务器。

  这些根服务器做什么的?根服务器处理有关顶级域名信息的请求。因此,如果某个请求低级别名称服务器无法解析,则会向该域的根服务器进行查询。

  根服务器不知道实际托管域名的位置。然而,他们会将请求引导到处理特定请求的顶级域名的名称服务器。

  因此,如果向根服务器发出对 “www.wikipedia.org” 的请求,则根服务器不能在它的记录文件中找到与 “www.wikipedia.org” 匹配的记录。

  但是它会找到 “org” TLD 的记录,并把负责 “org” 地址的名称服务器的地址发回给请求者。

定义根服务器的文件地址:/var/named/named.ca

代码语言:javascript
复制
[root@centos7 ~]#cat /var/named/named.ca 
··········
;; ANSWER SECTION:
.           518400      IN     NS   a.root-servers.net.
.           518400      IN     NS   b.root-servers.net.
.           518400      IN     NS   c.root-servers.net.
.           518400      IN     NS   d.root-servers.net.
.           518400      IN     NS   e.root-servers.net.
.           518400      IN     NS   f.root-servers.net.
.           518400      IN     NS   g.root-servers.net.
.           518400      IN     NS   h.root-servers.net.
.           518400      IN     NS   i.root-servers.net.
.           518400      IN     NS   j.root-servers.net.
.           518400      IN     NS   k.root-servers.net.
.           518400      IN     NS   l.root-servers.net.
.           518400      IN     NS   m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.     3600000 IN  A   198.41.0.4
a.root-servers.net.     3600000 IN  AAAA   2001:503:ba3e::2:30
b.root-servers.net.     3600000 IN  A   192.228.79.201
b.root-servers.net.     3600000 IN  AAAA   2001:500:84::b
c.root-servers.net.     3600000 IN  A   192.33.4.12
c.root-servers.net.     3600000 IN  AAAA   2001:500:2::c
d.root-servers.net.     3600000 IN  A   199.7.91.13
d.root-servers.net.     3600000 IN  AAAA   2001:500:2d::d
e.root-servers.net.     3600000 IN  A   192.203.230.10
e.root-servers.net.     3600000 IN  AAAA   2001:500:a8::e
f.root-servers.net.     3600000 IN  A   192.5.5.241
f.root-servers.net.     3600000 IN  AAAA   2001:500:2f::f
g.root-servers.net.     3600000 IN  A   192.112.36.4
g.root-servers.net.     3600000 IN  AAAA   2001:500:12::d0d
h.root-servers.net.     3600000 IN  A   198.97.190.53
h.root-servers.net.     3600000 IN  AAAA   2001:500:1::53
i.root-servers.net.     3600000 IN  A   192.36.148.17
i.root-servers.net.     3600000 IN  AAAA   2001:7fe::53
j.root-servers.net.     3600000 IN  A   192.58.128.30
j.root-servers.net.     3600000 IN  AAAA   2001:503:c27::2:30
k.root-servers.net.     3600000 IN  A   193.0.14.129
k.root-servers.net.     3600000 IN  AAAA   2001:7fd::1
l.root-servers.net.     3600000 IN  A   199.7.83.42
l.root-servers.net.     3600000 IN  AAAA   2001:500:9f::42
m.root-servers.net.     3600000 IN  A   202.12.27.33
m.root-servers.net.     3600000 IN  AAAA   2001:dc3::35
TLD 服务器

  请求者然后向负责该请求的顶级域名的 IP 地址(由根服务器给予)发送新请求。

  对于我们的例子,它会发送想负责 “org” 域名的名称服务器发送一个请求,看看它是否知道 “www.wikipedia.org” 在哪里。

  同样,该名称服务器也不会在记录文件中找到 “www.wikipdia.org” 记录。

  但是,它会找到负责 “wikipedia.org” 的名称服务器的 IP 地址。这样就越来越接近我们想要的答案了。

域名级别名称服务器

  此时,请求者知道了具体负责该资源的实际 IP 地址的名称服务器的 IP 地址。它向该名称服务器发送一个新的请求,再次询问它是否可以解析 “www.wikipedia.org”。

  名称服务器检查其区域文件,并发现它有与 “wikipedia.org” 相关联的区域文件。在此文件的内部,有一个 “www” 主机的记录。此记录说明此主机所在的 IP 地址,并向请求者返回最终答案。

请求者是什么?

在上面的场景中,我们引用了 “请求者”。在这种情况下请求者指的是什么?

  在几乎所有情况下,请求者都是我们所谓的 “解析名称服务器”。解析名称服务器是配置着为询问其他服务器的问题的。它基本上是用户的中介,它缓存着先前的查询结果来提高速度,并且知道根服务器的地址,以便能够 “解析” 它还不知道的域名。

  基本上,用户通常会在其计算机系统上配置多个解析名称服务器。解析名称服务器通常由 ISP 或其他组织提供。例如,Google 提供了你可以使用的 DNS 解析服务器。这些可以在计算机中自动或手动配置。

  当你在浏览器的地址栏中键入网址时,你的计算机将首先查看是否可以在本地找到资源所在的位置。它检查计算机上的 “hosts” 文件和其他几个位置。然后它将请求发送到解析名称服务器,并等待接收资源的 IP 地址。

  解析名称服务器首先检查其缓存。如果没有,它将通过上述步骤找到答案。

  解析名称服务器基本上压缩了最终用户的请求过程。客户端只需要知道请求资源所在的解析名称服务器,并且确信他们会查询并返回最终答案。

总结   你现在知道了 DNS 的工作原理。但是要实际操作,你依然需要了解有哪些常见的 DNS记录以及它们的作用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 根服务器
  • TLD 服务器
  • 域名级别名称服务器
  • 请求者是什么?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档