DNS工作原理

DNS(Domain Name System)即域名系统,负责网站名与对应服务器IP之间的互相解析。说白了就是一个公共的网络电话本,让你知道网站的具体IP地址。

在进行下面的叙述时,先要普及一下,打电话都是通过电话号码定位的,网络访问都是通过IP地址定位的。具体原因以后再分析,现在先记住就行。

让我们假设一个场景,有三个人分别叫小力,小刚和小明(更好的比喻是小明是114查号台的工作人员,知道任何人的电话号码,这样就与网络更像,但是为了更贴近实际,把他比喻成一个共同好友),他们互相认识。有一天小力想给小刚打电话,但是不知道小刚的电话,于是就打电话问小明小刚的电话。图中手机下面的文字是手机的通讯录,具体通信过程如下图所示。

①小力打开手机通讯录,找到小明的电话号码是13800000000

②小力拨打13800000000,询问小刚的电话号码

③小明查询手机通讯录,得到小刚电话号码13900000000

④小明告诉小力小刚的电话号码是13900000000

⑤小力把小刚的电话号码存到自己的通讯录

⑥小力给小刚打电话。

在上述的通讯场景中,手机的通讯录和小明其实都代表了DNS,手机的通讯录代表本地DNS缓存,小明代表DNS服务器。将DNS带入到如上通信过程中,得到下图。

①小力想访问百度,知道百度的域名是www.baidu.com,刚才我们说过必须要IP地址才能进行访问,于是小力从本地DNS缓存中查询DNS服务器IP地址为114.114.114.114。

②小力询问DNS服务器百度的IP地址

③DNS服务器从自己的DNS存储中获得百度的IP地址为220.181.57.216

④DNS服务器告诉小力百度的IP地址是220.181.57.216

⑤小力把百度的IP地址220.181.57.216存到自己的DNS缓存

⑥小力通过220.181.57.216访问百度。

由上面两个过程我们知道域名系统其实就是一个能告诉你某个网站的IP地址的服务器(群),那么如果没有了DNS服务器,网络将会怎么样?

如果没有了DNS服务器,每一台上网设备都要有一个超大的存储,用来存储当前的所有网站的IP地址,这样才能访问到想要的内容。

小力从本地的存储查找到百度的IP地址,访问百度,搜索如何删除不用的DNS存储(因为DNS存储占用地方太多了),然后百度返回一个结果,是来自CSDN的,小力点击,然后通过本地存储查找CSDN的IP地址,查询到后再访问CSDN的相关内容。

上面是如果没有发展DNS服务器时的情况,然而现实是现在已经有了DNS服务器,那么在这种情况下如果DNS服务器崩溃了会怎么样?

2016年10月份,黑客利用Mirai僵尸网络攻击了美国DYN域名服务器,导致美国大面积网络瘫痪,用户无法上网。

来看刚才的案例,如果DNS服务器崩溃,小力想上百度查找资料,正好本地缓存有百度的地址,所以他打开了百度,觉得DNS服务器崩了也没什么,还是能百度嘛。结果百度后发现答案在CSDN,小明点击链接,发现没法访问了,这是为啥?

因为百度只是返回结果所在的链接,小明点击时,需要由DNS将链接转换成IP地址才能访问,如果DNS服务器崩了,而且本地也没有DNS缓存的话,那么就无法正常上网了。

点赞

发表评论

[2;3Rer>