DNS域名解析

逆变苔原
• 阅读 1817

整个过程大体描述如下,其中前两个步骤是在本机完成的,后8个步骤涉及到真正的域名解析服务器:

  1. 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。
  2. 如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Windows中可以通过C:WindowsSystem32driversetchosts文件来设置,在Linux中可以通过/etc/hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。
  3. 前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个LDNS,也就是本地区的域名服务器。这个DNS通常都提供给用户本地互联网接入的一个DNS解析服务,例如用户是在学校接入互联网,那么用户的DNS服务器肯定在学校;如果用户是在小区接入互联网,那么用户的DNS就是再提供接入互联网的应用提供商,即电信或联通,也就是通常说的SPA,那么这个DNS通常也会在用户所在城市的某个角落,不会很远。Windows环境下通过命令行输入ipconfig,Linux环境下通过cat /etc/resolv.conf就可以查询配置的DNS服务器了。这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,所以LDNS主要承担了域名的解析工作。
  4. 如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析
  5. 根域名服务器返回给本地域名服务器一个所查询的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右
  6. 本地域名服务器LDNS再向上一步返回的gTLD服务器发送请求
  7. 接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是用户注册的域名服务器,例如用户在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成
  8. Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址,连同一个TTL值返回给DNS Server域名服务器
  9. 返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存时间由TTL值控制
  10. 把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
高防加速CDN 高防加速CDN
2年前
域名解析平台如何解析域名?
域名解析平台顾名思义就是帮助进行域名解析的服务管理平台,当然它的自助性对应着它的免费。在域名解析平台上,不管你的域名是在哪里申请的,都可以在这个平台上进行解析。域名解析平台域名解析平台就是提供域名解析服务,在新网注册的域名,可使用新网域名解析服务器,在域名
Stella981 Stella981
4年前
Linux下DNS简单部署(主从域名服务器)
一、DNS简介DNS(DomainNameSystem),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是
Stella981 Stella981
4年前
Postfix邮件服务
DNS域名系统服务器IP与域名之间解析;提供分层的域名解析服务;bing伯克利加州大学应用最广的域名服务系统;bind主要分为主配置文件和域数据记录文件yum安装:yuminstallbindy配置NDS域名解析直接添加一下内容:root@mail~cat/e
Wesley13 Wesley13
4年前
DNS解析全过程分析
DNS解析过程!(https://oscimg.oschina.net/oscnet/cea17faee069f853dc0dcb337b3371124d3.png)1.检查浏览器缓存中是否缓存过该域名对应的IP地址用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址,当用户再次访问的时候
Wesley13 Wesley13
4年前
DNS解析过程
DNS解析过程是重点也是难点,下面我按自己的理解一步步来解释,可能有错误之处,欢迎指正。以下步骤中,将DNS缓存中存在域名对应IP则DNS解析成功,用户计算机将直接访问服务器,若DNS服务器缓存中不存在域名对应IP,则自动进入下一步。1.浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址
Stella981 Stella981
4年前
Nginx域名解析流程,源码分析
!(https://oscimg.oschina.net/oscnet/4a351a07169648d098175fedb4775d338e0.gif"键盘动图引导关注")nginx在做正向代理、反向代理的时候,或upstream使用域名的时候,要做频繁的域名解析,为了更快的响应,nginx有一套自己的域名解析过程!(https:/
Wesley13 Wesley13
4年前
CDN内容分发服务原理与传统请求剖析
1传统访问页面方式  (1)用户提交域名  (2)浏览器对域名解析,找不到对于的IP;再到操作系统,还是没有;再到路由器,    再没有就到DNS服务器找  (3)最后找到对应的IP地址,向域名的服务主机发出数据访问请求  (4)服务器就返回页面的内容给客户端  但是在这里的问题就是如果访问量很大的网站的话,比如
Stella981 Stella981
4年前
Http 缓存策略
1)浏览器缓存策略浏览器每次发起请求时,先在本地缓存中查找结果以及缓存标识,根据缓存标识来判断是否使用本地缓存。如果缓存有效,则使用本地缓存;否则,则向服务器发起请求并携带缓存标识。根据是否需向服务器发起HTTP请求,将缓存过程划分为两个部分:强制缓存和协商缓存,强缓优先于协商缓存。强缓存,服务器通知浏览器一个缓存时间,在
芝士年糕 芝士年糕
3年前
更改配置本地host地址
Hosts是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系,就是将一些常用的域名网址与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,如果找到,系统会立即打开对应网页,若没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析,若发现是被屏蔽
DevOpSec DevOpSec
2年前
CoreDNS企业级应用
1.IP地址会有变更,程序配置IP地址,所有涉及到此IP的地方都需要改变,对运维和研发都不友好2.IP不容易被记住引入域名来替换IP,这样业务使用唯一标识域名,域名可以通过DNS服务器解析成IP供业务三层通信使用。通过域名解耦了业务和IP,如果域名对应的IP有变动,修改域名解析即可,不用业务做调整。