首页 > 代码库 > AXFR和IXFR区域传输及原理
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区域传输及原理