关于DNS迭代递归及区域复制
当用户在计算机a上请求查询 www.csdn.net ,那么 系统 按照如下顺序执行名称解析
Local Cache--Hosts File--DNS Server--NBT--LMhosts--WINS
具体到dns的查询,默认状态下,dns client会根据当前fqdn中的dns suffix来进行逐层抽取。
大家都知道 dns保留有树状架构,那么一次查询的顺序为:
a.md.com. -> md.com. -> .com. ->.
但这里要提到一点,通常在MS的平台上,抽取动作将会保留最后两个标签,in this case,就是.com.
此时系统就会判断当前dns forest中是否存在一个内部的dns root node,这就是在dnsmgmt.msc中新建一个dns zone的时候,系统自动产生的根节点。
如果存在此根节点,那么dns请求到达此节点,系统即认为已经到达根权威服务器,所有的dns请求到此终结,如果当前节点上没有 www.csdn.net 这个主机的dns纪录,那么整个查询的结果就是否定的。
通常企业部署中,我们都是删除了这个根节点,而设置转发,forward到ISP dns,这样当请求 www.csdn.net 的纪录时,root dns server就会将这个请求转发到isp dns server,得到结果后,再将dns纪录返回给dns client。
如果企业内部 root dns server处于企业dns架构的顶点,其下还有树状的dns架构,比如md.com.,比如sales.md.com. 那么每个dns zone都至少需要有一台dns server以负责维护当前dns zone,此dns server成为当前区域的dns权威服务器。
那么当a.md.com.发起的请求到达md.com.中dns server时,该dns server将会接受这个请求,然后查询自己所维护的zone,如果没有 www.csdn.net 的纪录,就将这个结果转发到其上层dns server .com.,如果仍旧没有结果,一次向上转送,直至获得结果(即便这个结果可能是没有找到),然后将结果依次返回回来,直至md.com.,然后md.com.将结果返回给a.md.com.
这个过程就是递归查询。
在实际的网络环境中,dns查询总是伴随着这两个查询模式。那么我们回头来看看您的问题:
1、 关键在于dns服务器也没有这条记录,缓存也没有,这时候dns 服务器会查询谁??
〉〉向当前dns server的上层dns server发起查询,至于它如何知道哪台server是它的上级。根据dns suffix抽取。比如sales.md.com. 抽取最前面的dns zone name sales,那么就知道它的上级是md.com.了
〉〉所有的dns查询都是按照dns树状架构逐层向上的,来自md.com.的查询自然要经过.com.
当然具体到win2k3中,您设置了forward or stub zone or其他快捷方式查询,那么到达md.com.可能根据您的设置被直接跳转到其他dns server。
〉〉所有的查询结果都会被当前区域的dns server缓存下来,当您在dnsmgmt.msc中开启高级察看的时候,您就能看到之前的dns query result cache。
比如a.md.com.查询 www.csdn.net ,在root dns node获得了结果,那么负责根域的dnsserver就会将 www.csdn.net 的dns纪录缓存下来,以便于其他dns client的查询,进而提高查询效能。
这样当来自 e.md1.com.的请求到达 root dns node时,负责根域的dnsserver就直接从cache中返回 www.csdn.net 的结果,而不用再次查询isp dns server(如果之前设置了forward to isp dns)
提出问题一:曾经认为
递归查询:客户机向负责DNS服务器查询,
迭代查询:为负责客户机查询的DNS没有目标信息,将他转发到其他的DNS,因为主机不认识其他的DNS所以这一切都是有这台DNS的SOA记录、默认信任域负责!等待DNS查询完后在返回主机一个递归(注意:客户机不认识其他的DNS)
说的马虎点就是:客户机和DNS服务器间和DNS返回客户机的查询为递归查询、而DNS向其他DNS查询为迭代查询!
我要说的是!其实简单的说就是这样的!辅助DNA在刷新时间到时向主DNS查看序列号!
如果发现序列号比自己的大(当然不会有小的情况)就立即复制!但是如果复制不成功(比如网络拥塞等造成的复制失败)就在重试间隔时间到时重试!(还不成功就在等待重试时间到!)如果二十四小时都重试失败的话、很好辅助DNS将认为自己已经崩溃、已经无法工作(所以领了退休金就不做了)
当然(除了辅助DNS有更新时间外,主DNS也会向辅助DNS发出更新通告)”
连上外网,说得再清晰一些就是,内网的用户需要连接到外部网络的某些服务,当然这个服务不一定就是web service
但无论什么服务,都免不了dns解析,dns只负责dns name 与ip地址之间的转换,其它任务它管不了。dns由于其树状层级结构,就决定了其层层向上的路由特性,在树的顶端,就是那个点的根域,这个就是权威,它就是解析的终结,无论任何dns请求在遇到它后,“即刻回头”无论解析结果的对错,还是无法解析,它都将解析的结果返回给dns请求者。
在dns请求者看来,无论这个点的根域是LAN还是WAN上的,都一样,“有奶的便是娘”。
所以,所谓冲突,就是如果,LAN中存在一个和WAN上同名的dns zone,而LAN中又存在点的根域,势必返回的结果就是LAN中的查询结构。
那么,在这种情况下,如果删除点的根域呢?同样也是LAN中的查询结果。谁在DNS层级架构中,最靠近dns client,谁最先响应dns query,谁就为dns client作解析,返回的结果也就是它说了算。这个情形,如果从安全的角度来讲,也就是DNS替换攻击的一种。
详细的论述,可以参考CISSP Certification Guide中 Secure DNS一节。
当dns client按照其dns client中设置的dns list(tcp/ip中的dns设定),从顶端依次发出查询的时候,第一个响应此请求的dns server,它和dns client之间构成的关系就是递归。这第一个响应查询的dns server,就是五星级酒店中的“金手指”,VIP提出的问题,由他来解决,客人只要等候就好了。
那么“金手指”在做什么呢?他自然为了解决客人的问题,联系一些他所知道的资源。也就是查询自己的dns cache、host file、dns server list in tcp/ip等等,当然最主要的还是依靠其在整个dns架构中的层级位置,依次查询那些dns服务器,这时候“金手指”和他们之间构成的关系就是迭代。
而如果“金手指”想尽了办法仍然徒呼奈何,怎么办呢?奥,终于想起来了,“有关部门”曾经给过他一个锦囊妙计,打开一看,“forward”给Michael(最近PrisonBreak中毒太深
yeah!终于拿到结果了!
最后“金手指”风尘仆仆地将结果递给客人,“抱歉,让您久等了!”。结果是否能让客人满意呢?就不是“金手指”所能知道的了,他已经尽力了,多么可爱的小伙子啊!
一个DNS查询的完整过程,是一个递归和迭代的混合查询的过程。
至于如何提高客户满意度,就要靠“有关部门”了,就是你们,Domain Admins!
• 在辅助 DNS 服务器上启动 DNS 服务。
• 刷新时间终止。
• 当更改保存到主控区域文件并有 Notify List 时。
• 在辅助 DNS 服务器上使用 DNS MMC,手动启动从主DNS服务器上的区域复制首先,辅助服务器等待一个由SOA记录中定义的“Refresh”指定的刷新间隔(默认为15分钟),向主DNS服务器查询其SOA
然后,主DNS服务器以其SOA记录回应
再次,辅助DNS服务器将返回的serial no和自己的对比,如果高,就向主DNS服务器发出更新请求
最后,主DNS服务器根据辅助DNS发出的请求,对比之前的更新记录,决定发起一个完全复制还是增量复制。如果主DNS服务器没有响应辅助DNS服务器的请求,那么复制DNS服务器将按照SOA记录中定义的“Retry”时间间隔(默认是10分钟)不断重复请求。如果超过SOA中定义的"Expire"时间段(默认是24小时),仍然没有得到回应,就废弃当前区域。但这不等同辅助DNS已经崩溃。
BTW:DNS Client 发起的DNS记录更新间隔也是24小时

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
在活动目录中,转移和占用操作主机角色(占用)
如何占用操作主机 操作主机是ActiveDirectory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃。 操作主机角色的唯一性决定了不是任意一台域控制器都能管理整个域,当一台承担着操作主机角色的域控制器需要停机维护,就需要将主机角色转移到另一台正常运行的域控制器上;但是当承担操作主机角色的域控制器突然崩溃,无法正常运行,就需要使用强制手段占用操作主机,它被称为强制转移 案例:某公司网络采用Windows server 2008 R2域环境进行管理,有两台域控制器DC01和DC02,其中DC01担任着五种操作主机角色。DC01突然宕机,无法启动,现在需要将五种操作主机强制转移到DC02。 1.在DC02打开命令提示符,输入“ntdsutil”命令。 2.在“ntdsutil”命令提示符下输入“roles”命令。 3.在“fsmo maintenance”命令提示符下,输入“connection”命令。 4.在“serverconnections”命令提示符下,输入“connect to serve...
- 下一篇
分布式文件系统之MooseFS----介绍
前一段公司因为nfs存储的问题,做了一段时间的调研。最终虽然有nfs高可用方案(nfs+drbd+heartbeat),但是在nfs故障切换的时候会出现 2 分钟左右的延时。这样子。。。就开始了对分布式文件系统的调研选型。也就是这样,有了本系列的博文。 针对 MooseFS 预计会有 3 篇博文,分为介绍、部署、深入。本篇博文主要介绍 MooseFS 。 一、简述 1、介绍 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。从其对文件操作的情况看,MooseFS就相当于一个类UNIX文件系统: 1、mfs是一个分层的目录树结构 2、存储支持POSIX标准的文件属性(权限,最后访问和修改时间) 3、支持特殊的文件,如:块设备,字符设备,管道和套接字,链接文件(符号链接和硬链接) 4、支持基于IP地址和密码的方式访问文件系统 2、特性 1、高可靠性,每一份数据可以设置多个副本(多份数...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 2048小游戏-低调大师作品
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池