当前位置: 主页 > 服务器技术 > DNS服务器 > 实现DNS主从服务器数据同步方法

实现DNS主从服务器数据同步方法

时间:2010-1-5来源:互联网 点击:
  为了保证更好地进行域名解析服务,一般在网络中设置主、从两台DNS服务器。由于当前各ISP间的桥接存在带宽瓶颈,为了使不同ISP的用户快速访问高校内部网站,很多学校在配置域名服务器时都采用了BIND 9的VIEW功能。其实现原理如下:对于发出域名解析请求的不同源IP地址,针对同一域名解析到不同的目的IP地址,即用户通过最短路径到达欲访问的网站。举例来说,对于校内同一台服务器,教育网用户发出的访问请求解析到的域名IP地址是位于教育网上的服务器地址,网通用户解析到的域名IP地址是网通上的服务器地址,这样使用户能够访问到最快的服务器。

  主域名服务器使用的VIEW分界,按照不同查询来源地址来回应不同的答案,这对于一般的查询工作是非常高效的。但是当从服务器进行SOA查询或者做Transfer时,如果主服务器看到客户端请求,只能回应该客户端所在的VIEW,而不能顺利完成其他VIEW的同步。保证主从域名服务器的数据同步,就是为域名服务正常工作提供保障。因此,如何保证域名系统的主从服务器的数据同步性,就显得极为重要。本文分别利用BIND 9的TRANSFER-SOURCE功能和TSIGKEY功能,阐述了这一问题的两种不同的解决方案。

  触发同步的过程

  首先介绍主从服务器的同步过程。触发同步过程的原因有4种:1.从域名服务器刚刚启动;2.主域名服务器的Serial值增大;3.执行了rndc reload命令;4.到了主从服务器的同步更新时间。

  主从域名服务器开始同步(见图1):

  1. 主服务器向从服务器发送notify消息

  2. 从服务器收到主服务器发送notify消息,向主服务器返回一个notify response消息。

  3. 从服务器向主服务器发送SOA query消息。

  4. 主服务器向从服务器返回SOA response消息。

  5. 从服务器收到SOA response消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zone transfer request消息。

  6. 主服务器返回Zone transfer response消息。

  7. 主服务器执行Zone transfer。

  两种主从服务器的数据同步法

  根据主从服务器的同步步骤,要解决域名服务器的同步问题,主要问题是如何标识主服务器的notify消息,即notify消息隶属于哪个VIEW、从服务器如何识别notify消息。同样,notify response消息、SOA query、SOA response消息、Zone transfer request消息、Zone transfer response消息、Zone transfer的数据也存在类似的问题。Bind 9提供了两种标识此类信息的方法:1.利用TRANSFER-SOURCE功能,从服务器需要设置和VIEW一一对应的IP地址;2.利用TSIGKEY功能对消息进行加密。

  利用TRANSFER-SOURCE功能

  环境假定:授权domain是test.lcu.edu.cn;

  主DNS的IP地址是210.44.112.66(DNS包含Internet和Cernet两个VIEW);

  从DNS的IP地址是210.44.112.67(对应Cernet View)和210.44.112.68(对应Internet View)。

  1. 对主DNS的配置

  include “/etc/cernet.cfg”; //指定教育网地址文件,可以根据自己的配置来进行灵活配置。

  view “cernet” { //定义了一个Cernet view

  match-clients {!210.44.112.68;cernet; }; //cernet是cernet.cfg定义的教育网ACL

  zone "." IN {

  type hint;

  file "named.root";

  };

  zone “test.lcu.edu.cn” {

  type master;

  file “cernet.zone” ;

  allow-transfer { 210.44.112.67; };//使用210.44.112.67作Cernet zone transfer

  };

  };

  view "internet" {

   match-clients {!210.44.112.67; any; };

   recursion no;

  zone "." IN {

  type hint;

  file "named.root";

  };

  zone "test.lcu.edu.cn" IN {

  type master;

  file "internet.zone";

  allow-transfer { 210.44.112.68; }; //使用210.44.112.68作Internet zone transfer

  };

  };

  2.对从服务器的配置

  include “/etc/cernet.cfg”; //指定教育网地址文件,可以根据自己的配置来进行灵活配置。

  view “cernet” {

  match-clients {cernet; }; //cernet是cernet.cfg定义的教育网ACL

  zone "." IN {

  type hint;

  file "named.root";

  };

  zone “test.lcu.edu.cn” {

  type slave;

  file “slave.cernet.zone” ;

  masters { 210.44.112.66; };

  allow-source { 210.44.112.67; };//和主DNS配置对应

  };

  };

  view "internet" {

  match-clients {any; };

  recursion no;

  zone "." IN {

  type hint;

  file "named.root";

  };

  zone "test.lcu.edu.cn" IN {

  type slave;

  file "slave.internet.zone";

  masters { 210.44.112.66; };

  allow-source { 210.44.112.68; }; //和主DNS配置对应

  };

  };

站长资讯网
.
分页: [1] [2]
TAG: DNS主从服务器 数据同步
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言