【云计算 IT 基础知识】 5.5.2 DNS

muzilan 2016-08-20 10:54:28
加精

【云计算 IT 基础知识】系列1 目录/汇总(持续更新)

------------------------------------------------------------


5.5.2 DNS


概念

域名系统DNS(Domain Name System)是一种能够完成从名称到地址或从地址到名称的映射系统。在使用DNS的情况下,计算机用户可以间接地通过域名来完成通信。Internet中的DNS被设计成为一个联机分布式数据库系统,采用客户/服务器方式工作。分布式的机构使DNS具有很强的容错性。




域名空间


域名空间是一种具有层次结构的命名空间。其设计方式为所有的名称由倒置的树结构定义,根节点位于顶部。树的级别有0级(根节点)到127级,一共128级。整棵树汇聚到根节点,树的每一层定义了一个层次级别。域名空间如图5-34所示。



树中的每一个节点有一个标号(label)。标号是一个最多包含63个字符的字符串。根节点的标号是空字符串(空串)。DNS要求每一个节点的子节点(同一节点的分枝节点)有不同的标号,以确保域名的唯一性。

树中的每一个节点构成一个域名。一个完整的域名是用符号“.”分隔的标号序列。域名总是从节点向上读取到根节点。 最后一个标号是根节点的标号(为空)。

DNS是一种可以用于不同平台的协议。在Internet中,域名空间(树)分为三个不同部分:

l 国家域
第一级采用两字符的国家英文名缩写(例如cn代表中国)。第二级标号可以是组织
机构,或者由自己国家自行指定。
l 通用域
最初的7个三字符域标号和新增的7个域标号,如表5-15所示。




l 反向域
用于将地址映射为名称。反向域的第一、二级节点为单节点,分别称为arpa和inaddr。域的其他部分用于定义IP地址。

处理反向域的服务器也是层次结构的。地址的网络号部分所处的层次高于主机号部分所处的层次。为整个网站服务的服务器所处的层次高于为子网服务的服务器。这种配置方法使得反向域与通用域或者国家域相比,看起来是倒置的。按照由下向上读取标号的约定,一个IP地址如140.252.13.33(一个B类地址,网络号是140.252)会被读取为33.13.252.140.in-addr.arpa.。




名称地址解析


在解析时需要使用DNS客户端的解析器。名称地址解析包括将名称映射为地址和将地址映射为名称。

解析过程如下:
1. 主机进程调用解析器。
2. 解析器向最近的DNS服务器发送映射请求:
l 将名称映射为地址:解析器向服务器提交域名。
l 将地址映射为名称:解析器向服务器提交经过处理的地址(例如33.13.252.140.inaddr.arpa.)。
3. 服务器判断是否含有解析器需要的信息:
l 是,向解析器发送映射响应。
l 否,将解析器指向其他服务器,或者请求其他服务器提供映射信息。解析器或其他服务器进行类似处理,直至服务器向解析器发送映射响应。
4. 解析器收到并解析该映射响应,以确定该响应是一个真正的解析还是一个错误。
5. 解析器将结果传递给发出解析请求的主机进程。

解析方式分为如下两种:
l 递归解析
客户端(解析器)期望服务器提供最终答案。如果服务器是被查询域名的授权者,服务器会检查其数据库并做出响应。如果服务器不是授权者,服务器会把请求发送给其他服务器(通常是父服务器),并等待响应。如果父服务器是授权者,父服务器就做出响应。否则父服务器仍把查询发送给其他服务器。当查询最终得到解析后,响应就回溯,直到最终到达发出请求的客户端。

递归解析的流程示意图如图5-35所示。



流程说明如下:
1. 客户机向.edu域名服务器发送查询请求,希望获知域名test.china.huawei.com对应的IP地址。
2. .edu域名服务器发现自己不是该域名的授权者,将该请求发送给根域名服务器。
3. 根域名服务器发现自己也不是该域名的授权者,将该请求发送给.com域名服务器。
4. .com域名服务器发现自己也不是该域名的授权者,将该请求发送给.huawei.com域名服务器。
5. .huawei.com域名服务器发现自己也不是该域名的授权者,将该请求发送给.china.huawei.com域名服务器。
6. .china.huawei.com域名服务器发现自己是该域名的授权者,查询得到该域名对应的IP地址,并将其发送给.huawei.com域名服务器。
7. .huawei.com域名服务器将其发送给.com域名服务器。
8. .com域名服务器将其发送给根域名服务器。
9. 根域名服务器将其发送给.edu域名服务器。
10. .edu域名服务器将其发送给客户机。

l 迭代解析
如果客户端没有请求递归查询,则映射以迭代的形式完成。如果服务器是名称的授权者,服务器发送应答;反之,服务器会返回一个它认为能够解析该查询的服务器的IP地址给客户端,由客户端负责向第二台服务器重复发送请求。如果新的地址解析服务器能够解析该问题,就用IP地址响应该请求。否则,第二台服务器再向客户端返回新的地址解析服务器的IP地址。客户端则向第三台服务器重复发送请求。重复类似过程,直至客户端查询到最终结果。

迭代解析的流程示意图如图5-36所示。



流程说明如下:
1. 客户机向.edu域名服务器发送查询请求,希望获知域名test.china.huawei.com对应的IP地址。
2. .edu域名服务器发现自己不是该域名的授权者,向客户机返回根域名服务器的IP地址。
3. 客户机向根域名服务器发送查询请求。
4. 根域名服务器发现自己也不是该域名的授权者,向客户机返回.com域名服务器的IP地址。
5. 客户机向.com域名服务器发送查询请求。
6. .com域名服务器发现自己也不是该域名的授权者,向客户机返回.huawei.com域名服务器的IP地址。
7. 客户机向.huawei.com域名服务器发送查询请求。
8. .huawei.com域名服务器发现自己也不是该域名的授权者,向客户机返回.china.huawei.com域名服务器的IP地址。
9. 客户机向.china.huawei.com域名服务器发送查询请求。
10. .china.huawei.com域名服务器发现自己是该域名的授权者,查询得到该域名对应的IP地址,并将其发送给客户机。




高速缓存



服务器每次接收到不属于自己域的名称请求时,它需要搜索自己的数据库以查找一台服务器的IP地址。缩短查询时间能提高效率。DNS使用高速缓存机制处理该问题。当服务器向其他服务器请求映射并得到回应时,它首先将该信息存储在高速缓存中,然后再发送给客户端。如果同一客户端或者其他客户请求同一映射,它会检查地高速缓存解析该请求。且需要通知客户该响应来自于高速缓存而不是来源于授权服务器,服务器会将该响应标志为“非授权性的”。

高速缓存能够提高解析速度,但也存在问题。如果一台服务器长时间缓存一种映射,可
能会发送给客户端一个过期的映射。通常有如下两种技术可以防止发生这种情况:
l 授权服务器始终给映射增加称为TTL(Time to Live)的信息。TTL以秒为单位,定义接收服务器可以缓存该信息的持续时间。超过该时间,映射变为无效,任何请求必须再次发送到授权服务器。
l DNS需要每一台服务器为它缓存的每一个映射保存一个TTL计数器。高速缓存会定期检查,清除TTL已经过期的映射。





报文格式


DNS报文由12字节长的首部和4个长度可变的字段组成,其报文格式如图5-37所示。



报文中各字段的含义如表5-16所示。






------------------------------------------------------------













...全文
2057 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzilan 2016-10-19
  • 打赏
  • 举报
回复
Envy__f 2016-08-25
  • 打赏
  • 举报
回复
谢谢楼主的分享
joyhen 2016-08-25
  • 打赏
  • 举报
回复
大神,准备出书吗,我必买一本
muzilan 2016-08-25
  • 打赏
  • 举报
回复
引用 9 楼 foStyles 的回复:
谢谢楼主的分享
引用 8 楼 Joyhen 的回复:
大神,准备出书吗,我必买一本
O(∩_∩)O谢谢支持,好感动~~~
muzilan 2016-08-25
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
DNS劫持还是很可怕的!
相当可怕啊!!!!
赵4老师 2016-08-22
  • 打赏
  • 举报
回复
DNS劫持还是很可怕的!
muzilan 2016-08-22
  • 打赏
  • 举报
回复
引用 2 楼 line_us 的回复:
从名称到地址或从地址到名称的映射系统
是的,DNS还是很常用的概念
muzilan 2016-08-22
  • 打赏
  • 举报
回复
引用 1 楼 ljheee 的回复:
bucuo 不错。赞一个。。
O(∩_∩)O谢谢
muzilan 2016-08-22
  • 打赏
  • 举报
回复
引用 3 楼 cattpon 的回复:
后续会有汇总帖吗?
一直有汇总帖 【云计算 IT 基础知识】系列1 目录/汇总(持续更新):http://bbs.csdn.net/topics/391920316
cattpon 2016-08-22
  • 打赏
  • 举报
回复
后续会有汇总帖吗?
line_us 2016-08-20
  • 打赏
  • 举报
回复
从名称到地址或从地址到名称的映射系统
ljheee 2016-08-20
  • 打赏
  • 举报
回复
bucuo 不错。赞一个。。

448

社区成员

发帖
与我相关
我的任务
社区描述
云计算开发
社区管理员
  • 云计算
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧