Linux-DNS主从服务
DNS,域名解释。所谓域名解释可以理解为人的***号码与姓名的关系。网站也有对应的IP和域名,访问IP和域名都可以达到目的,但谁会去记IP?就像谁会记得你的***号码一样。DNS就是将这两者互相解释,因此分为正向和反向。
以红冒企业版RHEL5为例,并以著名DNS服务器软件BIND为例。搭建主域名服务器和从域名服务器。这里所谓的主从,是从服务器同步主服务器,可以作为DNS服务器热备,只是数据源于主服务器。
安装BIND软件,可以到其官方网站下载,https://www.isc.org。主要包括bind,bind-utils,bind-libs,bindchroot,caching-nameserver。
mount /dev/cdrom /media/cdrom
rpm -Uvh /media/cdrom/Server/bind-9.3.3-7.el5.i386.rpm
rpm -Uvh /media/cdrom/Server/caching-nameserver-*
rpm -Uvh /media/cdrom/Server/bind-chroot-*
安装完成后,会自动增加一个named到系统服务。配置文件主要为主配置文件和区域配置文件,搞定两者则可以了!!
首先,确定本机IP,主机映射,默认DNS地址等。例如IP地址为192.168.78.129,主机名为dns.test.com。修改/etc/hosts文件,将DNS地址映射写入:
vim /etc/hosts
....//略
192.168.78.129 dns.test.comdns
192.168.78.130dns2.test.comdns2
修改/etc/resolv.conf文件,提高解析速度。
vim /etc/resolv.conf
nameserver192.168.78.129
nameserver192.168.78.130
主配置文件常位于/etc/目录下,刚才安装了bind-chroot后,则主配置文件默认位于/var/named/chroot/etc/目录下,而且需要手动创建,但可以复制配置文件。
cd /var/named/chroot/etc/
cp -p named.caching-nameserver.conf named.conf
-p是为了保留权限。
vim /var/named/chroot/etc/named.conf
通常除了directory项保留外,其余都可以删除。
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";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; }; //允许使用本DNS服务到的网段,可以是多个,例如allow-query {192.168.1.0/24;192.168.2.0/24};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
//修改成如下:
options {
directory "/var/named";
};
zone "test.com" IN { //正向“test.com”区域
type master ; //类型为主区域
file "test.com.zone"; //区域数据文件为test.com.zone
allow-transfer {192.168.78.130;}; //允许下载到从服务器地址
};
zone "78.168.192.in-addr.arpa" IN { //反向”192.168.78.0/24“区域
type master;
file "192.168.78.arpa"; //区域数据文件为78.168.192.arpa
allow-transfer {192.168.78.130;};
};
保存退出。
通过命令可以查看语法有没有错误。
named-checkconf -z /var/named/chroot/etc/named.conf
区域配置文件,通常位于/var/named/目录下,又因为安装了bind-chroot软件包,默认目录为/var/named/chroot/var/named/目录下。
复制一份区域配置文件作修改,并且文件名修改为主配置文件所设置的区域名。
cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/test.com.zone
vim /var/named/chroot/var/named/test.com.zone
$TTL 86400//有效解析记录的生存周期
@ IN SOA @ root( //SOA标记,域名,管理邮箱
2015010801 //更新序列号,10位以内的整数
3H //刷新时间,重新下载地址数据的间隔时间
15M //重试延时,下载失败后的重试间隔
1W //失效时间,超过该时间仍无法下载则放弃
1D ) //无效解析记录的生存周期
IN NS @ //NS域名服务器
IN A 127.0.0.1 //记录正向解析条目
IN MX 127.0.0.1 //邮件交换
将其修改为如下:
$TTL 86400
@ IN SOA test.com. admin.test.com. (
2015010801
3H
15M
1W
1D
)
@ IN NS dns.test.com.
IN MX 10 mail.test.com.
dns IN A 192.168.78.129
mail IN A 192.168.78.1
www IN A 192.168.78.2
* IN A 192.168.78.129
切记格式,每个域名后面须加. 否则出错。
修改反向区域配置文件,一样是复制并修改。
cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/192.168.78.arpa
vim /var/named/chroot/var/named/192.168.78.arpa
修改成如下:
$TTL 86400
@ IN SOA test.com. admin.test.com. (
2015010801
3H
15M
1W
1D )
IN NS dns.test.com.
129 IN PTR dns.test.com.
2 IN PTR www.test.com.
1 IN PTR mail.test.com.
保存退出。
重启服务
service named restart
在客户端的DNS地址设置为服务器IP 192.168.78.129
在cmd命令行里测试输入nslookup;在linux中也可以输入该命令测试。
C:\Documents and Settings\Administrator>nslookup
如果出现如下提示
Default Server: UnKnown不知道服务器的。则说明是反向解析配置出现问题,不能进行解析。这时需要检查反向解析配置文件,格式,地址,名称等。
在里面输入要解析的地址或IP
从服务器,IP地址为192.168.78.130,主机名为dns2.test.com,主机映射文件/etc/hosts和DNS解析文件/etc/resolv.conf与主服务器一样配置即可。
修改named.conf时,和主服务器有以下区别:
options {
directory "/var/named";
};
zone "test.com" IN {//正向“test.com”区域
type slave; //类型为从服务器
masters { 192.168.78.129; };//指定主服务器IP
file “slaves/test.com.zone";//下载的区域文件存放到slaves目录
};
zone "78.168.192.in-addr.arpa" IN {//反向”192.168.78.0/24“区域
type slave; //类型为从服务器
masters { 192.168.78.129; };//指定主服务器IP
file "slaves/192.168.78.arpa";//下载的区域文件存放到slaves目录
};
确保named用户对存放目录有写入权限,才可以成功下载。
ls -ld /var/named/chroot/var/named/slaves/
drwxrwx--- 2 named named 4096 2015-01-08 /var/named/chroot/var/named/slaves/
如果属宿主,权限有误,则修改。
在客户端上,从服务器和主服务器都没有什么区别,都可以解析得到。
将客户机的DNS地址换为192.168.78.130,测试亦可以成功解析!!