首页 > 其他分享 >浅谈DNS域名解析的过程

浅谈DNS域名解析的过程

时间:2023-05-25 21:33:45浏览次数:47  
标签:缓存 浅谈 域名解析 Server 域名 DNS 服务器 解析 LDNS

一、用户在浏览器输入www.baidu.com时,DNS域名解析大致分为以下几个过程:

1、浏览器客户端检查自身有没有该域名的缓存:

如果浏览器有命中,直接返回该域名对应的IP地址,解析结束;

(这个缓存可以设置TTL来控制有效时间,有点像APR协议在本地保存的的目的IP与主机MAC地址的缓存) 如下图:

浅谈DNS域名解析的过程_域名服务器

如果浏览器未命中,浏览器会去检查检查操作系统缓存中有没有对应的已解析过的结果,原理同上;

2、如果浏览器和OS中都找不到该域名对应的缓存,**那么会请求 本地域名服务器(LDNS)**来解析这个域名,这台服务器一般在距离你的主机比较近的位置,一般情况都会缓存着你要解析域名的结果,大约80%的域名在这里就能解析完成了。

3、如果LDNS仍然没有命中,就直接跳到Root Server( 根域名服务器 )请求解析

4、根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)的地址;

5、此时LDNS再发送请求给上一步返回的gTLD Server主域名服务器

6、接受请求的gTLD查找并返回给LDNS注册这个域名时候的Name Server (注册该域名的服务器) 的地址;7、LDNS再向Name Server发起解析请求,Name Server会根据映射关系表直接找到目标ip,返回给LDNS

8、LDNS会缓存这个域名和对应的ip,然后把解析的结果返回给用户;

9、用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束;

简单总结DNS域名解析过程:

浏览器首先在自己的缓存找,没有就去系统的缓存,还没就去请求本地域名服务器LDNS(一般到这里就有了)

如果LDNS还没有解析结果,那它就去Root Server根域名服务器请求,Root Server会返回给LDNS一个查询主域名(.com .cn等)的主域名服务器gTLD Server

LDNS发起请求gTLD Server,gTLD Server查找并返回给LDNS注册这个域名时候的Name Server地址;

LDNS发起请求Name Server,Name Server会根据映射关系表直接找到目标ip,最终返回给LDNS

之后向下交付的过程,这个解析结果会还存在LDNS,本地OS,和浏览器缓存中,方便下次解析;


浅谈DNS域名解析的过程_缓存_02

理解要点: 极端情况下,LDNS扮演者核心中转角色,与ROOT DNS Server 根域名服务器,gTLD Server .xxx对应的主域名服务器 ,Name Server 注册待解析域名的服务器 进行了三次一去一回的循环式交付,最终拿到结果;









标签:缓存,浅谈,域名解析,Server,域名,DNS,服务器,解析,LDNS
From: https://blog.51cto.com/u_15997490/6351216

相关文章

  • 批量服务器更新DNS的powershell脚本
    在之前的博文https://blog.51cto.com/magic3/2514240中写过一个类似的脚本,但脚本并不完美。近期又有类似的需求,懒得改了,直接写个新的。针对hyper-v的多网卡,虚拟网卡,同样有效。$nic_array=@{}$nic_info=Get-NetAdapter$nic_name=$nic_info.nameforeach($nicin$nic......
  • [4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事
    事情起因:https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a之前没接触过区块链这块,这次随即报名NFT这块。下面谈我的学习过程:第一阶段资料搜索(简单看看就行)什么是NFT?NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT......
  • Nginx如何配置多个服务域名解析共用80端口详解
    前言由于公司一台服务器同时有多个服务,这些服务通过域名解析都希望监听80/443端口直接通过域名访问,比如有demo.test.com和product.test.com。这时候我们可以使用nginx的代理转发功能帮我们实现共用80/443端口的需求。备注:由于HTTP协议默认监听80端口,HTTPS协议默认监听443端口,所......
  • 浅谈GitHub——程序员的圣地
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(G......
  • 浅谈斐波那契数列和卡特兰数
    斐波那契数列斐波那契数列是我们较为熟悉的一类数列了,在学习递归和递推的时候我们就已经能求解\(n\)较小的情况了;斐波那契数列的定义如下:\[\left\{\begin{matrix}F_{n}=0&n=0\\F_{n}=1&n=1\\F_{n}=F_{n-1}+F_{n-2}&n\ge2\end{matrix}\right.\]卢卡斯数列卢卡斯数列......
  • 恒创科技:香港服务器如何操作域名解析让网站上线?
    ​网站上线是一个需要多个步骤的过程,其中之一就是解析IP。在这个过程中,您需要将您的网站域名解析到香港服务器IP地址,以便访问者可以通过域名来访问您的网站。下面是解析IP的一般步骤:1.获取服务器IP地址:首先,您需要获取您的服务器IP地址。这可以通过登录您的服务器控......
  • 浅谈 树上带权最长最短路径,决策包容性与点分树
    树上带权最长最短路径,决策包容性与点分树\(\text{preface}\)最近学习了点分树相关的内容,也碰巧见识到了许多……树上路径问题(非负权),最长或是最短,有的可以用点分治(树)解决,有的可以用线段树解决,有的需要深层次挖掘性质,就在这里做一个小小地总结了一些另类的方法。1.树上带权最长......
  • 把DNS请求日志转发到syslog服务器去
    把DNS请求日志转发到syslog服务器去在vim/etc/named.conf里配置的内容logging{channeldefault_debug{file"data/named.run";severitydynamic;};channelsyslog_channel{syslogDNS-LOG;......
  • Centos7安装高版本BIND9.16.41(DNS服务器)
    安装高版本BIND9.16.41或9.18.15双数版本为稳定版如9.16、9.18找到BIND官网:https://www.isc.org/download/#BIND1、点击Download:这里以9.16.41版本为例2、打开CentOS系统3、跳转到官方文档,找到EPEL源,复制链接更换源,并安装cd/etc/yum.repos.drm-rf/etc/yum.repos.......
  • 浅谈TCP协议的发生过程
    1.TCP协议1.1TCP协议的性质面向连接的、可靠的、基于字节流至于为什么面向连接,又为什么可靠,基于字节流的,等后面便可知道.1.2TCP协议栈收发数据的四个阶段创建套接字连接服务器收发数据断开服务器连接,删除套接字1.3TCP头部格式2.创建套接字2.1首先理解......