DNS的解析原理和过程

DNS的解析原理和过程: 在Internet上域名和IP是对应的,DNS解析有两种:一种是正向解析,另外一种是反向解析。 正向解析:正向解析就是将域名转换成对应的 IP地址的过程,它应用于在浏览器地址栏中输入网站域名时的情形。 反向解析:根据IP地址查找对应的注册域名,经常被一些后台程序使用,用户看不到。 另外需要知道的是DNS查询的工作方式: 客户端和浏览器,本地DNS之间的查询方式是递归查询; 本地DNS服务器与根域及其子域之间的查询方式是迭代查询

DNS解析过程: 场景:用户在浏览器输入网址:www.qcloud.com,其解析过程如下: 第1步:浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。

第2步:如果用户的浏览器中缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射关系,完成域名解析。

第3步:如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系或缓存信息,如果有,直接返回给浏览器,完成域名解析。

第4步:如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,则会首先找本地DNS服务器,一般是公司内部的DNS服务器,此服务器收到查询,如果此本地DNS服务器查询到相对应的IP地址映射或者缓存信息,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

第5步:如果本地DNS服务器无法查询到,则根据本地DNS服务器设置的转发器进行查询; 未用转发模式:本地DNS就把请求发至根DNS进行(迭代)查询,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收 到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级 DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找域名域服务器,重复上面的动作,进行查询,直至找到域名对应的主机。

使用转发模式:此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至 上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 搭建基本的DNS服务

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

随笔

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LanceToBigData

开发问题(一)在windows和linux端口占用问题

前言   今天在MyEclipse中使用tomcat发现tomcat端口8080竟然被占用了,所以就找了一下解决办法共参考!   在网络程序的调试过程中,经常发...

17910
来自专栏前端知识分享

第180天:HTML5——本地存储

localStorage方法存储的数据没有时间限制。第二天、第二周甚至是第二年之后,数据依然可用。

844
来自专栏搜云库

CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务

CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种...

2396
来自专栏编程微刊

微信小程序从零开始开发步骤(七)引入外部js 文件

1314
来自专栏开发与安全

关于quartus ii 11.0系列&dsp builder 11.0&matlab R2011b&synplify 9.6.2的下载与安装全解

查找,下载,安装了几天FPGA相关处理软件,有点经验教训要和大家分享一下,希望后来人不用走那么多弯路。首先, 在安装DSP Builder之前,首先安装Ma...

1800
来自专栏前端架构

html5里面applicable-device应用设备标识有什么作用?

  <meta name="applicable-device" content="pc">

753
来自专栏史上最简单的Spring Cloud教程

Openresty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis

Lua模块开发 在实际的开发过程中,不可能把所有的lua代码写在一个lua文件中,通常的做法将特定功能的放在一个lua文件中,即用lua模块开发。在lualib...

2507
来自专栏Thinks

带你零基础入门express

作为一篇新手入门,这篇文章没有太多的技巧和花式,只是从零开始带你学习和掌握express的开发应用,比较适合于完全没有使用过express的新手,以及其他非前端...

2.3K56
来自专栏清风

Linux 测试远程服务器端口开放命令&测试本地端口占用命令

563
来自专栏云计算

Docker in Action:共享内存命名空间

摘自“Docker in Action”一书,在本文中,我将展示如何在容器之间共享内存空间。

2315

扫码关注云+社区