一、DNS服务器的基本工作
1、基本工作:接受来自客户端的查询消息,然后根据消息的内容返回响应
2、客户端的查询消息包含以下信息:
- 域名:服务器、邮件服务器(邮件地址中@后面的部分)的名称
- Class: 用来识别网络的信息(在最早设计 DNS 方案时,DNS 在互联网以外的其他网络中的应用也被考虑到了。不过,如今除了互联网并没有其他的网络了,因此 Class 的值永远是代表互联网的 IN )。
- 记录类型:表示域名对应何种类型的记录。例如,当类型为 A(Address缩写) 时,表示域名对应的是IP地址;当类型为 MX(Mail eXchange) 时,表示域名对应的是邮件服务器
3、当DNS收到客户端信息之后,在DNS中保存有相关信息的”资源记录表 “ 进行一一比对查询。当查询到3个项目信息完全一致时,于是,DNS服务器就会将记录中的192.0.2.226这个值返回给客户端。
查询MX记录类型的IP地址时,例如tone@glasscom.com,因为IP地址时保存在A记录中,而邮件服务器则是保存在MX记录中。
我们首先需要知道这个地址对应的哪一个邮件服务器,此时,我们需要提供@后面的那一串名称:消息如下:
(a)域名=glasscom.com (b)Class = IN (c)记录类型 = MX
此时DNS服务器会返回上图中的第二行的两条信息:10 和 [mail.glasscom.com](http://mail.glasscom.com/) 一个是邮件服务器的优先级(当一个邮件地址对应多个邮件服务器时,需要根据优先级来判断哪个邮件服务器优先),一个是域名,然后,通过 [mail.glasscom.com](http://mail.glasscom.com/) 域名查询到第三行对应的IP地址是: 192.0.2.227 则,MX记录的返回消息包括邮件服务器的域名,优先级,和对应的IP地址。
二、域名的层次结构
在互联网中存在着不计其数的服务器,将这些服务器的信息全部保存在一台DNS服务器中是不可能的,因此,一定会出现在DNS服务器中找不到要查询的信息的情况,
1、解决办法:
将信息分布保存在多台DNS服务器中,这些DNS服务器相互接力配合,从而查找出要查询的信息。
2、首先,DNS服务器中的所有信息都是按照域名以分层次的结构来保存的,这类似于公司中的事业集团、部门、科室这样的结构
其次,DNS中的域名都是用句点来分隔的,例如:www.lab.glasscom.com, 这里的句点代表了不同层次之间的界限。在域名中,越靠右的位置表示其层级越高,此域名表示:com事业集团glasscom部lab科的www,其中相当于一个层级的部分称为域。因此,com域的下一层是glasscom域,再下一层是lab域,再下面才是www这个名字。注:一个域的信息是作为一个整体存放在DNS服务器中的,不能将一个域拆开来存放在多台DNS服务器中。不过DNS服务器和域之间的关系也不总是一对一的,一台DNS服务器中也存放多个域的信息。
三、寻找相应的DNS服务器并获取IP地址
互联网中有数万台DNS服务器,我们不可能一台一台挨个找,所以我们采用树形结构,按级分配的原则,负责管理下级域的DNS服务器的IP地址注册到它们的上级DNS服务器中,然后上级DNS服务器的IP地址再注册到更上一级的DNS服务器中,以此类推。
例如:负责管理lab.glasscom.com这个域的DNS服务器的IP地址需要注册到glasscom.com域的DNS服务器中,而glasscom.com域的DNS服务器的IP地址又需要注册到com域的DNS服务器中。这样我们就可以通过上级DNS服务器查询出下级DNS服务器的IP地址。
在互联网中,顶级域称为根域,而根域的DNS服务器信息保存在互联网中所有的DNS服务器中。这样,任何DNS服务器就都可以找到并访问根域DNS服务器了,因此,客户端只要能够找到任意一台DNS服务器,就可以通过它找到DNS服务器,然后再一路顺藤摸瓜找到位于下层的某台目标DNS服务器。分配给根域DNS服务器的IP地址在全世界仅有13个,且地址几乎不发生变化。根域DNS服务器的相关信息已经包含在DNS服务器程序的配置文件中了,因此只要安装了DNS服务器程序,这些信息也就被自动配置好了。
工作流程:
1、客户端发出查询 www.lab.glasscom.com 的IP地址,给到最近的DNS服务器,但并不存在,但最近的DNS服务器保存了根域DNS服务器的信息,则将其转发给了根域服务器,但根域服务器也不存在该域名,但根据域名结构可以判断这个域名属于com域,因此根域DNS服务器会返回他所管理的com域中的DNS服务器IP地址,让最近的DNS服务器去com域查找,但com域DNS服务器也没有,但告诉其glasscom.com域的DNS服务器的IP地址,依次类推,最终查询到www.lab.glasscom.com 的IP地址返回给客户端