一、DNS提供的服务
- DNS是:
- (1)一个由分层的DNS服务器(DNS server)实现的分布式数据库;
- (2)一个使得主机能够查询分布式数据库的应用层协议。
- DNS协议运行在UDP之上,使用53号端口
- 与http,FTP,SMTP协议一样,DNS协议是应用层协议,其原因在于:
- 使用客户-服务器模式运行在通信的端系统之间;
- 在通信的端系统之间通过下面的端到端运输协议来传送DNS报文。
- 考虑当某个用户主机上的一个浏览器(即一个HTTP客户请求URLwww.someschool.edu/index.html页面时会发生什么现象。为了使主机能够请求报文发送到web服务器www.someschool.edu,该用户需要获取其IP地址。做法如下:
- 同一台用户主机上运行着DNS应用的客户端。
- 浏览器从上述URL中抽取出主机名www.someschool.edu,并将这台主机名传给DNS应用的客户端。
- DNS客户向DNS服务器发送一个包含主机名的请求
- DNS客户最终会收到一份回答报文,其中含有对应于该主机名的IP地址。
- 一旦浏览器接收到来自DNS的该IP地址,它能够向位于该IP地址的80端口的HTTP服务器进程发起一个TCP连接。
除了进行主机名到IP地址得转换外,DNS还提供了一些重要的服务
假设运行在用户主机上的某些应用程序需要将主机名转换为IP地址。这些应用程序将调用DNS客户端,并指明需要被转换的主机名。用户主机上的DNS接收到后,向网络中发送一个DNS查询报文。所有的DNS请求和回答报文使用UDP数据报经端口53发送。经过若干毫秒到若干秒的时延后,用户主机上的DNS接收到一个提供所希望映射的DNS回答报文。这个映射结果则被传递到调用DNS的应用程序
- DNS服务是一个实现查询主机名对应IP地址的黑盒服务,当应用程序希望查询一个主机名对应的IP地址时,会将主机名传递给运行在端系统上的DNS客户端,由DNS客户端向DNS服务器查询,最后返回IP地址给应用程序。
DNS服务集中式设计的问题:
根DNS服务器:13个根DNS服务器,标号A-M,存在镜像
- 顶级域DNS服务器:负责顶级域名,com、org、net、edu、gov
- 权威DNS服务器:因特网上具有公共可访问权限的主机
- 本地DNS服务器:每一个ISP都有一台本地DNS服务器(不属于DNS服务层次结构)
DNS查询
- 迭代式查询(所问非所答):一般DNS查询方式
- 递归式查询(所问即所答):
2、DNS缓存
- DNS缓存(DNS Cashing)用于改善时延性和减少因特网上传输DNS报文的数量。
在一个请求链中,当某DNS服务器接收一个DNS回答时,它能将映射缓存在本地存储器中
三、DNS记录和报文
资源记录(Resource Record, RR):提供主机名到IP的映射,四个字段,Name、Value、Type和TTL,其中TTL为记录的生存时间。 | Type | Name | Value | | :—- | :—- | :—- | | A | 主机名 | IP地址 | | NS | 域 | 知道该域中主机IP的权威DNS服务器主机名 | | CNAME | 规范主机名 | 主机别名 | | MX | 邮件服务器规范主机名 | 邮件服务器别名 |
1、DNS报文
- DNS只有查询和回答报文,且查询报文和响应报文格式相同
- 前12个字节是首部区域:
- 第一个字段(标识符)是一个16比特的数,用于标识该查询。这个标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和接收到的回答
- 标志字段中含有若干个标志:
- 1比特的“查询/回答”标志位指出报文是查询报文(0)还是回答报文(1)
- 当某DNS服务器是所请求名字的权威DNS服务器时,1比特的“权威的”标志位被置在回答报文中
- 如果客户(主机或者DNS服务器)在该DNS服务器没有某记录时希望它执行递归查询,将设置1比特的“希望递归”标志位。如果该DNS服务器支持递归查询,在它的回答报文中会有1比特的“递归可用”标志位置位
- 4个有关数量的字段指出了在首部后的4类数据区域出现的数量
- 问题区域包含正在进行的查询信息,该区域包括:
- (1)名字字段,包含正在被查询的主机名字
- (2)类型字段,指出有关该名字的正被询问的问题类型,例如主机地址是一个与名字相关联(类型A)还是与某个名字的邮件服务器相关联(类型MX)
- 在来自DNS服务器的回答中,回答区域 包含了对最初请求的名字的资源记录。在回答报文的回答区域中可以包含多条RR,因此一个主机名能够有多个IP地址
- 权威区域包含了其他权威服务器的记录
- 附加区域包含了其他有帮助的记录。例如,对于一个MX请求的回答报文的回答区域包含了一条资源记录,该记录提供了邮件服务器的规范主机名。该附加区域包含一个类型A记录,该记录提供了用于该邮件服务器的规范主机名的IP地址
2、在DNS数据库中插入记录