• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

举个栗子:为什么昨天下午许多网站都无法访问了?

日报 举个栗子 2年前 (2017-11-16) 259次浏览 0个评论 扫描二维码

举个栗子:为什么昨天下午许多网站都无法访问了?

导语:如果昨天下午(1 月 21 日)你想上网刷刷微博看看视频,那有点费事。几乎全中国的大网站都上不去了。实际上,这并不是因为你家的网络有什么毛病。看一下新闻就会知道,是国内互联网根域名服务器出现了问题,导致域名都被指向了一个错误的 IP 地址,进而影响到这些域名的访问。这具体是怎么回事?为什么根域名服务器的问题会有这么大的影响,这个服务器是何方神圣?

如果昨天下午(1 月 21 日)你想上网刷刷微博看看视频,那有点费事。几乎全中国的大网站都上不去或者上着上着就“页面错误”了。实际上,这并不是因为你家的网络有什么毛病。看一下新闻就会知道,是国内互联网根域名服务器出现了问题,导致域名都被指向了一个错误的 IP 地址,进而影响到这些域名的访问。等等,为什么根域名服务器的问题会有这么大的影响,这个服务器是何方神圣?

要弄清这个问题,我们首先要知道域名解析服务(DNS)是如何工作的。一开始的时候,互联网上并不存在域名这种简单快捷的访问途径。想要访问千里之外的一个网站或者是一台服务器,使用的都是 IP 地址,也就是类似于 65.49.2.178 这样的一串数字。IP 地址就像生活中的电话号码,可以精确地定位到某个特定的机器或服务。但是用着用着,人们就觉得实在是太不方便了。就像电话号码很难记住一样,想要靠脑袋记住大量网站的 IP 简直是天方夜谭。所以,DNS 就承担起了“电话查号台”的工作,负责帮我们将简单好记的域名转化为正确的 IP 地址,免去了记忆“电话号码”的烦恼。只要我们知道 DNS 服务器的 IP 地址,就能查到其它所有网站的 IP 地址。所以我们在浏览器里输入域名的时候,访问的其实还是 IP 地址,只不过浏览器帮我们从 DNS 上查到了正确的 IP 地址,而我们平时却不知道这个过程。

但是所有人都去同一台 DNS 服务器上面查询,也会出现问题。想像一下,有成千上万的人同时向一个电话查号台打电话查询,会出现什么情况呢?少部分人打通了电话,而大多数则一直占线,查不到想要的电话号码。同时,全世界的电话号码都存在一个电话查号台里,查电话的过程也会非常缓慢。为了解决这两个问题,DNS 做了这样两件事:首先,搭建许多 DNS 服务器,使它们构成树状结构。在查询的时候从根域名服务器开始,一层一层地查下去。其次,为每个区域分配一台本地域名服务器,由这台服务器负责向根域名服务器查询,由于本地域名服务器可以缓存,这也可以极大地减轻根服务器的负担。

所以,我们只需要知道本地域名服务器的 IP 地址,并给本地域名服务器“打电话”查询。在正常访问某个域名的时候,如果本地域名服务器恰好没有缓存,过程会是这样的:

小王给本地域名服务器“打电话”:你好,我想查询一下 http://www.baidu.com 对应的“电话号码”。

本地域名服务器接线员:请稍候。

接线员查询了手头的记录,发现没有 http://www.baidu.com 的 IP 地址,于是给根域名服务器“打电话”。

本地域名服务器接线员:根域名服务器你好,我想查一下 http://www.baidu.com 对应的“电话号码”。

根域名服务器接线员查阅了一下手头的记录:我手头没有具体的“电话号码”,但是我知道.com 域名服务器上可以找到。我可以给你.com 域名服务器的“电话号码”。

本地域名服务器接线员拿到.com 域名服务器的“电话号码”,继续给它打电话。

本地域名服务器接线员:.com 域名服务器你好,我想查一下 http://www.baidu.com 对应的“电话号码”。

.com 域名服务器的接线员在手头的记录上依旧找不到具体的“电话号码”,于是告诉本地域名服务器接线员,baidu.com 域名服务器上可以查到这个电话。

本地域名服务器接线员第三次拨通电话:baidu.com 域名服务器你好,我想查一下 http://www.baidu.com 对应的“电话号码”。

baidu.com 域名服务器接线员发现手里有这个域名对应的记录,就将 http://www.baidu.com 的正确“电话号码”告诉了本地域名服务器接线员。

最后,本地域名服务器接线员把这个正确的“电话号码”记到自己的本子上,再告知小王,才算完成了这次查询。

当下一次另一个用户小李给本地域名服务器“打电话”查询 http://www.baidu.com 的“电话号码”时,本地域名服务器接线员会发现自己手里的本子上已经有了上次小王查询时留下的记录。这次他就不需要兴师动众地给根域名服务器“打电话”了,只需要将自己本子上记录的“电话号码”告诉小李,就可以完成查询。当然,如果小李和小王的查询之间隔了很长时间,为了防止 http://www.baidu.com 的“电话号码”发生改变,本子上的这条记录会被当作无效记录,接线员还是会去向根域名服务器重新查询。

在了解了 DNS 的工作原理之后,为什么根域名服务器会有这么大的影响就显而易见了。即使有本地域名服务器的存在,归根结底,域名和 IP 地址的对应关系还是从根域名服务器提供的,本地域名服务器只起到一个缓存的作用。所以,一旦根域名服务器出现错误,所有想要解析域名的用户,最终拿到的都会是一个错误的 IP 地址。既然查号台告诉我们的是一个错误的电话,我们自然就打不通了。

昨天的这次事故,原因还不得而知。有可能是 DNS 服务器的内部故障,也有可能是由黑客攻击导致。但无论原因如何,DNS 服务器对于整个互联网的重要程度已经显而易见,如何保护根域名服务器不受攻击,也会成为安全专家在今后需要特别重视的一个话题。


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:举个栗子:为什么昨天下午许多网站都无法访问了?
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址