首页 > 编程知识 正文

搞懂的意思,刷新dns缓存有什么用

时间:2023-05-05 09:37:34 阅读:134711 作者:2465

我前几天见到了面试的伙伴。 据说面试官和他说着投机的话,无意中谈到了DNS请求的过程。 他一时语塞,对方不打算追问,但最终面试的结果也不理想。 用一边面试一边学习的态度,来看看DNS要求涉及的定义和原理吧。

DNS的含义和结构众所周知,互联网用IP来识别一台服务器。 IP地址可以表示设备,但很难记忆,所以用可以理解并识别的名称替换。 这个名字叫域名。 例如,www.51cto.com是域名,域名后定义了指向web服务器的IP地址。 那么,谁来应对这个域名到IP地址呢? 答案是用DNS实现。

DNS是域名系统(Domain Name System,简称: DNS )是互联网的服务。 一种将域名和IP地址相互映射的分布式数据库,它将域名和IP的归类关系存储在数据库中,以便于访问互联网。

DNS解析是分布式存储,从结构上看,它是根DNS服务器,存储260个顶级域服务器的IP地址。 对于Ipv4,全球共有13个根域名服务器,其中包含每个域的解析和域名服务器地址信息,例如.com .net .cn。 简单来说,根域名服务器包含顶级域名服务器的地址。

顶级域名也称为一级域名,顶级域名分为三类: gTLD、ccTLD和New gTLD。

GLD:Generictop-leveldomains,gTLD (国际顶级域名,例如:com/.net/.org等都属于gTLD;

ctld :国家和地区顶级域名(country code top-level domains,简称ccTLD ),例如,中国是. cn域名,日本是. jp域名;

New gTLD :新的顶级域名(New gTLD ),例如. xyz/.top/.red/.help等新的顶级域名。

顶级域名服务器根据以上三种类型存储启用了域名IP的数据。

在顶级域名服务器的低级水平,本地域名服务器(Local DNS )一般是运营商的DNS,其主要作用是代理用户进行域名分析。

如图1所示,DNS域名服务器被分成三个等级,从上到下依次是根DNS服务器(rootDNS服务器)、顶级域名服务器(gTLD、ccTLD、New gTLD )、本地域

图1 DNS的分层结构

DNS分析原理说明DNS的结构后,谈谈其工作原理吧。 描述通过用户访问网页的过程获取DNS解析和URL到IP映射的整个过程。 其中有一个复杂的过程,存在着信息的交流。 在绘画过程中简化信息交互的线段,重点关注信息传递的路径,9步解读DNS分析过程。

图2用户请求及DNS解析的全过程

1、要求用户通过浏览器输入访问网站的地址。 例如www.51cto.com。 浏览器在自己的缓存中查找与URL对应的IP地址。 如果以前访问过,并且包含与此URL对应的IP地址的缓存,请直接访问IP地址。 如果没有缓存,请转至步骤2。

2、通过计算机本地主机文件配置,可以设置URL与IP地址的映射关系。 例如,在windows上是在c :windwossystem32driveretchosts文件中设置的,而在linux上是/etc/named.confg文件。 在此处查找本地Host文件,然后查看具有IP地址的缓存。 如果在文件中找不到映射关系,请转至步骤3。

3、委托本地DNS服务器,通过本地运营商获取URL和IP的映射关系。 如果您在校园网上,则DNS服务器位于学校;如果您是小区网络,则DNS服务器由运营商提供。 总之,这台服务器离在物理位置发出请求的计算机很近。 本地DNS服务器缓存了大量的DNS分析结果。 由于性能良好,物理距离也很近,所以通常会在短时间内返回给定域名的分析结果。 80%的DNS分析需求在这一步得到了满足。 如果在此步骤中尚未完成DNS分析,请转至步骤4

4、用Root DNS Server解析后,Root DNS Server会根据请求的URL返回Local DNS Server顶级域名服务器的地址。 例如,如果您询问“.com”的域名,它将询问gTL对应的域名服务器的地址。

5、返回顶级域名服务器地址后,接入对应的顶级域名服务器(gTLD、ccTLD、New gTLD ),返回Name Server服务器地址。 此Name Server是在网站上注册的域名服务,包含网站的URL和IP对应信息。 例如,对于您在某个域名服务提供商处申请的域名,服务器将解析该域名。 此Name Server由域名提供程序维护。

6、Name Server向Local DNS Server返回指定域名的a记录或CNAME,并设置TTL。

>

A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。

CNAME:别名记录。这种记录允许您将多个名字映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。服务商从方便维护的角度,一般也建议用户使用CNAME记录绑定域名的。如果主机使用了双线IP,显然使用CNAME也要方便一些。

TTL(Time To Live):也就是设置这个DNS解析在Local DNS Server上面的过期时间。超过了这个过期时间,URL和IP的映射就会被删除,需要获取还要请求Name Server。

7、如果此时获取的是A记录,那么就可以直接访问网站的IP了。但是通常来说大型的网站都会返回CNAME,然后将其传给GTM Server。

GTM(Global Traffic Manager的简写)即全局流量管理,基于网宿智能DNS、分布式监控体系,实现实时故障切换及全球负载均衡,保障应用服务的持续高可用性。传给GTM的目的就是希望通过GTM的负载均衡机制,帮助用户找到最适合自己的服务器IP。

也就是离自己最近,性能最好,服务器状态最健康的。而且大多数的网站会做CDN缓存,此时就更需要使用GTM帮你找到网络节点中适合你的CDN缓存服务器。

8、找到CDN缓存服务器以后,可以直接从服务器上面获取一些静态资源,例如:HTML、CSS、JS和图片。但是一些动态资源,例如商品信息,订单信息,需要通过第9步。

9、对于没有缓存的动态资源需要从应用服务器获取,在应用服务器与互联网之间通常有一层负载均衡器负责反向代理。有它路由到应用服务器上。

总结

DNS服务器是用来做URL与IP地址解析的,帮助用户找到要访问服务器的IP。从DNS服务器的结构来说大致分为三层:根域名服务器,顶级域名服务器,本地域名服务器。

申请域名的供应商会提供Name Server作为DNS解析。从用户访问一个网站出发,经过浏览器,本地Host文件、Local DNS Server、Root DNS Server、顶级域名服务器(gTLD、ccTLD、New gTLD)、Name Server、GTM、CDN、Application Server。共经历了九个步骤。

来源:https://blog.51cto.com/14279308/2481205

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。