Linux网络服务_主从DNS配置示例_Redhat Enterprise 5.9
一:DNS服务器搭建
二:从DNS服务器搭建
三:配置DNS服务器常见错误
环境:win7下vmware、server1为主DNS服务器、server2为从DNS服务器、client1为客户机
一:DNS服务器搭建:
搭建DNS服务器,需要安装三个软件:bind、bind-chroot、caching-nameserver
注:
1,bind-chroot软件包安装之后,配置文件的路径将发生改变:
/etc/named.conf修改为/var/named/chroot/etc/named.conf
/etc/named/修改为/var/named/chroot/etc/named/
2,caching-nameserver软件包安装之后,在配置文件目录/var/named/chroot/etc/目录下,会有配置文件named.conf(本身不存在)的模板文件named.caching-nameserver.conf
3,在复制named.conf模板文件文件的时候,需要加-p参数,权限不对,可能导致服务无法启动!
第一步:首先,查看三个软件包是否安装
[root@server1 ~]# rpm -q bind bind-chroot caching
package bind is not installed
package bind-chroot is not installed
package caching is not installed
第二步:挂载光盘,安装三个软件包,由于没有依赖关系,所以直接使用rpm -ivh安装
[root@server1 ~]# rpm -ivh /misc/cd/Server/bind-9.3.6-20.P1.el5_8.5.x86_64.rpm
/misc/cd/Server/bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm /misc/cd/Server/caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm
warning:/misc/cd/Server/bind-9.3.6-20.P1.el5_8.5.x86_64.rpm: Header V3 DSA signature:NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:bind ########################################### [ 33%]
2:bind-chroot ########################################### [ 67%]
3:caching-nameserver ########################################### [100%]
注:上面的warning信息是由于没有安装系统公钥文件造成的,可以使用:
[root@client1 ~]# find / -name *RPM*rele* //查询公钥位置
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
/misc/cd/RPM-GPG-KEY-redhat-release
/media/RPM-GPG-KEY-redhat-release
[root@client1 ~]#
[root@client1 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //安装系统公钥
第三步:修改主配置文件named.conf并验证其完整性
安装完bind-chroot软件之后,named服务的配置文件就指定放在/var/named/chroot/这个目录下;
主配置文件位置在:/var/named/chroot/etc/目录下的:
named.conf和named.rfc1912.zones
[root@server1 etc]# pwd
/var/named/chroot/etc
[root@server1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@server1 etc]# ll named.caching-nameserver.conf named.conf
-rw-r----- 1 root named 1230 2012-10-10named.caching-nameserver.conf
-rw-r----- 1 root named 605 03-03 11:06 named.conf
[root@server1 etc]# vim named.conf
[root@server1 etc]# cat named.conf
options {
listen-on port 53 { 192.168.1.1;}; //监听该ip地址的53端口
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; }; //允许对那些主机进行解析,any为所有
allow-query-cache { any; }; //和上一句是一样的,指定为any或者网段或ip地址
};
logging {
channel default_debug {
file"data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones"; //指定配置文件包换有named.rfc...
};
[root@server1 etc]# tail named.rfc1912.zones //下面的内容为添加的字段,指定正反文件位置
zone"tarena.com" IN {
type master;
file "tarena.com.zone"; //指定正向解析文件为tarena.com.zone
};
zone"1.168.192.in-addr.arpa" IN {
type master;
file "tarena.com.zero"; //指定反向解析文件为tarena.com.zero
};
[root@server1 etc]# named-checkconf named.conf //如果有错误会提示,没错误不提示
第四步:修改区域文件并验证其完整性
[root@server1 etc]# cd../var/named/ //切换到/var/named/chroot/var/named目录
[root@server1 named]# pwd
/var/named/chroot/var/named
[root@server1 named]# cp -p named.local tarena.com.zone //以named.local为模板创建文件
[root@server1 named]# vimtarena.com.zone
[root@server1 named]# cattarena.com.zone
$TTL 86400
@ IN SOA tarena.com. root.tarena.com. (
1997022700 ; Serial //时间和版本号,十位数
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400) ; Minimum
IN NS dns1.tarena.com.
dns1 IN A 192.168.1.1
www IN A 192.168.1.80
www IN A 192.168.1.90
www IN A 192.168.1.100 //一个域名对应多个ip实现负载均衡
mail IN A 192.168.1.81
bbs IN A 192.168.1.82
blog IN CNAME bbs //定义bbs.tarena.com的别名
* IN A 192.168.1.80 //定义泛查询地址为192.168.1.80
[root@server1 named]# cp -p tarena.com.zone tarena.com.zero
[root@server1 named]# vim tarena.com.zero
[root@server1 named]# cat tarena.com.zero
$TTL 86400
@ IN SOA tarena.com. root.tarena.com. (
1997022700; Serial //
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400) ; Minimum
IN NS dns1.tarena.com.
1 IN PTR dns.tarena.com.
80 IN PTR www.tarena.com.
81 IN PTR mail.tarena.com.
82 IN PTR bbs.tarena.com.
82 IN PTR blog.tarena.com.
[root@server1 named]# ll tarena.com.z* //需要保证权限正确,否则无法启动named服务
-rw-r----- 1 root named 533 03-03 14:45 tarena.com.zero
-rw-r----- 1 root named 523 03-03 14:43 tarena.com.zone
[root@server1 etc]# named-checkzone tarena.com.zero//检查正向文件语法完整性,正向解析检测相同
zone tarena.com/IN: loaded serial 42
OK //如果没有错误,就证明没有毛病
[root@server1 etc]#
[root@server1 named]# service named restart //重新启动服务
停止 named: [确定]
启动 named: [确定]
[root@server1 named]#
注:
正向解析文件中的@符号表示:tarena.com
反向解析文件中的@符号表示:1.168.192
第五步:客户端测试
1,首先为客户端配置DNS地址:
修改/etc/resolv.conf,指定dns地址为dns服务器server1的ip地址。
[root@server2 ~]# cat /etc/resolv.conf
nameserver 192.168.1.1
[root@server2 ~]#
2,使用host或nslookup来查看是否能成功解析
[root@server2 ~]# host dns1.tarena.com
dns1.tarena.com has address 192.168.1.1
[root@server2 ~]# nslookup bbs.tarena.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: bbs.tarena.com
Address: 192.168.1.82
[root@server2 ~]# host 192.168.1.81
81.1.168.192.in-addr.arpa domain namepointer mail.tarena.com.
[root@server2 ~]#
注:如果不修改/etc/resolv.conf文件,则在使用host或nslookup的时候,需要指定dns地址:
如:
[root@client1 ~]# host www.tarena.com 192.168.1.1
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
www.tarena.com has address 192.168.1.80
[root@client1 ~]#
二:从DNS服务器配置:
第一步:查看是否安装bind、bind-chroot、caching-nameserver软件包,如果没有安装,则使用rpm安装相应软件包。
第二步:修改dns的主配置文件/var/named/chroot/etc/named.conf
1,修改option的字段listen-onport 53 { 127.0.0.1; };
2,修改option的字段allow-query { localhost; };
3,修改option的字段allow-query-cache{ localhost; };
4,修改view的字段match-clients{ localhost; };
5,修改view的字段match-destinations{ localhost; };
修改后的内容如下:
[root@server2 etc]# grep -vE "^#|^$|^\/\/" named.conf
options {
listen-on port 53 { 192.168.1.254; };
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; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file"data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
[root@server2 etc]#
第三步:修改dns的主配置文件/var/named/chroot/etc/named.rfc1912.zones
注:
1,type类型指定为从----slave
2,文件位置放在slaves/下,这个位置为相对路径
3,添加masters字段,指定主DNS服务器的地址
在文件的末尾添加以下内容:
[root@server2 etc]# tail named.rfc1912.zones
zone "tarena.com" IN {
type slave;
file "slaves/tarena.com.zone"; //这里只指定位置,不创建文件
masters { 192.168.1.1; };
};
zone "1.168.192.in-addr.arpa" IN{
type slave;
file "slaves/tarena.com.zero";
masters { 192.168.1.1; };
};
[root@server2 etc]# service named restart
[root@server2 etc]#
第四步:验证
1,在主服务器上重新加载named服务:
[root@server1 ~]# service named reload
重新载入 named: [确定]
2,在从服务器上重启named服务:
[root@server2 etc]# service named restart
停止 named:. [确定]
启动 named: [确定]
[root@server2 etc]#
3,在从dns服务器上,进入/var/named/chroot/var/named/slaves目录,查看是否同步正向和反向解析文件,如果成功同步,则说明从dns服务器配置成功。
[root@server2 slaves]# ls
tarena.com.zero tarena.com.zone
[root@server2 slaves]#
注:如果无法同步,需要注意主DNS服务器上的时间,也就是named.conf配置文件用括号包含的那一部分配置,第一项为时间和版本号,如果主DNS中的这个值比从DNS中的时间值大的话,那么就会同步,如果相同,不同步。其中括号内还定义了更新的时间。
第五步:安全
为了安全,可以在主DNS服务器上给dns配置文件named.conf的option字段添加一行:
allow-transfer { 192.168.1.254;};
设置只允许192.168.1.254能够同步该主DNS服务器上的解析文件!
三:配置DNS服务器的常见错误
1,在配置dns服务器之前,必须为该服务器配置ip地址;
2,在使用cp命令创建named.conf的时候需要添加-p参数以保证权限相同;
3,同样,在创建正向和反向解析文件时,也需要添加-p参数,保证权限相同;
4,DNS服务器上的dns配置文件named.rfc1912.zones文件添加内容为:
添加:
zone "tarena.com" IN {
type master;
file "tarena.com.zone";
};
zone "1.168.192.in-addr.arpa" IN{
type master;
file "tarena.com.zero";
};
5,从DNS服务器dns配置文件named.rfc1912.zones文件添加内容为:
zone "tarena.com" IN {
type slave;
file "slaves/tarena.com.zone";
masters { 192.168.1.1; };
};
zone "1.168.192.in-addr.arpa" IN{
type slave;
file "slaves/tarena.com.zero";
masters { 192.168.1.1; };
};
6,使用named-checkconf来检查配置文件named.conf的语法完整性
7,使用named-checkzone来检查正反向区域解析文件的语法完整性
8,named.conf和named.rfc1912.zones其实是一个文件,named服务在检测配置文件的时候,检测的是named.conf这个配置文件,而在named.conf这个配置文件里面定义,包括named.rfc1912.zones这个文件里面的配置内容,所以两个文件其实算是一个文件,那就是named服务的配置文件named.conf