文档章节

DNS域名解析过程

亚特兰缇斯
 亚特兰缇斯
发布于 2016/03/30 16:32
字数 1297
阅读 194
收藏 9
DNS

一、域名解析机制

当我们在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:(迭代域名解析)

  1. 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。

  2. 如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在 Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,在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. 权限域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址,连同一个TTL值返回给DNS Server域名服务器

  9. 返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存时间由TTL值控制

  10. 把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

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

二、域名解析记录

  1. A记录,用来指定域名对应的IP地址。A记录可以将多个域名解析到一个IP地址,反之不成立。

  2. MX记录,表示Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server。

  3. CHAME记录,全称Canonical Name(别名解析)。就是可以为一个域名设置一个或多个别名。

  4. NS记录,为某个域名指定DNS解析服务器。

  5. TXT记录,为某个主机名或者域名设置说明。

  6. AAAA记录,将域名解析到IPV6地址的DNS记录。

三、跟踪域名解析过程

在Linux和window都可以用nslookup命令来查询域名的解析结果,如下图:

在Linux系统还可以用dig命令查询DNS的解析过程,如下图:(dig常用命令


© 著作权归作者所有

上一篇: Linux命令教程
下一篇: 算法面试题
亚特兰缇斯
粉丝 15
博文 85
码字总数 48897
作品 0
崇明
私信 提问
加载中

评论(1)

娜娜nbhh
娜娜nbhh
有点意思,学习了
带您全面了解DNS服务器的工作原理及其过程

  DNS服务器所提供的服务是完成将主机名和域名转换为IP地址的工作。为什么需要将主机名和域名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览...

zt371
2009/05/23
166
0
DNS域名解析过程

第一步:浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。浏览器缓存域名也是有限制的,包括缓存的时间、大小,可以通过TTL属性来设置。 第二步:如果用...

小和尚敲代码
2016/05/08
112
0
减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名

我们知道在用户访问网站时先得经过域名DNS解析这一过程,可能很多人对于DNS解析时间平常并没有太在意。性能稳定、响应时间快的DNS域名解析服务与不稳定、响应过慢的DNS的域名解析时间可能相差...

Joe小桥
2015/10/28
498
0
DNS原理及其相关概念(DNS连载一)

DNS是一种名称解析协议,,方便人们访问网站,人类记忆无意义的数字是非常容易忘记的. 域名解析就能很好的解决这个问题.下面包含以下内容, 1.DNS的详细介绍 2.DNS的正向解析和反向解析 3.DNS的常...

向下
2014/03/13
0
0
DNS功能实现

1、DNS配置正向查找区,将域名解析为IP地址 2、DNS配置反向查找区,将IP地址解析为域名 3、域名解析分类: A记录:域名>IP地址 cname记录 域名>域名 邮件交换记录(MX) 解析该域名下的邮件服...

nanhb
2016/12/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
6分钟前
1
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
33分钟前
2
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
今天
4
0
Django的ChoiceField和MultipleChoiceField错误提示,选择一个有效的选项

在表单验证时提示错误:选择一个有效的选项 例如有这样一个表单: class ProductForm(Form): category = fields.MultipleChoiceField( widget=widgets.SelectMultiple(), ...

编程老陆
今天
5
0
Vue核心概念及特性 (一)

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 > 特点: 易用,灵活,高效,渐进式框架。 > 可以随意组合需要用到的模块 vue + components + vue-router + vuex + v...

前端优选
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部