Dns域名解析过程
<h1 class="postTitle">DNS详解</h1><div class="clear"> </div>
<div class="postBody">
<div id="cnblogs_post_body" class="blogpost-body">
<h2>DNS是什么</h2>
<p> dns全称Domain Name System,又称域名系统,是互联网的一项服务,</p>
<p> 主要在dns服务器中保存着域名和ip地址的对应关系,为人们提供域名解析服务。</p>
<p> 全球一共有13台根dns服务器,美国10台,欧洲2台,分布在英国和瑞典,</p>
<p> 亚洲1台,在日本。</p>
<h2>DNS架构</h2>
<p> 服务器的包含关系是:具体如下图</p>
<p> 根DNS服务器 > 顶级DNS服务器 > 权威DNS服务器 > 二级域名的DNS服务器</p>
<p> 根DNS服务器 :掌握着所有顶级dns的ip和域名的对应关系</p>
<p> 顶级DNS服务器 :掌握着权威dns的ip和域名的对应关系</p>
<p> eg: .com .cn .org</p>
<p> 权威DNS服务器 :掌握着二级域名dns服务器的ip和域名的对应关系</p>
<p> eg: baidu.com sina.com</p>
<p> 二级域名的DNS服务器 :掌握着你要访问的域名和ip的对应关系</p>
<p> eg: www.baidu.com new.sina.com</p>
<p><img src="https://img2018.cnblogs.com/blog/1605855/201907/1605855-20190709183455297-1280824023.jpg"></p>
<h2>在浏览器输入url按下回车的整个过程</h2>
<h3>大方向分为三个过程</h3>
<p> 1.把输入的url域名通过dns解析成ip地址</p>
<p> 2.浏览器向ip发送请求信息(包括请求头Request Headers和请求体Request Body)</p>
<p> 3.服务器向浏览器回应一个响应信息(包括响应头Response Headers和响应体Response Body)</p>
<h3>但是dns解析的过程又可分为下面六个过程,具体看下图</h3>
<p> 1.先向本地dns缓存查看有没有该域名对应的ip地址,有直接跳出,没有接着往下</p>
<p> 2.向根dns服务器询问域名对应的ip地址(根dns服务器会让他去查询顶级dns服务器)</p>
<p> 3.向顶级dns服务器询问域名对应的ip地址(顶级dns服务器会让他去查询权威dns服务器)</p>
<p> 4.向权威dns服务器询问域名对应的ip地址(权威dns服务器会让他去查询二级dns服务器)</p>
<p> 5.向二级dns服务器询问域名对应的ip地址(二级dns服务器会返回对应的ip地址)</p>
<p> 6.接收到ip地址后,会先把ip和域名对应关系保存到本地dns缓存,以便下次方便访问</p>
<p><img src="https://img2018.cnblogs.com/blog/1605855/201907/1605855-20190709185337512-760596003.jpg"></p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/huikejie/p/11161575.html 哇,楼主这个帖子写得真详细啊!DNS域名解析过程这个问题困扰我很久了,今天终于搞明白了!
之前一直搞不懂根DNS服务器、顶级DNS服务器、权威DNS服务器之间的关系,看完楼主的图示瞬间清晰了!特别是那个六步解析流程,非常直观。
我想补充一点点小细节:
[*]其实现在很多浏览器和系统都有DNS缓存预取功能,可以加快解析速度
[*]现在全球根服务器已经增加到超过1000个Anycast节点了,不只是最初的13台物理服务器
[*]除了传统的DNS解析,现在还有DoH(DNS over HTTPS)和DoT(DNS over TLS)这种更安全的解析方式
感谢楼主的分享!mark一下,以后有人问这个问题就直接甩这个链接给他哈哈~
顺便想问下,楼主有没有写过关于DNS劫持或者DNS污染的文章?对这个也比较感兴趣的说~
頁:
[1]