这是一道互联网大厂的面试真题,主要考察的就是DNS域名解析的过程是什么样的。以此为背景进而考察安全相关问题。综合性还是很强滴。本文将从案例出发开始一步一步深入。
一、DNS运行原理
1、为什么要DNS
DNS的作用在于域名解析。每个网站通常都会有一个域名和至少一个IP地址。比如说百度的域名,112.80.248.74就是百度的IP地址。
我们想要访问百度的时候只需要输入域名就可以,当然IP也可以,为什么不使用IP登录呢?看上面的数字就知道,一串复杂的数字难以记忆。我们每天要登录大量的网站可能都需要一个小本子去记录,访问哪个查哪个,效率低下。因此只需要记住域名即可。
但是问题来了,互联网是通过IP地址进行数据的传输的,因此就需要一种手段来把我们的域名映射为IP地址,这就是DNS的作用。
2、DNS工作原理
既然DNS要把域名映射为IP地址,实现步骤是什么样呢?别着急,我们先来了解一下域名服务器的概念。
从上面这张图可以看到,域名的管理是分层次的。最高级是根,也叫做根服务器。从上往下功能逐渐细化。DNS就是和这些服务器进行打交道。
有了上面的这些概念,现在我们再来认识一下DNS的工作原理就容易多了。DNS域名解析的过程有两种,我们分别来看一下:
(1)递归查询
意思是每次当前服务器查不到时,都由当前的域名服务器代劳查询。
(2)迭代查询
意思是每次当前服务器查不到时,都由自己亲自再去下属服务器查询。
上面两张图解释的比较清晰。太多的文字并不能很好地解决问题。
OK,知道了DNS如何进行域名解析之后,回到我们今天文章的问题。
二、DNS解析域名与IP不一致,访问了该域名会发生什么
我们的问题是基于DNS工作失败之后出现的状况。因此我们答案就是域名解析出现了故障会发生什么。
(1)域名和IP不一致,域名解析成了其他的的IP地址,但是这个IP地址正确。访问该域名就会访问其他的网站。
如何去做呢?知乎上有一个阿里巴巴的回答:
从技术上来讲是可以解析到任意IP地址的,这时候针对这个地址发起HTTP访问,HTTP头中的host字段会是你的域名(而非该IP对应站点的域名),如果对方的网站HTTP服务器没有做对应的防护就可以访问,如果方的网站HTTP服务器有防护则无法访问。
(2)域名和IP不一致,域名解析成了其他的的IP地址,但是这个IP地址错误,访问该域名就会失败。
还有一种情况:访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。
OK,今天的文章先到这。如有问题还请批评指正。
本文转载自微信公众号「愚公要移山」,可以通过以下二维码关注。转载本文请联系愚公要移山公众号。