DNS服务器概念与查询方式
原创
©著作权归作者所有:来自51CTO博客作者VFAST_吴星超的原创作品,如需转载,请与作者联系,否则将追究法律责任
一、DNS的概念:
DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者一对多)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。简单的说DNS的作用就是,将域名翻译为ip的过程,就是dns解析。
二、FQDN
全域名(FQDN,Fully Qualified Domain Name)是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。例如,myjj公司的Web服务器的全域名可以是www.myjj .com. ,而域名中以点结尾的则认为是全域名。这种区别在理解和控制解析过程时是非常重要的。句点实际上指出了域名树的根。
一个完整的DNS区域包含以自己的DNS域名为基础命名空间的所有DNS命名空间的信息,当基于此DNS命名空间新建一个DNS区域时,新建的区域称为子区域。
例如,完整的a.ns.yb.com区域包含了以 .com为基础命名空间的所有DNS命名空间的信息,yb.com. 则称为.com的一个子区域,而 ns.yb.com. 被成为 yb.com的子域。
以此类推,我们将 . 域下域名成为二级域名,二级域名以下的统称为 .xxx 的子域(xxx代表com、net等)。但我们在书写的时候是从最低一级的写起,直至顶级域名,而DNS查询和解析顺序正好和这个相反。
三、DNS的查询方法:
如在下图中DNS客户机需要访问的www.yb.com只是一个服务器的名称,而服务器在接受到请求后,查看本地的DNS数据库中是否存在该域名的解析,若存在则将其ip返回给客户机,客户机才识别器ip从而连接到互联网上面。
客户机向服务器发出请求解析域名后,DNS服务器的查询方式有两种:递归查询和迭代查询。
递归查询为当客户机向DNS服务器发出请求后,DNS服务器查询其本地的数据库中是否存储相关的解析内容,若存储,则将该存储所解析的IP地址返回给客户机,从而使客户机进行数据的访问;若查询不到,则宣告查询的失败。
迭代查询主要是针对服务器之间的查询的,当客户机向本地DNS服务器查询时,服务器不能给出明确的解析结果,但告诉客户机另一个服务器的IP地址,客户机再去进行访问,直至查询到需要请求的解析结果。
迭代查询的详细过程:
① 客户机向本地DNS服务器发起请求,问www.yb.com的IP地址是多少?
② 本地DNS服务器收到DNS客户机的迭代查询,根服务器作出相应,提供靠近所提交域名的DNS服务器的IP地址
③ 本地DNS服务器向靠近所提交的DNS服务器发起迭代查询,以此类推,直到本地DNS服务器收到所要查询的资源记录
④ DNS服务器收到资源记录后发送给本地DNS服务器
⑤ 本地DNS服务器将资源记录回应给DNS客户机
下一篇:企业内部文件存储服务器的搭建
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python中两种网络编程方式:Socket和HTTP协议
本文将介绍Python中两种主要的网络编程方式:Socket编程和基于HTTP协议的网络编程,并通过实际案例来演示它们的应用。
Python 网络编程 Socket HTTP协议 -
mysql模糊查询的两种方式
mysql模糊查询的两种方式
字段 MySQL 占位符 -
MyBatis的级联查询(两种方式)
与上次唯一不同的一下几个类Department.javapackage com.cn.zhu.bean;public cla
MyBatis映射文件--增删改查 mybatis的增删改查 MyBatis的级联查询 封装 java -
python 了解函数的两种查询方式
python 了解函数信息的两种方式
python 查询 函数 信息