目录
1.3.1 DNS服务器的基本工作
接收来自客户端的查询消息,然后根据消息内容返回响应
其中,查询消息有:
a).域名
服务器,邮件服务器的名称(@候的一串名称)
b).Class
用来识别网络的信息 由于目前只有互联网,故Class的值永远代表互联网的IN
c).记录域名对应的类型
类型为A,表明域名对应的是IP地址
类型为MX(Mail eXchange),表明域名对应的是邮件服务器
DNS先保存这三种类型的数据,再从IP地址记录表中进行对照查找,然后给客户端响应
举两个栗子:
1.查询www.lab.glasscom.com的域名对应的IP地址 客户端会想服务器发送包含一下信息的查询消息:
- 域名=www.lab.glasscom.com
- Class=IN
- 记录类型=A
DNS收到后,会从已有的消息记录中查找与这三种信息全匹配的记录(设记录如上图)
经查询第一行记录与之完全匹配,则返回给客户端所需的A信息->IP地址
②查找一个邮件地址tone@glasscom.com所对应的邮件服务器。客户端向服务器发送以下消息
- 域名=glasscom.com
- Class=IN
- 记录类型=MX
DNS收到并查询后会返回邮件服务器的域名和优先级 即上图中的glasscom.com和10
注:为啥会返回优先级?
当一个邮件地址对应多个邮件服务器时,需要根据优先级来判断哪个邮件服务器优先。优先级数值较小的邮件服务器表示更优先
另外,还有其他的记录类型,例如查询DNS服务器IP地址的NS类型,原理和上述相同。通过组合不同的记录类型,可以处理不同信息
1.3.2域名的层次结构
在包含多台DNS服务器的系统中,DNS是如何工作的:
将信息分布保存在多台DNS服务器中,各DNS服务器相互接力配合,从而找出要查询的信息。
信息在DNS中的注册与保存:
1)DNS中的域名层次
例如www.lab.glasscom.com 不同层次之间用点来划分 在域名中,越靠右表示层级越高, 按公司结构来说,上述域名即为com集团 glasscom 部lab 科的www 但域名中不限于这4个层次,它更加灵活,每增加一个点,就增加一个层次
2).具有层次结构的域名信息会以一个整体的形式注册到DNS服务器中,每个域都是作为一个整体来处理的,不能将其信息拆分放在不同DNS服务器中
3)DNS服务器和域不总是一对一,一台DNS服务器可以存放多个域的信息
4)对于公司域来说,需要为每一个事业集团配备一台DNS服务器,以分别管理各自的信息。在保证不分割一个域的前提下,可以在域下建立下级域(子域)再分配给各事业集团
1.3.3寻找相应的DNS服务器并获取IP地址
如何找到DNS服务器中存放的信息->如何找到所需信息所存放的DNS服务器
DNS服务器的逐层信息注册保存机制 (DNS服务器的信息配置)
(1)下级域的DNS服务器的IP地址依次逐层注册到它对应的上级域中,上级域分别保存它所有下级域的信息。例如,www.nikkeibp.co.jp从左至右的IP地址将依次注册,最后到jp域(顶级域),但顶级域不是终点,顶级域的IP地址还将注册到根域中。根域即域名最后的那个句点(书写时常省略)。根据这样的机制,便可从根域开始一路向下顺藤摸瓜找到任意一个域的DNS服务器。
(2)还需要将根域DNS服务器的信息保存在互联网上所有的DNS服务器中。由此,每台DNS服务器便可找到根域DNS服务器,并通过根域DNS服务器一路找到位于下层的某台DNS服务器。
全世界分配给根域DNS服务器的IP地址只有13个(但可以用多台服务器对应一个IP地址,故服务器的数量还是很多的)
DNS服务器从多台DNS服务器中找到目标服务器的过程
1)首先客户端会访问最近的一台DNS服务器(也就是客户端的TCP/IP设置中填写的DNS服务器地址)
2)若最近的服务器中不包含我们想要的域名地址,即访问根域DNS服务器,再从
3)根域逐层向下查询,(域名中从右到左)直到找到目标域名的IP地址为止
俺的DNS服务器配置:
查询:
查询并反馈:
1.3.4通过缓存加快DNS服务器的响应
缓存:指的是将使用过的数据存放在离使用该数据的地方较近的高速存储装置中,以便提高后续访问速度的技术
真实中互联网的工作方式:一台DNS服务器可能管理多个域的信息,故不是每个域都有自己的DNS服务器,上级域和下级域可能共享一个DNS服务器,故可以减少需要访问的DNS服务器的数量
域名查找的缓存机制:
- 缓存功能可以记住之前查询过的域名,故若要查询的域名和关键信息在缓存中,查询可直接从缓存开始,不必每次都从根域开始查询,这样可以减少查询时间
- 要查询的域名不存在时,“不存在”这一响应也会被缓存,由此当再次查询这个不存在的域名时,也可快速访问
- 缓存的信息具有时效性,当它超过有效期后,就会从缓存中删除。DNS服务器将告知客户端响应的来源是缓存还是负责管理该域名的服务器。