DNS解析学习笔记

什么是域名解析

Internet上的计算机是通过IP地址来定位的,给出一个IP地址,就可以找到Internet上的某台主机。而因为IP地址难于记忆,又发明了域名来代替IP地址。但通过域名并不能直接找到要访问的主机,中间要加一个从域名查找IP地址的过程,这个过程就是域名解析。

负责将域名解析成为IP地址的服务器,叫做域名解析服务器,英文简称是DNS。Internet上所有的DNS通过域的层次关系连接在一起。

当Internet用户打开浏览器,输入一个网址的时候,比如http://www.google.com 用户的计算机并不知道www.google.com是哪一台主机,因此计算机向Internet的DNS发出查询请求,DNS将查询到的IP地址返回给用户的计算机,用户计算机就可以根据IP地址连接www.google.com主机,把网页下载下来。

相关名词

根域

就是所谓的“.”,其实我们的网址www.google.com在配置当中应该是www.google.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。

根域服务器我们知道有13台,但是这是错误的观点。

根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。

域的划分

根域下面就是顶级域或者叫一级域.

有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com. net.等,一种是按国家划分的如cn. jp.等。

每个域都会有域名服务器,也叫权威域名服务器。

google.com就是一个顶级域名,而www.google.com却不是顶级域名,是在google.com这个域里的一叫做www的主机。

一级域之后还有二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的)。

比如lly.www.google.com,在这个网址中,www.google.com变成了一个二级域而不是一台主机,主机名是lly。

域名服务器

能提供域名解析的服务器,上面的记录类型可以是A(address)记录,NS记录(name server),MX(mail),CNAME等。

A记录是什么意思呢,就是记录一个IP地址和一个主机名字,比如我这个域名服务器所在的域test.google.com,我们知道这是一个二级的域名,然后我在里面有一条A记录,记录了主机为lly的IP,查到了就返回给你了。

如果我现在要想google.com这个域名服务器查询lly.test.google.com,那么这个顶级域名服务器就会发现你请求的这个网址在test.google.com这个域中,我这里记录了这个二级域的域名服务器test.google.com的NS的IP。我返回给你这个地址你再去查主机名为lly的主机。

DNS解析原理

DNS解析主要有递归查询,就是在某个DNS服务器缓存中查找不到相应的域名与IP地址对应关系时,自动跳转到到下一步骤通过下一个DNS服务器进行查找。具体可见如下两图:

DNS解析过程

以下步骤中,当DNS缓存中存在域名对应IP时则DNS解析成功,用户计算机将直接访问服务器,若DNS服务器缓存中不存在域名对应IP,则自动进入下一步。

  • 浏览器缓存

当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);

  • 系统缓存

当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP;

  • 路由器缓存

当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客服端的DNS缓存;

  • ISP(互联网服务提供商)DNS缓存

当在用户客服端查找不到域名对应IP地址,则将进入ISP DNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找;

  • 根域名服务器

当以上均未完成,则进入根服务器进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器;

  • 顶级域名服务器

顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名(如google.com)服务器的IP地址告诉本地DNS服务器;

  • 主域名服务器

主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器(www.google.com)进行查找,并重复该步骤直至找到正确纪录;

  • 保存结果至缓存

本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与web服务器建立链接。

DNS优化如何实现

一般域名商或服务器商都会提供免费的DNS服务,然而,很多情况下这些免费的DNS服务器速度较慢,故可做一定优化,具体可从以下几方面:

  • 增加DNS服务器数量

减小服务器压力,当单位服务器需要处理的DNS请求数量较少时速度会更快;

  • 全国多地分布DNS服务器

用户网络访问速度跟用户计算机到服务器的距离有关,若可以让用户就近访问所在省份的服务器便可以加速DNS解析速度;

  • 识别用户线路反馈相应线路IP

当用户网络线路跟服务器网络线路一致时速度较快,而不一致时则较慢,如:用户使用电信的线路但服务器是联通的线路,这样就会造成用户访问网站速度下降,如果可以识别用户访问线路并反馈相应IP则会加速网站访问。