linux6.4 dns 主从,dns正反解析与主从复制文件同步

去设置我们的zone:

vim named.rfc1912.zones

在最后添加:

zone "example.com" IN {(zone的名称)

type master;                             (什么类型)

file "example.com.zone";         (数据库文件在哪)

allow-update { none; };

};

zone "0.168.192.in-addr.arpa" IN {

type master;

file "example.com.local";

allow-update { none; };

};

再去配置我们的数据库文件:

cd/var/named/chroot/var/named

cp -p named.localhost example.com.zone

cp -p named.loopback  example.com.local

切记,不要将这两个文件复制到跟我们的named.conf在同一个目录,不然重启服务的时候会以下出错(实验在这里浪费好多时间):

Error in named configuration:

zone localhost.localdomain/IN: loaded serial 0

zone localhost/IN: loaded serial 0

zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0

zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0

zone 0.in-addr.arpa/IN: loaded serial 0

zone example.com/IN: loading from master file example.com.zone failed: file not found

zone example.com/IN: not loaded due to errors.

_default/example.com/IN: file not found

zone 0.168.192.in-addr.arpa/IN: loading from master file example.com.local failed: file not found

zone 0.168.192.in-addr.arpa/IN: not loaded due to errors.

_default/0.168.192.in-addr.arpa/IN: file not found

由于我是用物理机做的DNS去给虚拟机用,方便用虚拟机做实验嘛=。=所以下面这两个文件是我的配置:

vim   example.com.zone

$TTL 1D

@       IN SOA  silence.example.com.    root.example.com. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      silence.example.com.

silence  A       192.168.0.100

A       192.168.0.100

vm1     A       192.168.0.201

vm2     A       192.168.0.202

vm3     A       192.168.0.203

vm4     A       192.168.0.204

vm5     A       192.168.0.205

vm6     A       192.168.0.206

vm7     A       192.168.0.207

vm8     A       192.168.0.208

vim example.com.local

$TTL 1D

@       IN SOA  silence.example.com.    root.example.com. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      silence.example.com.

100     PTR     example.com.

100     PTR     silence.example.com.

201     PTR     vm1.example.com.

202     PTR     vm2.example.com.

203     PTR     vm3.example.com.

204     PTR     vm4.example.com.

205     PTR     vm5.example.com.

206     PTR     vm6.example.com.

207     PTR     vm7.example.com.

208     PTR     vm8.example.com.

下面来说说这两个文件的内容:

@ :代表zone的意思,在example.com,zone中代表example.com在example.com.local中代表0.168.192.in-addr.arpa

.:这个点很重要,代表一个完整的主机名而不是hostname,如果没有.则vm1.example.com代表vm1.example.com.example.com

A  :Address 域名向ip地址转换的记录;

PTR:Printer ip地址向域名转换的记录;

NS:代表域内的dns服务器;

MX:代表域内的邮件服务器;

CNAME:域名的别名;

SOA:start of authority用于标示域内主DNS服务器。

Serial﹕其格式通常会是“年月日+修改次序”(但也不一定如此﹐您自己能够记得就行)。当 slave 要进行数据同步的时候﹐

会比较这个号码。如果发现在这里的号码比它那的值“大”﹐ 就进行更新﹐否则忽略。不过设 serial 有一个地方您要留意﹕不能超过 10 位数字﹗

Refresh﹕这里是是告诉 slave 要隔多久要进行数据同步(是否同步要看 Serial 的比较结果)。

Retry﹕如果 slave 在进行更新失败后﹐要隔多久再进行重试。

Expire﹕这是记录逾期时间﹕当 slave 一直未能成功与 master 取得联络﹐那到这里就放弃 retry﹐同时这里的数据也将标识为过期( expired )。

Minimum﹕这是最小预设 TTL 值﹐如果您在前面没有用“$TTL”来定义﹐就会以此值为准。

OK,文件配置来之后,重启服务,开启客户机进行测试吧~(注意更改你的测试机的DNS)

下面是我的测试情况:

[root@vm3 named]# dig vm1.example.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> vm1.example.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:

;vm1.example.com.INA

;; ANSWER SECTION:

vm1.example.com.86400INA192.168.0.201

;; AUTHORITY SECTION:

example.com.86400INNSsilence.example.com.

;; ADDITIONAL SECTION:

silence.example.com.86400INA192.168.0.100

;; Query time: 2 msec

;; SERVER: 192.168.0.100#53(192.168.0.100)

;; WHEN: Sat Oct 11 19:21:45 2014

;; MSG SIZE  rcvd: 87

[root@vm3 named]# dig -x 192.168.0.204

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 192.168.0.204

;; global options: +cmd

;; Got answer:

;; ->>HEADER<

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:

;204.0.168.192.in-addr.arpa.INPTR

;; ANSWER SECTION:

204.0.168.192.in-addr.arpa. 86400 INPTRvm4.example.com.

;; AUTHORITY SECTION:

0.168.192.in-addr.arpa.86400INNSsilence.example.com.

;; ADDITIONAL SECTION:

silence.example.com.86400INA192.168.0.100

;; Query time: 1 msec

;; SERVER: 192.168.0.100#53(192.168.0.100)

;; WHEN: Sat Oct 11 19:23:24 2014

;; MSG SIZE  rcvd: 111

再来折腾下主从复制与文件同步吧~~

去主DNS(我的物理机)上进行配置:

cd /var/named/chroot/etc

对于name.conf这个文件暂时还不需要配置

vim  name.rfc1912zones

zone "example.com" IN {

type master;

file "example.com.zone";

allow-update { none; };

allow-transfer { 192.168.0.203; };

};

zone "0.168.192.in-addr.arpa" IN {

type master;

file "example.com.local";

allow-update { none; };

allow-transfer { 192.168.0.203; };

};

在原来的每个域中加来一条参数而已!

现在需要一台虚拟机作为我的辅助DNS,马上开一台虚拟机 IP:192.168.0.203(DNS设置为自身)

在虚拟机中安装好bind bind-chroot

yum install bind bind-chroot -y

/etc/init.d/named start

cd /var/named/chroot/etc

vim named.conf

整个文件大致被我糟蹋成这个样子:

options {

//      listen-on port 53 { any; };

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     { any; };

//      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;

};

};

view localhost_resolver {

recursion yes;

include "/etc/named.rfc1912.zones";

zone "." IN {

type hint;

file "named.ca";

};

zone "example.com" IN {

type slave;

masters { 192.168.0.100; };

file "slaves/example.com.zone";      (从主DNS复制过来的数据保存在/var/named/chroot/var/named/slaves)

};

zone "0.168.192.in-addr.arpa" IN {

type slave;

masters { 192.168.0.100; };

file "slaves/example.com.local";

};

};

include "/etc/named.root.key";

在这个文件中,由于我们用到view来声明,所以所有的域都应该在view中包含,不然重启服务会出现以下错误:

Error in named configuration:

/etc/named.conf:37: when using 'view' statements, all zones must be in views

[FAILED]

OK,重启我的辅助DNS。看下我们要的两个数据文件复制过来了吗?文件同步:

在主DNS中配置

cd /var/named/chroot/etc

vim named.rfc1912.zones

修改我们的zone

zone "example.com" IN {

type master;

file "example.com.zone";

allow-update { none; };

allow-transfer { 192.168.0.203; };

also-notify { 192.168.0.203; };

};

zone "0.168.192.in-addr.arpa" IN {

type master;

file "example.com.local";

allow-update { none; };

allow-transfer { 192.168.0.203; };

also-notify { 192.168.0.203; };

};

在原来的配置加上also-notify参数!

然后就是我们两个数据库文件的修改:

vim  /var/named/chroot/var/named/example.com.zone

$TTL 1D

@       IN SOA  silence.example.com.    root.example.com. (

2014101204      ; serial(d. admas)

2H              ; refresh

20M             ; retry

1W              ; expire

1D)             ; minimum

NS      silence.example.com.

silence A       192.168.0.100

A       192.168.0.100

vm1     A       192.168.0.201

vm2     A       192.168.0.202

vm3     A       192.168.0.203

vm4     A       192.168.0.204

vm5     A       192.168.0.205

vm6     A       192.168.0.206

vm7     A       192.168.0.207

vm8     A       192.168.0.208

依样画葫芦,example.com.local会修改了吗?

在每次修改我们的数据库文件时我们一定要记住修改serial的值,然后reload服务,查看下辅助DNS的文件数据有没有同步吧~~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值