bind主从同步
http://blog.sina.com.cn/s/blog_4b427acf0101dng7.html
假设两台dns系统都安装了bind9.6,其中主dns为192.168.3.124,有分view配置,从dns为192.168.3.123,则配置如下;
主dns配置:
options { logging { controls { include "/etc/rndc.key"; key "tel" { key "cnc" { view "cnc" { zone "." IN { zone "com" { view "tel" { zone "." IN { zone "com" { |
从dns配置:
key "tel" { key "cnc" { options { logging { controls { include "/etc/rndc.key";
zone "com"{ view "tel" { zone "." IN { zone "com"{ |
说明:当主dns加载配置的时候,会主动发送notify给从dns,从dns发现主dns配置比较新的话,就会下载配置文件;同时,从dns也会根据zone设置的soa的刷新时间来定时向主服务器进行查询,以便进行更新。
如果主dns不设置server语句的话,则主服务器主动发送给从dns的notify会被拒绝;如果从服务器不设置server语句的话,则不能实现分view同步的功能;如果主从服务器时间不同步的话,则会导致验证失败;如果从dns的ip匹配到主dns的view,则会导致只同步这个view的数据下来,即使配置了key。
Linux主辅dns数据不同步故障排除

软件包名称
|
作用
|
bind-libs
|
包含DNS的库文件
|
Bind-9
|
DNS服务器软件,安装此软件前需要安装libs
|
caching-nameserver
|
配置文件模板
|
bind-utils
|
DNS查询工具软件
|
bind-chroot
|
使DNS在chroot模式下运行,增强安全性(选择性安装)
|
故障一:
A.从主DNS复制过来的区域文件存放目录的权限。
B.主配置文件named.conf的";"不能少。
named.conf 的理解
目录说明
/var/named/chroot/etc #存放named.conf
/var/named/chroot/var/named #存放zone&arpa文件
/var/log/messages #查看配置过程中出错信息
[root@46 etc]# pwd
/var/named/chroot/etc
[root@46 etc]# cp -p named.caching-nameserver.conf named.conf #书上说找不到named.conf会自动启用named.caching-nameserver.conf,不过没试过
[root@46 etc]# ls
localtime named.caching-nameserver.conf named.conf named.rfc1912.zones rndc.key
[root@46 etc]# vi named.conf
//参照《linux 系统与网络服务管理技术大全》第11 章,注释有的是大力自己理解的,不一定正确。
//
// named.caching-nameserver.conf
//
// named.caching-nameserver.conf
//
// provided by red hat caching-nameserver package to configure the
// isc bind named(8) dns server as a caching only nameserver
// (as a localhost dns resolver only).
//
// see /usr/share/doc/bind*/sample/ for example named configuration files.
//
// do not edit this file - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options { //服务器的全局配置选项及一些默认设置
listen-on port 53 { any; }; //监听端口,也可写为 { 127.0.0.1; 192.168.139.46; }
listen-on-v6 port 53 { ::1; }; //对ip6支持
directory "/var/named"; //区域文件存储目录
dump-file "/var/named/data/cache_dump.db"; //dump cach的目录directory
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
pid-file "/var/run/named/named.pid"; //存着named的pid
forwarders { 168.95.1.1; 139.175.10.20; }; // 如果域名服务器无法解析时,将请求交由168.95.1.1; 139.175.10.20来解析
allow-query { any; }; //指定允许进行查询的主机,当然是要所有的电脑都可以查啦
allow-transfer { none; }; //指定允许接受区域传送请求的主机,说明白一点就是辅dns定义,比如辅dns的ip是192.168.139.5,那么可以这样定义{ 192.168.139.5; },要不然主辅dns不能同步,当然,{}里的也可以用下面提到的acl。
// those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
};
logging { //指定服务器日志记录的内容和日志信息来源
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// 这里定义一个acl列表
acl "acl1" {
192.168.139.0/200; 192.168.1.0/200
};
view localhost_resolver { //定义一个视图
match-clients { any; }; //查询者的源地址,any表示localhost_resolver视图对任何主机开放,如果写成{ acl1; },那么就只有acl1表里的ip可以递归查询了
match-destinations { any; }; //查询者的目标地址,这里也可以写成{ localhost; acl1; }
recursion yes; //设置进行递归查询
include "/etc/named.rfc1912.zones"; //包含文件,这里也就是载入/etc/named.rfc1912.zones
};
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
type hint;
file "named.ca";
};
type master;
file "localdomain.zone";
allow-update { none; };
};
type master;
file "localhost.zone";
allow-update { none; };
};
type master;
file "named.local";
allow-update { none; };
};
type master;
file "named.ip6.local";
allow-update { none; };
};
type master;
file "named.broadcast";
allow-update { none; };
};
type master;
file "named.zero";
allow-update { none; };
};
type master;
file "2.168.192.zone";
notify yes;
also-notify{ 192.168.2.163;}
};
zone "test.com" IN {
type master;
file "test.com";
also-notify{ 192.168.2.163;};
};
$TTL 86400
@ IN SOA ns.test.com. root.test.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN A 192.168.2.164
$TTL 86400
2 .168.192.in-addr.arpa. IN SOA ns.test.com. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS ns.test.com.
8 IN PTR ns.test.com.
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
type hint;
file "named.ca";
};
type master;
file "localdomain.zone";
allow-update { none; };
};
type master;
file "localhost.zone";
allow-update { none; };
};
type master;
file "named.local";
allow-update { none; };
};
type master;
file "named.ip6.local";
allow-update { none; };
};
type master;
file "named.broadcast";
allow-update { none; };
};
type master;
file "named.zero";
allow-update { none; };
};
type slave;
file "slaveslave.zone";
masters{192.168.2.164;};
};
zone "test.com" IN {
type slave;
file "slaves/test.salve";
masters{192.168.2.164;};
};
从这里可以看出所有者和所有组都为root,而从主服务器传送区域文件是named用户,所以我们需要修改下文件权限:
[root@localhost named] chown named.named slaves/test.salve
[root@localhost named] service named restart
这个问题出现的原因是由于我们创建这个文件的时候,没有考虑文件权限,导致出现这个问题。直接复制/var/named/named.local这个文件后再修改的,建议复制过程中使用-p参数。这样就避免了cp后再修改权限的步骤。
also-notify{ 192.168.2.163;}
May 15 18:30:37 localhost named[15926]: zone 2.168.192.in-addr.arpa/IN: notify from 192.168.2.164#53319: zone is up to date
May 15 18:30:38 localhost named[15926]: client 192.168.2.164#53319: received notify for zone 'test.com'
May 15 18:30:38 localhost named[15926]: zone test.com/IN: notify from 192.168.2.164#53319: zone is up to date
May 15 18:46:04 localhost named[4820]: client 192.168.2.163#47796: transfer of 'test.com/IN': AXFR-style IXFR ended
在解决问题的过程中有的朋友说将SOA中的Refresh值修改小一点,没错!但是这个值什么时候生效呢?当我们主DNS服务器上修改完成后重启服务,会主动传送notify值,如果辅助DNS服务器没有收到才参考Refresh,Refresh 不成功,则参考Retry ,Retry 一直不成功, 则参考 Expire,如果Expire也不成功,则选择放弃zone transfer的过程。
本文出自 “流星 ” 博客,请务必保留此出处http://lsscto.blog.51cto.com/779396/158892
http://wubinary.blog.51cto.com/8570032/1376390
一、bind简介
Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护。在yum仓库中可以找到软件,配置好yum源,直接使用命令yum install bind就可以安装。当前bind的稳定版本为bind9,bind的服务名称为named,监听的端口为53号端口。bind的主要配置文件为/etc/named.conf,此文件主要用于配置区域,并指定区域数据库文件名称。区域数据库文件通常保存于/var/named/目录下,用于定义区域的资源类型。
二、使用bind架设DNS服务器
实例操作:以域名wubinary.com为例配置一个DNS服务器,实现正向解析与反向解析。
1、使用setup命令配置DNS服务器的IP地址,我们以192.168.0.70这个IP地址为例,在本地架设一个DNS服务器。
2、bind配置文件为/etc/named.conf,此文件用于定义区域。每个区域的数据文件保存在/var/named目录下。
named.conf各参数项说明:
1
2
3
4
5
6
7
8
9
|
options { // 全局选项 } zone "ZONE name" { // 定义区域 } logging{ // 定义日志系统 } |
named.conf文件内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
options { listen-on port 53 { 127.0.0.1; }; #定义监听端口及IP地址 listen-on-v6 port 53 { ::1; }; #定义监听的IPv6地址 directory "/var/named" ; #全局目录 dump- file "/var/named/data/cache_dump.db" ; statistics- file "/var/named/data/named_stats.txt" ; memstatistics- file "/var/named/data/named_mem_stats.txt" ; allow-query { localhost; }; #允许查询的IP地址 recursion yes ; #是否允许递归查询 dnssec- enable yes ; dnssec-validation yes ; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys- file "/etc/named.iscdlv.key" ; managed-keys-directory "/var/named/dynamic" ; }; logging { channel default_debug { file "data/named.run" ; severity dynamic; }; }; zone "." IN { type hint; file "named.ca" ; }; include "/etc/named.rfc1912.zones" ; include "/etc/named.root.key" ; |
注意:bind的配置文件/etc/named.conf里必须要定义的三个区域是:根、127.0.0.1和127.0.0.1的反解。
以上options选项中有许多是我们用不到,我们先把它们注释掉。结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
options { // listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; directory "/var/named" ; dump-file "/var/named/data/cache_dump.db" ; statistics-file "/var/named/data/named_stats.txt" ; memstatistics-file "/var/named/data/named_mem_stats.txt" ; // allow-query { localhost; }; // recursion yes; // dnssec-enable yes; // dnssec-validation yes; // dnssec-lookaside auto; /* Path to ISC DLV key */ // bindkeys-file "/etc/named.iscdlv.key"; // managed-keys-directory "/var/named/dynamic"; }; |
3、打开/etc/named.rfc1912.zones文件,添加一个区域。
type: 用于定义区域类型,此时只有一个DNS服务器,所以为master,type可选值为:hint(根的)|master(主的)|slave(辅助的)|forward(转发)
file:用于定义区域数据文件路径,默认该文件保存在/var/named/目录。
区域添加好后,使用命令:named-checkconf 或 service named configtest测试配置文件语法格式。
出错了!原来少了一个分号,配置文件的格式是每行后面都必须加分号结束,并且有花括号的地方,花括号两边必须要有空格。
没有提示则表示文件语法正常。
4、新建数据库文件/var/named/wubinary.com.zone,并添加资源记录。
1
2
3
|
资源记录的格式: name [ttl] IN RRtype Value 资源记录名 有效时间 IN 类型 资源记录的值 |
1
2
3
|
SOA: 只能有一个,而且必须是第一个 name: 只能是区域名称,通常可以简写为@ value: 主DNS服务器的FQDN |
1
2
3
|
NS: 可以有多条 name: 区域名称,通常可以简写为@ value: DNS服务器的FQDN(可以使用相对名称) |
1
2
3
|
A: 只能定义在正向区域文件中 name: FQDN(可以使用相对名称) value: IP |
1
2
3
4
|
MX: 可以有多个 name: 区域名称,用于标识smtp服务器 value: 包含优先级和FQDN 优先级: 0 - 99 ,数字越小,级别越高; |
1
2
3
|
CNAME: name: FQDN value: FQDN |
1
2
3
|
PTR: IP --> FQDN, 只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加. in -addr.arpa.后缀组成 name: IP, 逆向的主机地址,主机地址反过来写加上. in -addr.arpa. value: FQDN |
$TTL为定义的宏,表示下面资源记录ttl的值都为600秒。
@符号可代表区域文件/etc/named.conf里面定义的区域名称,即:"wubinary.com."。
每个区域的资源记录第一条必须是SOA,SOA后面接DNS服务器的域名和电子邮箱地址,此处电子邮箱地址里的@因为有特殊用途,所以此处要用点号代替。SOA后面小括号里的各值所代表的意义如下所示:
1
2
3
4
5
6
|
@ IN SOA dns.wubinary.com dnsadmin.wubinary.com ( 2014031201 ;标识序列号,十进制数字,不能超过 10 位,通常使用日期 2H ;刷新时间,即每隔多久到主服务器检查一次,此处为 2 小时 4M ;重试时间,应该小于刷新时间,此处为 4 分钟 1D ;过期时间,此处为 1 天 2D ;主服务器挂后,从服务器至多工作的时间,此处为 2 天) |
区域数据文件配置好后,可以使用命令named-checkzone检查语法错误。
命令格式:
1
|
named-checkzone "zone_name" zone_file_name |
5、两个文件都配置好后,记得查看一下文件的所属组。因为bind程序的服务名称为named,bind默认是使用named组的身份操作文件,所以我们新建的文件所属组都要改为named,并且为了安全起见不能让别人有修改的权限,权限最好改为640。
6、设置妥当当后我们就可以开启服务了。
7、使用dig命令测试DNS。
命令格式:
1
|
dig [-t type] [-x addr] [name] [@server] |
-t: 指定资源类型,用于正解
-x: 指定IP地址,用于反解
测试成功!
8、以上配置的是DNS服务器的正向解析,接着再配置一下反向解析。编辑配置文件/etc/named.rfc1912.zones,添加一个反解区域。
因为反向解是和正向解析相反的,所以配置文件192.168.0.70.zone直接可以复制wubinary.com.zone修改。反向解析数据文件里面只有SOA、NS、PTR资源记录,所有A记录都要改为PTR记录,名称为IP地址,IP地址可以写全也可以简写,如果写全则是IP地址反写加上.in-addr.arpa.例如:70.0.168.192.in-addr.arpa. PTR资源记录的值为域名。
9、检查配置文件语法。
修改权限
10、重新载入配置文件,并测试反向解析。
使用dig -x 测试反向解析。
反向解析配置成功!
注意:通常在应用中,DNS的反向解析并不是很重要,可以不配置,当服务器中有域名作为邮件服务器时,此时可以配置反向解析,因为邮件中过滤垃圾邮件的技术通常是解析邮箱地址,如果IP地址不能反解成一个域名则视为垃圾邮件。
三、使用bind架设辅助DNS服务器,实现主从数据同步
DNS从服务器也叫辅服DNS服务器,如果网络上某个节点只有一台DNS服务器的话,首先服务器的抗压能力是有限的,当压力达到一定的程度,服务器就会宕机罢工,其次如果这台服务器出现了硬件故障那么服务器管理的区域的域名将无法访问。为了解决这些问题,最好的办法就是使用多个DNS服务器同时工作,并实现数据的同步,这样两台服务器就都可以实现域名解析操作。
主DNS服务器架设好后,辅助的DNS服务器的架设就相对简单多了。架设主从DNS服务器有两个前提条件,一是两台主机可以不一定处在同一网段,但是两台主机之间必须要实现网络通信;二,辅助DNS服务器必须要有主DNS服务器的授权,才可以正常操作。此时,我们以IP地址192.168.0.80作为我们辅助的DNS服务器的IP地址;
1、设置IP地址;
2、打开辅助DNS服务器的/etc/named.rfc1912.zones文件,添加两个区域记录,这两个记录是主DNS服务器配置文件里已经存在的记录,一个是正向解析记录,一个是反向解析记录。
type: slave,表示此时DNS服务器为辅助DNS服务器,于是下面一行就要定义主DNS服务器的IP地址,辅助DNS服务器才知道去哪里同步数据。辅助DNS服务器的资源类型数据文件通常保存在slaves目录,只需定义一个名称,文件内容通常是自动生成。
配置好后,直接开启DNS服务,然后再回到主DNS服务器上。
3、修改主DNS服务器的数据文件,添加一条辅助DNS服务器记录,给辅助DNS服务器授权。
修改正向解析文件/var/named/wubinary.com.zone。
添加了一条NS记录,值为,ns2.wubinary.com.,对应的A记录也要增加一条,把IP地址指向对应的辅助DNS服务器的IP地址。修改完成后,记得要把序列号的值加1,用于通知辅助DNS服务器自动更新数据文件。
修改反向解析文件/var/named/192.168.0.70.zone。
同样的也增加了两条记录,一条辅助DNS服务器的NS记录和对应的PTR记录。修改完成后记得所序列号的值加1,用于通知辅助DNS服务器自动更新数据文件。
4、重新加载主DNS服务器的配置文件,这时再到回辅助DNS服务器,在/var/named/slaves/目录下会多了两个文件。
查看文件内容,可以看到该文件和主DNS服务器上的文件内容是一样的。
5、测试辅助DNS服务器。
在辅助DNS服务器上正向解析和反向解析都能测试成功!
四、主从同步数据的安全性
DNS服务器的数据同步默认是没有限定主机的,也就是说,网络上只要有一台DNS服务器向你的DNS服务器请求数据,都能实现数据同步,那么这样就相当的不安全了。我们可以使用一个选项allow-transfer,指定可以同步数据的主机IP。主DNS服务器的数据可以给别的服务器同步,相对的,辅助DNS服务器的数据也是可以给其它辅助DNS服务器同步,于是,所有的主从DNS服务器都要设置该参数。
1、指定可以从主DNS服务器上同步数据的主机。
修改/etc/named.rfc1912.zones文件:
在每块区域上添加参数allow-transfer,花括号内填写可以同步的主机IP,一般填写辅助DNS服务器的IP地址。可以使用dig命令测试,区域同步:
1
|
dig -t axfr ZONE_NAME @DNS_SERVCER_IP |
指定IP可以同步数据。
非指定IP不可以同步数据。
2、指定可以从辅助DNS服务器上同步数据的主机。
修改/etc/named.rfc1912.zones文件:
我们只有一台辅助DNS服务器,所以根本不会有主机从这台机器同步数据,所以我们设置成不允许任何人同步。
五、测试DNS解析的其它命令
测试DNS解析的命令不只是dig可以实现,还有两个命令也可以实现相同的效果。
1、host命令
host命令格式:
1
|
# host [-t type] {name} [server] |
2、nslookup命令
这个命令很神奇,在windows的dos里面也可以使用:
1
2
3
4
|
nslookup> server DNS_SERVER_IP set q=TYPE {name} |
http://blog.csdn.net/huithe/article/details/5767632
Master 配置 好了测试也正常了
Slave 第一次也能生成 Zone 正反向文件 .但就是奇怪.
在 Master 端修改了加大了 Serial number ,但 Slave 就是不同步.
最后才发现原来是这个问题:
- zone "mydomain.com" {
- type master;
- file "mydomain.com.zone";
- notify yes;
- allow-transfer { slave_servers; };
- also-notify { slave_servers; };
- };[/code:1:11bf6b342c]
- 6.2.14.1
- notify
- If yes (the default), DNS NOTIFY messages are sent when a zone the server is authoritative for
- changes, see Section 3.3. The messages are sent to the servers listed in the zone’s NS records
- (except the master server identified in the SOA MNAME field), and to any servers listed in the
- also-notify option.
- If explicit, notifies are sent only to servers explicitly listed using also-notify. If no, no notifies
- are sent.
- The notify option may also be specified in the zone statement, in which case it overrides the options
- notify statement. It would only be necessary to turn off this option if it caused slaves to crash.
- 6.2.14.6
- also-notify
- Defines a global list of IP addresses of name servers that are also sent NOTIFY messages whenever
- a fresh copy of the zone is loaded, in addition to the servers listed in the zone’s NS records. This
- helps to ensure that copies of the zones will quickly converge on stealth servers. If an also-notify
- list is given in a zone statement, it will override the options also-notify statement. When a zone
- notify statement is set to no, the IP addresses in the global also-notify list will not be sent NOTIFY
- messages for that zone. The default is the empty list (no global notification list).
- 使用notify指令会自动通知所有这个域的所有在ns记录上的机器,also-notify指令可以用来通知所有不在ns记录上的dns服务器。
- 还是好好看文档吧,里面还有很多有趣的功能呢。
最后修改了下Master 的 Zone 文件
- [root@ye810 /]# vi /var/named/named.baidu.com
- $TTL 3600
- @ IN SOA baidu.com. huithe.163.com. (
- 445 ; Serial
- 28800 ; Refresh
- 14400 ; Retry
- 3600000 ; Expire
- 86400 ) ; Minimum
- @ IN NS linux.baidu.com.;
- @ IN NS window.baidu.com.;
- linux IN A 192.168.1.200;
- window IN A 192.168.1.201;
- yehuiming IN A 111.111.111.111;
- mytxt IN TXT "fuck you";
- wenwen IN CNAME yehuiming;
- love IN CNAME yehuiming;
- xxoo IN CNAME yehuiming;
- ooo IN CNAME yehuiming;
- yindang IN CNAME yehuiming;
- 51 IN CNAME yehuiming;
- 56 IN CNAME linux;
- 55 IN CNAME window;
添加了 Master 和 Slave 的 NS 记录.. 为啥要ns记录.看上上面的官方解释
http://linuxfun.me/?p=1094
在上一篇智能DNS的设定,已经能实现智能解析,但一台始终是不安全的,所以做了一个主从。当然主的服务器也做了一些修改,具体如下啦。假设你有两个view:liantong和dianxin,你修改了liantong的sheriy.com的view,现在/etc/int.d/named reload lt.sheriy.com ,这是会遇到以下问题:
1.从服务器不知道该更新哪个一个view,是电信还是联通呢?
2.假设从服务器按照SOA的refresh值去查主从的serial值 这时候该查主服务哪个view哪个值呢?
3.修改了主服务器记录之后 ,reload是哪一个view下面的值呢?
有问题肯定就有解决办法,还记得TSIG key 么?为什么它可以用来简化 view 的设置呢?
因为一旦使用 TSIG ,则两台 server 之间的通信都会用指定的 key 进行标识;通信双方必须具有一样的 key ,如果 key 不一致,则另一方会拒绝请求。
是否可以从这点推广到 view 的配置呢?
答案是可以的。
先介绍一下环境:
主服务器:公网IP:58.40.26.21;私网IP:192.168.1.2
从服务器:公网IP:22.26.14.163;私网IP:192.168.1.3
下面以具体的配置为例说明 :(注意,只列出部分语句而已 !!)
主服务器方面:
view “view_liantong” //定义一个名字叫view_liantong的视图
{
match-clients { key liantong-key;LT; };//匹配那些用liantong-key加密的请求和联通的IP,这个设置在上个博客有说明
recursion no;// 禁止处理来自 liantong 的主机的递归请求
allow-transfer {key liantong-key;};// 只允许用 liantong-key 加密过的 zone transfer 请求
server 192.168.1.3 {keys liantong-key;}; // 向从服务器发送消息时,用 liantong-key 加密zone “.” IN {
type hint;
file “named.ca”;
};zone “localhost” IN {
type master;
file “localhost.zone”;
allow-update { none; };
};zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
allow-update { none; };
};zone “sheriy.com” {
type master;
file “184/lt.sheriy.com.db”;
also-notify { 192.168.1.3; };
notify YES;
};};
};
view “view_dianxin”//定义一个名字叫view_dianxin的视图
{
match-clients { key dianxin-key ;DX; };//匹配那些用dianxin-key加密的请求和联通的IP,这个设置在上个博客有说明
recursion no;//禁止处理来自 liantong 的主机的递归请求
allow-transfer {key dianxin-key;};//只允许用 liantong-key 加密过的 zone transfer 请求
server 192.168.1.3 {keys dianxin-key;}; // 向从服务器发送消息时,用 dianxin-key 加密
zone “.” IN {
type hint;
file “named.ca”;
};zone “localhost” IN {
type master;
file “localhost.zone”;
allow-update { none; };
};zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
allow-update { none; };
};zone “sheriy.com” {
type master;
file “184/dx.sheriy.com.db”;
also-notify { 192.168.1.3; };
notify YES;
};};
从服务器方面:
view “view_liantong”//定义一个名字叫view_liantong的视图
{
match-clients { key liantong-key ;LT; };//匹配那些用liantong-key加密的请求和联通的IP,这个设置在上个博客有说明
#allow-transfer {key liantong-key;};
recursion no;// 禁止处理来自 liantong 的主机的递归请求
allow-transfer {none;}; // 禁止任何人向从服务器请求 zone transfer
server 192.168.1.2 {keys liantong-key;}; // 向主服务器发送消息时,用liantong-key 加密
zone “.” IN {
type hint;
file “named.ca”;
};zone “sheriy.com” {
type slave;
file “184/lt.sheriy.com.db”;
masters { 192.168.1.2;};};
};
###############################This is for Dianxin’s IPS#######################################################
view “view_dianxin”
{
match-clients { key dianxin-key ;DX; };
#allow-transfer {key dianxin-key;};
recursion no;// 禁止处理来自 dianxin 的主机的递归请求
allow-transfer {none;}; // 禁止任何人向从服务器请求 zone transfer
server 192.168.1.2 {keys dianxin-key;}; // 向主服务器发送消息时,用 dianxin-key 加密
zone “.” IN {
type hint;
file “named.ca”;
};# zone “localhost” IN {
# type slave;
# file “localhost.zone”;
# allow-update { none; };
# };# zone “0.0.127.in-addr.arpa” IN {
# type slave;
# file “named.local”;
# allow-update { none; };
# };zone “sheriy.com” {
type slave;
file “184/dx.sheriy.com.db”;
masters { 192.168.1.2;};};
};
过程分解:
1.修改了dianxin视图中的sheriy.com解析的zone,正确的reload方法是:/etc/init.d/named reload dx.sheriy.com.db IN view_dianxin,记得后面加上IN view_dianxin
2)主服务器将向从服务器发送一个 notify 消息,这个消息是用 dianxin-key 标识过的。
(主–>从 notify)
3.当从服务器收到这个 notify 消息时,会根据消息尾部的 TSIG 部分找出 key 的名称 :dianxin-key 。
4.从服务器对比每个 view 的 match-clients ,发现匹配 view_dianxin 这个 view 的设定 5.从服务器返回一个 notify response 消息,根据 view-dianxin 的 server 语句,用 dianxin-key 加密并发给主服务器。 (从→主 :notify response.) 6.接着从服务器就会启动 soa query,同样该 query 也是用 dianxin-key 加密的。(从→主 :soa query) 7.主服务器收到这个 soa query 后,发现是用 dianxin-key加密的 ,返回 view_dianxin 的 dx.sheriy.com. SOA 记录, 并用 dianxin-key 进行表示(主→从 :soa query response.) 8.从服务器在收到来自主服务器的 response 后,和它自己 view_dianxin的 dx.sheriy.com zone 的 serial 比较,发现的确是 增大了 9.从服务器向主服务器发送 tcp 消息,请求 zone transfer (从→主 :zone transfer 请求) 10.主服务器检查 view_dianxin 的 allow-transfer ,发现该请求是以 dianxin-key 加密的,则允许进行 zone transfer 11.主服务器返回 view_dianxin 的 sheriy.com 这个 zone 的数据(来自文件 dx.sheriy.com.db. (主→从 :zone transfer 开始) 12.zone transfer 完成,主从服务器关闭 TCP 连接 (zone transfer 完成.)
需要注意的:
1.两台服务器key要一样
2.两台服务器时间要一致,超过5分钟误差就无法同步了
参考:http://www.chinaunix.net/jh/16/870609.html
http://www.haiyun.me/archives/bind-intelligen-dns.html
BIND可根据请求查询的源IP分配到不同的域规则,即智能DNS服务器。
下载运营商IP地址库,定义ACL,由于条目太多,可分别存为独立文件调用。
示例主DNS为:1.1.1.1,从DNS为2.2.2.2。
1
2
3
4
|
生成key,用于同步时验证并解决不能全部同步的问题,
1
2
3
|
dnssec-keygen -a hmac-md5 -b 128 -n HOST one dnssec-keygen -a hmac-md5 -b 128 -n HOST two dnssec-keygen -a hmac-md5 -b 128 -n HOST three |
主DNS配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
key one { algorithm hmac-md5; secret "hxCQkylFHbhzbPYo+CRWLA=="; }; key two { algorithm hmac-md5; secret "T4Gf+E0+3Y+5uL3ylkQBSA=="; }; key three { algorithm hmac-md5; secret "8q22D8M1c9QQKJLteC2bQQ=="; }; view "dianxin" { server 2.2.2.2 { keys { one; }; }; match-clients { dianxin; key one; !key two; !key three}; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "dianxin.www.haiyun.me"; allow-query { any; }; notify yes; allow-transfer { key one; }; }; }; view "liantong" { server 2.2.2.2 { keys { two; }; }; match-clients { liantong; key two; !key one; !key three; }; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "liantong.www.haiyun.me"; allow-query { any; }; notify yes; allow-transfer { key two; }; }; }; view "other" { server 2.2.2.2 { keys { three; }; }; match-clients { any; key three; !key one; !key two; }; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "other.www.haiyun.me"; allow-query { any; }; notify yes; allow-transfer { key three; }; }; }; include "/var/named/dianxin.acl"; include "/var/named/liantong.acl"; |
从DNS配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
key one { algorithm hmac-md5; secret "hxCQkylFHbhzbPYo+CRWLA=="; }; key two { algorithm hmac-md5; secret "T4Gf+E0+3Y+5uL3ylkQBSA=="; }; key three { algorithm hmac-md5; secret "8q22D8M1c9QQKJLteC2bQQ=="; }; view "dianxin" { server 1.1.1.1 { keys { one; }; }; match-clients { dianxin; key one; !key two; !key three; }; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "dianxin.www.haiyun.me"; allow-query { any; }; masters {1.1.1.1;}; }; }; view "liantong" { server 1.1.1.1 { keys { two; }; }; match-clients { liantong; key two; !key one; !key three; }; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "liantong.www.haiyun.me"; allow-query { any; }; masters {1.1.1.1;}; }; }; view "other" { server 1.1.1.1 { keys { three; }; }; match-clients { any; key three; !key one; !key two; }; zone "." IN { type hint; file "named.ca"; }; zone "www.haiyun.me" IN { type master; file "other.www.haiyun.me"; allow-query { any; }; masters {1.1.1.1;}; }; }; include "/var/named/dianxin.acl"; include "/var/named/liantong.acl"; |
定义多个域规则,分别转向不同的IP:
1
2
3
4
5
6
7
8
9
10
|
$TTL 600 @ IN SOA ns1.www.haiyun.me. domain.mail.www.haiyun.me. ( 2012070401; 3H; 10M; 1W; 1H ); @ IN NS ns1.www.haiyun.me. ns1 IN A 184.164.141.188 www IN A 184.164.141.188 |
主域名服务器使用的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配置对应
};
};
3.配置分析
在主服务器端配置VIEW中的match-client和allow-transfer标示信息,在从服务器端配置VIEW中的masters和allow-source标识信息,这样做可以解决主从服务器同步问题。
利用TSIGKEY功能
环境假定:授权域domain是test.lcu.edu.cn;
主DNS的IP地址是210.44.112.66(DNS包含Internet和Cernet两个VIEW);
从DNS的IP地址是210.44.112.67。
1.对主服务器的配置
include “/etc/cernet.cfg”; //指定教育网地址文件,可以根据自己的配置来进行灵活配置。
view “cernet” { //定义了一个Cernet view
match-clients { key cernetkey; cernet; }; //范围是匹配这些用 cernetkey 加密 的以及 cernet地址(?)
allow-transfer { key cernetkey; };
//只允许用 cernetkey 加密过的 zone transfer 请求
server 210.44.112.67 { keys cernetkey; }; // 向从服务器发送消息时,用 cernetkey 加密
zone "." IN {
type hint;
file "named.root";
};
zone “test.lcu.edu.cn” {
type master;
file “cernet.zone” ;
};
};
view "internet" {
match-clients {key internetkey; any; };
recursion no;
allow-transfer { key internetkey; }; // 只允许用 internetkey 加密过的 zone transfer 请求
server 210.44.112.67 { keys internetkey; }; // 向从服务器发送消息时,用 internetkey 加密
zone "." IN {
type hint;
file "named.root";
};
zone "test.lcu.edu.cn" IN {
type master;
file "internet.zone";
};
};
2.对从服务器的配置
include “/etc/cernet.cfg”; //指定教育网地址文件,可以根据自己的配置来进行灵活配置。
view “cernet” { //定义了一个Cernet view
match-clients { key cernetkey ;cernet; }; //范围是匹配这些用 cernetkey 加密的,以及 cernet地址
allow-transfer {none };
// 禁止任何 zone transfer 请求
server 210.44.112.66 { keys cernetkey; };
// 向主服务器发送消息时,用 cernetkey 加密
zone "." IN {
type hint;
file "named.root";
};
zone “test.lcu.edu.cn” {
type slave;
masters {210.44.112.66;};
file “cernet.zone” ;
};
};
view "internet" {
match-clients {key internetkey; any; };
recursion no;
allow-transfer { none}; // 禁止任何 zone transfer 请求
server 210.44.112.66 { keys internetkey; };
// 向主服务器发送消息时,用 internetkey 加密
zone "." IN {
type hint;
file "named.root";
};
zone "test.lcu.edu.cn" IN {
type slave;
masters {210.44.112.66;};
file "internet.zone";
};
};
使用dnssec-keygen命令生成 TSIG key。具体命令如下:
/usr/sbin/dnssec-keygen -a alg -b bits [-n type] [options] name
3.配置分析
使用TSIG对主从DNS配置,VIEW和KEY一一对应,从而解决了主从服务器间的消息标示问题。
两方法的优缺点
两种方法比较而言,使用TRANSFER-SOURCE功能,需要多设置几个IP地址,配置相对简单,原理容易理解,但是造成一定的IP地址浪费。使用TSIG KEY方法,要准备KEY文件,并且KEY文件和VIEW要一一对应,做起来比较繁琐。
配置技巧
配置过程中的技巧及常见问题:
1.在配置文件中使用include语句,增加文件的可读性。像各种ACL,KEY文件都可以使用include语句,在很大程度上减小了主配置文件的大小。
例:include ”/etc/cernet.cfg”;
2.开始配置服务器时,关掉Linux的SElinux功能,因为SElinux功能会带来意想不到的麻烦。
3.遇到问题时,多使用tail –f /var/log/messages查看日志。
4.BIND工作不正常时,如果发现日志中有permission denied的字样,可以把所有的配置文件权限改大,规避问题。
5.使用rndc reload test.lcu.edu.cn. IN cernet重载cernet View下的test.lcu.edu.cn。修改ZONE文件之后,一定要记得将Serial值改大,然后执行rndc reload,才能实现数据同步。
6.如果有部分外部域名解析不正常的情况,又没有充分的排错时间,可以使用forward语句规避问题。如
options {
…
forwarders {202.102.128.68; //连通的两个DNS服务器
202.102.152.3;
};
…
}.
7.主从服务器的时区和时钟要一致,使用ntpdate同步时间。
(作者单位为聊城大学网络信息中心)
来源:《中国教育网络》2009年08月刊
https://www.centos.bz/2011/07/centos-install-bind-dns-server/
BIND是一种开源的DNS(Domain Name System)协议的实现,包含对域名的查询和响应所需的所有软件。它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准。下面我们主要学习利用BIND来实现主从dns,高速缓存DNS下次学习。
BIND安装
软件下载地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。
安装依赖:
- yum -y install gcc openssl-devel
开始安装bind.
- wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- tar xzf bind-9.8.1-P1.tar.gz
- cd bind-9.8.1-P1
- ./configure --prefix=/usr/local/bind
- make && make install
执行完成后,bind已经安装到了/usr/local/bind目录。
配置主dns服务器
配置bind主要是两种文件,一是主配置文件named.conf,二是区域文件zone(包括正解析,反解析)。
在下面的配置中,我们的主dns服务器是ns1.qbtop.com 23.19.81.191,从dns服务器是ns2.qbtop.com 23.19.81.194(这两个dns都已经在godaddy注册好了)。
下面操作仅在主dns服务器23.19.81.191执行。
主配置文件named.conf
首先执行rndc-confgen -a生成/etc/rndc.key密钥文件。
- /usr/local/bind/sbin/rndc-confgen -a
- vi /usr/local/bind/etc/named.conf
写入如下内容:
- include "/usr/local/bind/etc/rndc.key";
- controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndckey"; }; };
- logging {
- channel default_syslog { syslog local2; severity notice; };
- channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
- category default { default_syslog; };
- category general { default_syslog; };
- category security { audit_log; default_syslog; };
- category config { default_syslog; };
- category resolver { audit_log; };
- category xfer-in { audit_log; };
- category xfer-out { audit_log; };
- category notify { audit_log; };
- category client { audit_log; };
- category network { audit_log; };
- category update { audit_log; };
- category queries { audit_log; };
- category lame-servers { audit_log; };
- };
- options {
- directory "/usr/local/bind/etc";
- pid-file "/usr/local/bind/var/run/bind.pid";
- transfer-format many-answers;
- interface-interval 0;
- allow-query { any; };
- };
- zone "qbtop.com" {
- type master;
- file "qbtop.com.zone";
- allow-transfer { 23.19.81.194; };
- };
- zone "81.19.23.in-addr.arpa" {
- type master;
- file "81.19.23.in-addr.arpa";
- allow-transfer { 23.19.81.194; };
- };
named.conf文件说明:
上面的named.conf文件包括三部分:key,controls,logging,options,zone。
logging:设置日志服务器和日志信息的发送地。
options:控制服务器的全局配置选项和为其它语句设置默认值
zone:定义一个域,比如正解析域和反解析域。
logging是定义日志的,不需要深究,主要是options和zone。
在options中:
directory "/usr/local/bind/etc":定义bind的工作目录为/usr/local/bind/etc,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。
pid-file "/usr/local/bind/var/run/bind.pid":把bind程序运行的pid写入文件bind.pid。
transfer-format many-answers:使用更加有效的域传输格式many-answers。
allow-query { any; }:允许所有用户查询dns。
在zone中:
这里定义了两个zone,一个是正解析zone qbtop.com,一个是反解析zone 81.19.23.in-addr.arpa。
他们的参数基本相同:
type master:定义dns服务器为主dns。
file "qbtop.com.zone":定义此zone的文件名。
allow-transfer { 23.19.81.194; }:允许向从dns 23.19.81.194传输dns数据。
唯一不同的是zone名称的定义,正解析zone名称的定义是受权的域名,可以是顶级域名,也可以是二级域名,或多级。反解析zone名称定义规定前部分ip倒着写。如ip 192.168.1.2,名称定义为1.168.192.in-addr.arpa。
正解析qbtop.com.zone
- vi /usr/local/bind/etc/qbtop.com.zone
写入如下内容:
- $TTL 3600
- @ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
- 2012022301 ; Serial
- 3600 ; Refresh
- 900 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- @ IN NS ns1.qbtop.com.
- @ IN NS ns2.qbtop.com.
- ns1 IN A 23.19.81.191
- ns2 IN A 23.19.81.194
- aaa IN A 23.19.81.191
- bbb IN A 23.19.81.191
文件说明:
$TTL 3600:指示为每个没有特殊TTL设置的RR给出了一个默认的TTL。
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
定义SOA记录,包括Zone的名字,一个技术联系人和各种不同的超时值。
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
设置两个ns记录ns1.qbtop.com和ns2.qbtop.com。
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
设置主机为ns1,ns2,aaa和bbb的A记录。
反解析文件81.19.23.in-addr.arpa
反解析zone可以不设置。
- vi /usr/local/bind/etc/81.19.23.in-addr.arpa
写入如下内容:
- $TTL 3600
- @ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
- 2012022301 ; Serial
- 3600 ; Refresh
- 900 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- @ IN NS ns1.qbtop.com.
- @ IN NS ns2.qbtop.com.
- 191 IN PTR ns1.qbtop.com.
- 194 IN PTR ns2.qbtop.com.
说明:
上部分是定义SOA记录,下部分是设置IP反解析。
如设置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。
配置从DNS服务器
下面我们来配置从DNS服务器。配置从DNS服务器只需要配置主配置文件named.conf,zone文件不需配置,因为这是从主DNS服务器获取的。
首先建立目录slaves用来存放从主dns获取的zone文件。
- mkdir /usr/local/bind/etc/slaves
写入如下内容:
- logging {
- channel default_syslog { syslog local2; severity notice; };
- channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
- category default { default_syslog; };
- category general { default_syslog; };
- category security { audit_log; default_syslog; };
- category config { default_syslog; };
- category resolver { audit_log; };
- category xfer-in { audit_log; };
- category xfer-out { audit_log; };
- category notify { audit_log; };
- category client { audit_log; };
- category network { audit_log; };
- category update { audit_log; };
- category queries { audit_log; };
- category lame-servers { audit_log; };
- };
- options {
- directory "/usr/local/bind/etc";
- pid-file "/usr/local/bind/var/run/bind.pid";
- transfer-format many-answers;
- interface-interval 0;
- allow-query { any; };
- };
- zone "qbtop.com" {
- type slave;
- file "slaves/qbtop.com.zone";
- masters { 23.19.81.191; };
- };
- zone "81.19.23.in-addr.arpa" {
- type slave;
- file "slaves/81.19.23.in-addr.arpa";
- masters { 23.19.81.191; };
- };
文件说明:
从dns跟主dns主要的区别是zone的定义,type slave定义此dns服务器为从dns,masters { 23.19.81.191; }定义主dns的IP。
启动BIND
1、在启动BIND之前,我们需要执行/usr/local/bind/sbin/named-checkconf检查named.conf配置文件,和执行/usr/local/bind/sbin/named-checkzone zone名称 zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com /usr/local/bind/etc/qbtop.com.zone。
然后调试模式启动bind,/usr/local/bind/sbin/named -g,g参数的意思是前台执行bind,这会输出启动的信息,发现没有严重的错误后,再把g参数删除重新以/usr/local/bind/sbin/named方式后台启动bind。
2、设置开机启动,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。
手动添加记录
1、直接添加删除或修改zone文件里的记录
2、执行rndc reload zone名称重载,如rndc reload qbtop.com
注意
1、主从同步的两台机器要在同一个时区,时间相差不要太大。
2、主的dns服务器在修改了正向解析文件跟反向分解析文件时,要修改相应的 serial(通常是加数值,这个值必须主的要大于从的,要不同步不了)
配置文件参考:http://www.bind.com/?path=dns
BIND9中文手册:http://www.centos.bz/manual/BIND9-CHS.pdf
转载请标明文章来源:《https://www.centos.bz/2011/07/centos-install-bind-dns-server/》
====================================================