由于区域在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区域传输及原理的更多相关文章

  1. kali linux之被动信息收集(dns信息收集,区域传输,字典爆破)

    公开可获取的信息,不与目标系统产生交互,避免留下痕迹 下图来自美军方 pdf链接:http://www.fas.org/irp/doddir/army/atp2-22-9.pdf 信息收集内容(可利用 ...

  2. DNS无法区域传送(axfr,ixfr)

    这两天博主在学习dns服务器的配 首先简单介绍一下axfr,ixfr axfr:完全区域传送 ixfr :增量区域传送 主要是在dns主从服务器上面进行备份更新的. ----------------- ...

  3. DNS区域传输和DNS字典爆破

    nslookup命令是已知域名的的解析记录下进行的查询.打个比方,已知sina.com这个域名有www.sina.com这条主机解析记录,就可以查询www.sina.com对应的ip以及其他相关信息. ...

  4. 【转】QQ传输文件原理参考(来自互联网)

    QQ的文件发送是怎样的过程呢?通常,发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机,当接收计算机同意接收的确认消息反馈到消息服务器后,消息服务器将据此设置好文件传输对话.随即,发送计 ...

  5. Https 安全传输的原理

    序言 今天来聊一聊https 安全传输的原理. 在开始之前,我们来虚构两个人物, 一个是位于中国的张大胖(怎么又是你?!), 还有一个是位于米国的Bill (怎么还是你?!). 这俩哥们隔着千山万水, ...

  6. TCP传输工作原理

    引言 在TCP/IP体系结构中,IP协议只管将数据包尽力传送到目的主机,无论数据传输正确与否,它都不做验证,不发确认,也不保证数据包的顺序,因而不具有可靠性.这一问题要由传输层TCP协议来解决,TCP ...

  7. git传输协议原理

    git精神:distributed-is-the-new-centralized 转自:http://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5% ...

  8. FTP文件传输服务器原理

    FTP服务器,全称File Transfer Protocol Server,是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务.FTP,文件传输协议(File Transfer ...

  9. 随机线性网络编码的C语言实现,实现可靠传输:原理(1)

    线性方程组,大家都不陌生吧.来一组 A11 *X1 + A12 *X2 + A13 *X3 + A14 *X4 =Q1 A21 *X1 + A22 *X2 + A23 *X3 + A24 *X4 =Q ...

随机推荐

  1. bnuoj53075 外挂使用拒绝

    题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=53075 第一次给校赛出题,来为自己的题目写一发题解吧. 其实我原本的题意非常简洁: 结果被另一位 ...

  2. Google Cast和ChromeCast

    Google Cast类似于DLNA,AirPlayer,Miracast,就是一种投屏技术.我们ATV产品是对Google Cast和ChromeCast都是支持的. Google Cast 大致工 ...

  3. Linux iptables:规则组成

    <Linux iptables:规则原理和基础>介绍了iptables的四表五链,简单说就是不同的网络层数据包会经过哪几个挂载点,在每个挂载点可以在哪张表进行规则定义. 本篇沿着这个思路, ...

  4. Ubuntu 下安装sqlite3 及常用SQL 语句

    安装sqlite3命令如下: sudo apt-get install sqlite3 创建或者打开已有的数据库文件: sqlite3 test.db 进入数据库后,可以进行以下常用SQL语句操作: ...

  5. Mongodb 备份 还原 导出 导入 等批量操作

    mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport. 一,mongodump备份数 ...

  6. springsecurity remember-me 功能

    本文基于spring-security-web-4.1.2.RELEASE. 要实现rememberMe,有两种方案. 1.基于简单加密token的方法 首先需要在配置文件中加入<remembe ...

  7. maven 依赖、聚合和继承 (转)

    Maven 插件和仓库 Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的.每个插件都能完成至少一个任务,每个任务即是一个功 ...

  8. 莫队 Codeforces Round #340 (Div. 2) E

    题目大意:给你一个长度为n的序列,有m个询问,每次询问一个区间[L,R],表示这个区间内,有多少的a[i]^a[i+1].....^a[j]=k. 思路:莫队去搞就好了 我们定义pre[i]=a[1] ...

  9. MongoDB - MongoDB CRUD Operations, Query Documents, Iterate a Cursor in the mongo Shell

    The db.collection.find() method returns a cursor. To access the documents, you need to iterate the c ...

  10. Spring容器简介

    Spring 是面向 Bean 的编程(BOP,Bean Oriented Programming),提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系. 控制反转模式(也称作依赖 ...