Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102988
  • 博文数量: 42
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-28 13:57
文章分类

全部博文(42)

文章存档

2010年(10)

2009年(32)

我的朋友

分类:

2009-09-15 21:07:55

建立master/slave 主从DNS实验

参考了很多文章.有鸟哥的,有徐秉義(Albert Hsu)另外一些网络文章,自己也来做做加深一下认识

vm虚拟机6.5  host-only连接
网段为192.168.135.0/24 gateway 192.168.135.1
rhel5系统   2个  默认关闭selinux
一个master 192.168.135.129
一个slave 192.168.135.128

[root@localhost ~]# rpm -qa bind*
bind-9.3.4-10.P1.el5
bind-sdb-9.3.4-10.P1.el5
bind-chroot-9.3.4-10.P1.el5
bind-devel-9.3.4-10.P1.el5
bind-libs-9.3.4-10.P1.el5
bind-libbind-devel-9.3.4-10.P1.el5
bind-utils-9.3.4-10.P1.el5

[root@localhost ~]# rpm -qa caching*
caching-nameserver-9.3.4-10.P1.el5        具体就不说什么了.大家都知道虾米原因

——主master =192.168.135.129
vi /var/named/chroot/etc/named.conf
这里的named.conf 系统默认是没有的,我做的是从最简单开始,所以自己写
options {
directory        “/var/named”;
allow-transfer { none; };  //默认是禁止,这样是为了安全
};

zone    “yuan.org” IN {      //我的正解zone
type master;
file “yuan.org.zone”;
allow-transfer  { 192.168.135.128; }; //然后个别使用
allow-update { localhost; };
};
zone    “135.168.192.in-addr.arpa” IN { //反解zone
type master;
file “135.168.192.zone”; //这里这些其实都是按照个人习惯,不过我懒乱写了个
理论上用135.168.192.in-addr.arpa这个比较规范
allow-transfer  { 192.168.135.128; } ;
allow-update { localhost; };
};
网上面好多文章说还有name.ca 阿什么的 其实暂时对于我们作实验是没用的,我等下也转载一篇东西,大家明白到DNS解析是怎么搞的就知道那几个文件是干嘛的,也会明白为什么不需要

vi /var/named/chroot/var/named/yuan.org.zone  正解文件,或者叫正解zone的数据库

$ORIGIN .      ——  這個設定值可以重新指定 zone 的定義。(可有可无,作用也分的很详细时候才有用)
.点代表一個完整主機名稱 (FQDN) 而不是僅有 hostname 而已
$TTL 86400      ; 1 day
yuan.org                IN SOA  ns.yuan.org. root.yuan.org. (
2009052209 ; serial 传送与否就看这个数字
10800      ; refresh (3 hours)
900        ; retry (15 minutes)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS      ns.yuan.org.
NS      slave.yuan.org.
$ORIGIN yuan.org.
ns                      A       192.168.135.129 ;主master DNS服务器 的A记录
slave                   A       192.168.135.128 ;从slave DNS服务器 的A记录

vi /var/named/chroot/var/named/135.168.192.zone —-反解数据库

$TTL    86400
@       IN SOA  ns.yuan.org.       root (
2009052209              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum
@               IN NS           ns.yuan.org.
129             IN PTR          ns.yuan.org.
@               IN NS           slave.yuan.org.
128             IN PTR          slave.yuan.org.

——–从slave 192.168.135.128
slave从DNS主机的named.conf是跟主master的named.conf 的options部分是几乎一样的
在options作特别的修改,毕竟主从是用来备份的…
不同的是zone部分
vi /var/named/chroot/etc/named.conf

zone “yuan.org” IN {
type slave;  //这里是slave
file “slaves/yuan.org.zone.bak”; //这里的文件位置是放在
…../var/named/slaves这里,当然也可以自己设置位置,但是你要保证权限是给予named用户写入,不然的话 会提示权限不够,还有我这里是bak的后缀,是为了好分辨,
masters { 192.168.135.129; }; //注意的是masters
};
zone “135.168.192.in-addr.arpa” IN {
type slave;
file “slaves/135.168.192.zone.bak”;
masters { 192.168.135.129; };
};

从slave就这么设置完成了,因为主从关系,正解库跟反解库文件会自行自动的写入
这就是主从的设置原因,所以你的正解反解库 在从机上是不需要的,如果有,清删除,
可能会出现莫名其妙的错误
———-
还有一个 就是
vi /etc/resolv.conf  —- Resolver
相當於是 DNS server 的 client 端, 通常是以函式庫的方式被放在整套作業系統中, 各類的應用程式經由呼叫這個 resolver 函式庫可以很容易地向 DNS server 進行查詢, 得到所要的資料. (正统的解释)
search yuan.org
nameserver 192.168.135.129
nameserver 192.168.135.128
其实这个就是我们进行测试 用nslookup 或者dig 或者host的时候,默认的DNS搜索方向
如果不进行设置的话,我们在作测试的时候就要自己设定,不然你是不能查询你想要查询DNS是否正常
另外其实还有一个/etc/host 的文件,这个是更加强悍的一个
>>>>>引用一下鸟哥的话(就是鸟语拉)
我們先來談一談幾個設定檔吧!

  • /etc/hosts :剛剛上面就提過了,這個是最早的 hostname 對應 IP 的檔案;
  • /etc/resolv.conf :這個重要!就是 DNS 主機的 IP;
  • /etc/nsswitch.conf:這個檔案則是在『決定』先要使用 /etc/hosts 還是 /etc/resolv.conf 的設定!

一般而言, Linux 的預設主機名稱與 IP 的對應搜尋都以 /etc/hosts 為優先, 為什麼呢?您可以查看一下 /etc/nsswitch.conf ,並找到 hosts 的項目:

[root@linux ~]# vi /etc/nsswitch.conf
hosts: files dns

上面那個 files 就是使用 /etc/hosts 而最後的 dns 則是使用 /etc/resolv.conf 的 DNS 主機 IP 搜尋啦!因此,您可以先以 /etc/hosts 來設定 IP 對應ㄋㄟ! 當然啦,您也可以將他調換過來,不過,總是 /etc/hosts 比較簡單,所以將他擺在前面比較好啦!
>>>>>>>>>>>>

设定完成之后 还有一个地方
system-config-securitylevel
这个是iptables 的图形化界面
在这里要明白一点,
master 是要通过建立tcp 来进行transfer 所以你要将防火墙iptables的53tcp端口打开
默认是紧闭的
而slave 是用53udp 来进行查询的,其实一般DNS都是用udp53来进行查询

ex:  –也可以自己写iptables

An example iptables rule for the 192.168.15.0/24 subnet would be:
iptables -A INPUT -s 192.168.15.0/24 -p udp --dport 53 -j ACCEPT
service iptables save

Master/Slave 的 DNS 主機資料同步過程
圖五、Master/Slave 的 DNS 主機資料同步過程
整個更新的過程是這樣的:

  1. Slave 判斷是否需要更新(1.1):
    我們可以在 Slave 設定好向 Master DNS 主機要求資料更新的週期時間,則每當到達更新時間時, Slave 會向 Master 索取是否需要更新資料,這個更新資料的判斷則以 Serial number 是否不同來進行更新喔!

  2. Master 判斷是否需要更新(1.2):
    除了由 Slave 向 Master 的查詢之外,Master 如果 DNS 資料經過變更,且想要 Slave 同步更新時,也可以主動的向 Slave 進行更新通知!

  3. 資料同步化(2):
    最後當然就是資料由 Master 傳送到 Slave 來更新 Slave 的 DNS 資料囉!

(这个繁体的自然又是鸟大的杰作)

>>>>>>>>>>>>
使用工具检查

看了一下rh官方里面介绍了一下
ex:
named-checkzone hughes.lan hughes.lan.zone
named-checkzone 15.168.192.in-addr.arpa 192.168.15.zone
用named-checkzone 检查你的正解库跟反解库语法上,权限上的错误
>>>>>>>>>>>>

另外关于dig 的用法
其实不外乎
dig -x  ip  查反解
dig 域名 MX或者NS…
dig yuan.org NS

dig XXXXX @ XXXXX 直接询问@后面的DNS主机 @前面的那个DNS
具体参考dig的用法,一般来说dig 比较强大 nslookup 次之  host 最后

>>>>>>>>>>>>
tail /var/log/message  这里面有很强悍的信息来查询你的错误原因
>>>>>>>>>>>>
最后这个实验的用法就是你将master的那个
2009052209 ; serial    每次修改zone 都要增加该数字,一般来说用日期时间来设定,
这样就可以快速进行实验,而不需要等refresh时间,另外每次修改完named的各类文件都要重新启动/etc/init.d/named restart
阅读(1151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~