DNS原理简析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28666081/article/details/84945614

为什么需要DNS解析?
    由于互联网是根据"ip:端口号"请求到对应的服务器的,域名www.baidu.com理论上是不支持的,但考虑到ip太难记了,或许也不好看。
    这就需要在请求的时候加上一个DNS(即域名解析系统)来进行将域名www.baidu.com转为ip的形式,然后再访问这个ip。

 


域名的层次结构:

层次结构:主机名.次级域名.顶级域名.根域名(host.sld.tld.root)。

 


DNS解析过程:
基本解析路径为:
输入www.baidu.com->【本地hosts->(本地DNS缓存->tcp/ip中设置的DNS)
->(13台根节点DNS->顶级域.com->次级域名baidu.com->主机www.baidu.com)】->返回真实访问ip
注:从输入www.baidu.com到返回网址的过程中,只要【......】里面任何一个过程能解析等到域名就可以直接返回ip,不用在进行下一步。

DNS管理的资源记录说明(DNS解析知识准备)?
A(主机):             目的ip,
NS(名称服务器): 对应的DNS域名解析服务器    , 保存下一级域名服务器地址
//其他-------------------------------------------------
CHAME(别名)、SOA(起始授权结构)、MX(邮件服务器)。

具体DNS解析过程如下:
1 输入域名www.baidu.com,本地先检查C:\Windows\System32\drivers\etc\hosts文件是否有网址映射,有就直接返回这个ip地址,完成域名解析。
2 假如上一步找不到,就找本地DNS解析缓存,有映射就返回,完成域名解析。
3 假如上一步找不到,就找TCP/IP中设置的DNS服务器(也称本地DNS服务器),解析到有就返回,完成域名解析。(设置位置:控制面板\网络和 Internet\网络连接\WLAN->选择Internet 协议版本 4(TCP/IPv4)->点击属性->在下方的DNS填写8.8.8.8, 这是本地DNS服务器就是8.8.8.8了)
4 假如上一步找不到,判断当前本地DNS服务器是否设置了转发模式,假如是非转发模式,则如下:
-    ① 本地DNS服务器请求根域名服务器,然后根域名服务器返回顶级域名服务器的一个/多个NS,比如负责.com域的。
-    ② 然后访问顶级域名服务器的一个/多个NS,顶级域名服务器会返回次级域名服务器的一个/多个NS,比如负责baidu.com域的。
-    ③ 然后访问级次域名服务器的一个/多个NS,主机域名服务器如果找到www.baidu.com就会返回ip回去。
5 假如上一步使用的是转发模式,就会转发到制定的域名服务器去解析,如果解析不到,就会找到上一级,如果上一级也解析不到就会转到上上一级,然后找到可解析的就会按第 "4" 步那样逐层的往下找,最后找到就返回ip回去。
备忘:查询方式含递归、迭代。
注意点1:根域名固定为13个(参考https://baike.baidu.com/item/根域名服务器/5907519?fr=aladdin)。
注意点2:上面第"4"步采用的是递归+迭代的方式找到最终的ip。即一个域名服务器可能会衍生出多个NS,然后迭代这多个NS每个NS里面又有下一层,这时候用的是递归下一层,下一层有可能有多个NS,这时候又迭代,循环该操作至到最下层找不到为止。


参考:
http://blog.51cto.com/369369/812889
http://www.ruanyifeng.com/blog/2016/06/dns.html
https://www.cnblogs.com/yingsong/p/4429637.html
 

猜你喜欢

转载自blog.csdn.net/qq_28666081/article/details/84945614