分类:
2009-09-15 21:07:55
参考了很多文章.有鸟哥的,有徐秉義(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 的文件,这个是更加强悍的一个
>>>>>引用一下鸟哥的话(就是鸟语拉)
我們先來談一談幾個設定檔吧!
一般而言, Linux 的預設主機名稱與 IP 的對應搜尋都以 /etc/hosts 為優先, 為什麼呢?您可以查看一下 /etc/nsswitch.conf ,並找到 hosts 的項目:
[root@linux ~]# vi /etc/nsswitch.conf |
上面那個 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 主機資料同步過程
整個更新的過程是這樣的:
(这个繁体的自然又是鸟大的杰作)
>>>>>>>>>>>>
使用工具检查
看了一下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 最后