AXFR和IXFR区域传输及原理
由于区域在DNS中发挥着重要的作用,因此希望在网络上的多个DNS服务器中提供区域,以提供解析名称查询时的可用性和容错。否则,如果使用单个服务器而该服务器没有响应,则该区域中的名称查询会失败。对于主要区域的其他服务器,必须进行区域传输,以便从主要区域中复制和同步所有区域副本。
1. AXFR和IXFR区域传输
当新的DNS服务器添加到网络,并且配置为现有区域的新的辅助服务器时,它执行该区域的完全初始传送,以便获得和复制区域的一份完整的资源记录副本。对于大多数较早版本的DNS服务器实现,在区域更改后如果区域请求更新,则还将使用相同的完全区域传输方法。对于运行Windows Server 2003的DNS服务器来说,DNS服务支持“增量区域传输”方式进行快速区域副本复制和同步。当作为区域源的Windows Server 2003 DNS服务器和从其中复制区域的任何服务器都支持递增传送时,它提供了公布区域变化和更新情况的更有效方法。
在较早的DNS实现中,更新区域数据的任何请求都需要通过使用完全区域传输(Full Zone Transfer,AXFR)查询来完全传送整个区域数据库。在Windows 2000以后的DNS系统中,允许进行增量区域传输(Incremental Zone Transfer,IXFR),这时可使用任选的查询类型,允许辅助服务器仅找出一些区域的变化用于区域副本与源区域(可以是另一DNS服务器维护的主要或辅助区域副本)之间的同步。
通过IXFR区域传输时,区域的复制版本和源区域之间的差异必须首先确定。如果该区域复制源DNS服务器的序号(如图所示)与申请同步复制的DNS服务器该区域的序列号所指示的版本相同,则不进行任何传送;如果复制源DNS服务器的序列号比申请同步复制的DNS服务器对应区域的序列号大,则传送的内容仅由区域中每个递增版本的资源记录的改动组成。
图 DNS区域序列号和主DNS服务器配置
为了使IXFR查询成功并发送更改的内容,此区域的主DNS服务器必须保留增量区域变化的历史记录,以便在应答这些查询时使用。实际上,增量区域传输过程在网络上需要更少的通信量,而且区域传输完成得更快。
区域传输始终在区域的辅助DNS服务器上发起请求,请求发送到作为区域源配置的主服务器(参见图2-2中的“主服务器”选项)中,但主服务器可以是加载区域的任何其他DNS服务器,如区域的主要DNS服务器或另一辅助DNS服务器。当主服务器接收区域的请求时,它可以通过区域的部分或全部传送来应答辅助服务器。
区域传输可能会发生在以下任何情况中:
l 当区域的刷新间隔(参见图2-2中的“刷新间隔”设置选项)到期时
l 当其主服务器主动向辅助服务器通知区域更改(也就是发出DNS通知,在本章后面介绍)时
l 当启动区域的辅助服务器时(辅助DNS服务器只能向主要DNS服务器复制记录)
l 在区域的辅助服务器使用DNS控制台以便手动启动(通过执行“刷新”菜单操作)来自其主服务器的传送时
2. 区域传输原理
图显示了DNS服务器之间的区域传输过程。该过程取决于区域在以前是否复制过而变化,或者取决于是否在执行新区域的初次复制而变化。在此仅以第一次区域复制过程为例进行介绍。

图 DNS服务器区域复制顺序
(1)目标服务器向源服务器发出查询SOA(起始授权机构,也就是在图2-2中所配置的“主服务器”)查询的请求。因为目标服务器总是区域的辅助服务器,不能自定义主要服务器。
(2)源服务器给出SOA查询请求应答,告诉目标服务器SOA中配置的主服务器地址,也就是SOA资源记录。
(3)目标服务器向主要DNS服务器发送初始“所有区域”传送(AXFR)区域传输请求。
(4)主(源)服务器作出响应,并将此区域完全或者增量区域信息传送到辅助(目标)服务器。传输内容中同时包括了源服务器中的SOA配置的序列号,以阻止循环复制。SOA资源记录中也包含一个以秒为单位的状态刷新间隔(默认设置是900秒或15分钟),指出目标服务器下一次应在何时请求使用源服务器来续订该区域。
刷新间隔到期时,目标服务器再次使用SOA查询来请求从源服务器续订此区域。源服务器应答其SOA记录的查询。该响应包括该区域在源服务器中的当前状态的序列号。
(5)目标服务器检查响应中的SOA记录的序列号,并确定怎样续订该区域。
如果SOA响应中的序列号值等于其当前的本地序列号,那么得出结论,区域在两个服务器中都相同,并且不需要区域传输。然后,目标服务器根据来自源服务器的SOA响应中的该字段值重新设置其刷新间隔,来续订该区域。
如果SOA响应中的序列号值比其当前本地序列号要高,则可以确定此区域已更新并需要传送。
如果这个目标服务器推断此区域已经更改,则它会把IXFR查询发送至源服务器,其中包括此区域的SOA记录中序列号的当前本地值。
(6)源服务器通过区域的增理传输或完全传送作出响应。
如果源服务器通过对已修改的资源记录维护最新递增区域变化的历史记录来支持递增传送,则它可通过此区域的递增区域传输(IXFR)作出应答。如果源服务器不支持递增传送或没有区域变化的历史记录,则它可通过其他区域的完全(AXFR)传送作出应答。
【注意】对于运行Windows 2000和Windows Server 2003的服务器,支持通过IXFR查询进行增量区域传输。对于DNS服务的早期版本和许多其他DNS服务器实现系统,增量区域传输是不可用的,只能使用全区域(AXFR)查询来复制区域。
AXFR和IXFR区域传输及原理的更多相关文章
- kali linux之被动信息收集(dns信息收集,区域传输,字典爆破)
公开可获取的信息,不与目标系统产生交互,避免留下痕迹 下图来自美军方 pdf链接:http://www.fas.org/irp/doddir/army/atp2-22-9.pdf 信息收集内容(可利用 ...
- DNS无法区域传送(axfr,ixfr)
这两天博主在学习dns服务器的配 首先简单介绍一下axfr,ixfr axfr:完全区域传送 ixfr :增量区域传送 主要是在dns主从服务器上面进行备份更新的. ----------------- ...
- DNS区域传输和DNS字典爆破
nslookup命令是已知域名的的解析记录下进行的查询.打个比方,已知sina.com这个域名有www.sina.com这条主机解析记录,就可以查询www.sina.com对应的ip以及其他相关信息. ...
- 【转】QQ传输文件原理参考(来自互联网)
QQ的文件发送是怎样的过程呢?通常,发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机,当接收计算机同意接收的确认消息反馈到消息服务器后,消息服务器将据此设置好文件传输对话.随即,发送计 ...
- Https 安全传输的原理
序言 今天来聊一聊https 安全传输的原理. 在开始之前,我们来虚构两个人物, 一个是位于中国的张大胖(怎么又是你?!), 还有一个是位于米国的Bill (怎么还是你?!). 这俩哥们隔着千山万水, ...
- TCP传输工作原理
引言 在TCP/IP体系结构中,IP协议只管将数据包尽力传送到目的主机,无论数据传输正确与否,它都不做验证,不发确认,也不保证数据包的顺序,因而不具有可靠性.这一问题要由传输层TCP协议来解决,TCP ...
- git传输协议原理
git精神:distributed-is-the-new-centralized 转自:http://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5% ...
- FTP文件传输服务器原理
FTP服务器,全称File Transfer Protocol Server,是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务.FTP,文件传输协议(File Transfer ...
- 随机线性网络编码的C语言实现,实现可靠传输:原理(1)
线性方程组,大家都不陌生吧.来一组 A11 *X1 + A12 *X2 + A13 *X3 + A14 *X4 =Q1 A21 *X1 + A22 *X2 + A23 *X3 + A24 *X4 =Q ...
随机推荐
- Linux下C高手成长过程----经典书籍推荐
http://www.cnblogs.com/shanzhizi/archive/2012/07/10/2585357.html
- open_basedir restriction in effect的错误及其解决办法
问题是出现在了PHP.INI上面了 原因是php.ini里设置了 opendir=/var/web/w0895/:/tmp:/usr/lib/php 解答: 其实open_basedir ...
- Android开发技术重要参考资料
只言片语 有的时候看不懂别人的代码,觉得自己笨:其实,你想多了,看不懂不是因为你蠢而是别人的代码写得烂:所以,别那么宽容别人却苛责自己. 参考资料 郭霖 way 爱哥 有心 胡凯 robin trin ...
- [POI2005]Bank notes
link 试题分析 我们发现此题是一个十分简单的多重背包.但是按照朴素写法会超时.所以要去考虑优化. 我们发现我们若$W=7$,可以拆成$1+2+4$,不用每次$1+1+1+1+1+1+1$,从$N$ ...
- Python多线程、进程、协程
本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...
- Linux之进程通信20160720
好久没更新了,今天主要说一下Linux的进程通信,后续Linux方面的更新应该会变缓,因为最近在看Java和安卓方面的知识,后续会根据学习成果不断分享更新Java和安卓的方面的知识~ Linux进程通 ...
- DES算法和MAC算法总结
需要用到的工具类,代码如下: import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java. ...
- echars画折线图的一种数据处理方式
echars画折线图的一种数据处理方式 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- lnmp集成环境tp nginx vhost配置
server { listen 80; server_name xxx; charset utf-8; root /home/wwwroot/axxx/public; index index.html ...
- 实例讲解启动mysql server失败的解决方法
MySQL 实例讲解启动mysql server失败的解决方法 来源: 作者: 发表于: 启动mysql server 失败,查看/var/log/mysqld.err 080329 16:01:29 ...