一、什么是DNS
DNS越来越重要,尤其未来IPv6这个需要128bits地址的东西。我们连IPv4的32bits都背不下来,128bits要怎么背?这时主机名自动解析为IP就很重要。那就是DNS。再此不过多赘述理论知识,想了解更多请点击超链接阅读鸟哥Linux私房菜DNS服务架设篇
二、实验环境
主机 | 操作系统 | IP地址 | 主要软件 |
DNS-master | Centos6.8 | 192.168.25.2 | bind、bind-libs、bind-utils、bind-chroot |
DNS-slave | Centos6.8 | 192.168.25.3 | bind、bind-libs、bind-utils、bind-chroot |
客户端 | Windows7 | 192.168.25.4 | cmd命令行工具 |
解析域名 | 解析IP | 配置文件名称 | 说明 |
www.linux.com | 192.168.25.5 | linux.com | 将主机名www.linux.com解析到IP:192.168.25.5 |
ftp.linux.com | 192.168.25.6 | linux.com | 将主机名ftp.linux.com解析到IP:192.168.25.6 |
game.linux.com | 192.168.25.7 | linux.com | 将主机名game.linux.com解析到IP:192.168.25.7 |
注:以上主机名均需要在“25.168.192.in-addr.arpa”中进行反向解析。
本次实验将在局域网环境中完成,我们需要规划使用的域名是linux.com
三、实验步骤
[root@localhost ~]# yum -y install bind-libs bind-utils bind-chroot bind ←使用yum安装bind
安装完bind向大家介绍安装bind之后自动生成的以及我们自己创建的配置文件起到的作用。
1)named.conf(DNS服务主要配置文件)
2)linux.com(主要的linux.com的正解文件)
3)25.168.192.in-addr.arpa(主要的192.168.25.5、6、7的反解文件)
4)named.ca(由bind软件提供的“.”正解文件)
详细信息请点击超链接:鸟哥Linux私房菜DNS服务器架设篇,这里不在做过多的赘述。
[root@localhost ~]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
//options 定义全局选项和默认值
options {
listen-on port 53 { any; }; //可不设置代表全部接受
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也能在zone语句中设定,这样全局options中的allow-query选项在这里就不起作用了。默认的是允许所有主机进行查询。
allow-query-cache { any; }; //允许用户查询服务器缓存。如果没有配置,则继承allow-recursion设置,若allow-recursion也没配置,则继承allow-query设置,若allow-query也没设置,则使用默认值default(localnets; localhost;)。
recursion yes; //设定服务器是否允许递归查询,默认为yes,如果是yes,并且一个DNS询问要求递归,那么服务器将会做所有能够回答查询请求的工作。若为off,并且服务器不知道答案,它将返回一个推荐响应。
notify yes; //如果是yes(默认),当一个授权的服务器修改了一个域后,DNS NOTIFY信息被发送出去。此信息将会发给列在域NS记录上的服务器(除了由SOA MNAME标示的主域名服务器)和任何列在also-notify选项中的服务器。如果是explicit,则notify将只发给列在also-notify中的服务器。如果是no,就不会发出任何报文。notify选项也可能设定在zone语句中,这样它就替代了options中的notify 语句。如果notify会使得辅域名服务器崩溃,就需要将此选项关闭。
dnssec-enable yes;
dnssec-validation yes;
/* 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;
};
};
zone "." IN {
type hint;
file "named.ca"; //由bind软件提供,“.”的正解文件,每台DNS服务器中都必须有这个zone
};
zone "linux.com" { //域linux.com的正解文件
type master;
file "linux.com";
};
zone "25.168.192.in-addr.arpa" { //IP:102.168.25.0段的反解文件
type master;
file "25.168.192.in-addr.arpa";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
named.conf配置文件详解请点击链接查看:http://blog.csdn.net/aly1989/article/details/51097805
编辑完/etc/named.conf之后我们需要在/var/named/下创建linux.conf、25.168.192.in-addr.arpa两个文件。
[root@localhost named]# vim /var/named/linux.com
$TTL 600
@ IN SOA ns1.linux.com. admin.qq.com. (
2017012603
1H
5M
2D
6H ) ;
@ IN NS ns1.linux.com. 自己DNS服务器的地址
ns1.linux.com. IN A 192.168.25.2 ns1.linux.com的A记录
www.linux.com. IN A 192.168.25.5
ftp.linux.com. IN A 192.168.25.6
game.linux.com. IN A 192.168.25.7
[root@localhost named]# vim /var/named/25.168.192.in-addr.arpa
$TTL 600 ; 10 minutes
@ IN SOA ns1.linux.com. admin.qq.com. (
2017021304 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
@ IN NS ns1.linux.com.
5 IN PTR www.linux.com.
6 IN PTR ftp.linux.com.
7 IN PTR game.linux.com.
注:无论是正解反解都需要指定自己的DNS服务器本文中是“ns1.linux.com”按照配置文档更改时只需要更改成自己的域就可以了。
详细的配置说明请点击超链接:鸟哥的linuxDNS服务器架设篇
重启DNS服务器并进行测试
[root@localhost ~]# service named restart
停止 named: [确定]
启动 named: [确定]
为了使测试结果更加的直观我们在三台主机上添加一个html的测试页面
在三台主机上安装Apache
[root@localhost ~]# yum -y install httpd
分别在三台主机上执行这三条命令:
[root@localhost ~]# echo "www.linux.com" > /var/www/html/index.html
[root@localhost ~]# echo "game.linux.com" > /var/www/html/index.html
[root@localhost ~]# echo "ftp.linux.com" > /var/www/html/index.html
在windows7上进行测试
将网卡DNS指定到DNS服务器
在浏览器中输入www.linux.com测试
在浏览器中输入ftp.linux.com进行测试
在浏览器中输入game.linux.com测试
打开cmd发现反解也可以使用了
在图中我们可以看出DNS反向解析已经可以正常使用
下面我们需要搭建从服务器了,从服务器的搭建也非常简单只需要更改一下配置文件即可
[root@localhost ~]# yum -y install bind-libs bind-utils bind-chroot bind
更改从服务器的主配置文件
[root@ns2 ~]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
recursion yes;
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "linux.com" {
type slave;
file "slaves/linux.com";
masters { 192.168.25.2; };
};
zone "25.168.192.in-addr.arpa" {
type slave;
file "slaves/25.168.192.in-addr.arpa";
masters { 192.168.25.2; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
注:需要注意的是type为“slave”,而且还需要指定主服务器地址
[root@ns2 ~]# service named restart
[root@ns2 ~]# ls /var/named/slaves/
25.168.192.in-addr.arpa linux.com
注:从服务器的数据库默认在/var/named/slaves/
[root@ns2 ~]# cat /var/named/slaves/linux.com
$ORIGIN .
$TTL 600 ; 10 minutes
linux.com IN SOA ns1.linux.com. admin.qq.com. (
2017021601 ; serial
3600 ; refresh (1 hour)
300 ; retry (5 minutes)
172800 ; expire (2 days)
21600 ; minimum (6 hours)
)
NS ns1.linux.com.
NS ns2.linux.com.
$ORIGIN linux.com.
ftp A 192.168.25.6
game A 192.168.25.7
ns1 A 192.168.25.2
ns2 A 192.168.25.3
www A 192.168.25.5
[root@ns2 ~]# cat /var/named/slaves/25.168.192.in-addr.arpa
$ORIGIN .
$TTL 600 ; 10 minutes
25.168.192.in-addr.arpa IN SOA ns1.linux.com. admin.qq.com. (
2017021602 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.linux.com.
$ORIGIN 25.168.192.in-addr.arpa.
3 NS ns2.linux.com.
5 PTR www.linux.com.
6 PTR ftp.linux.com.
7 PTR game.linux.com.
接下来我们添加一条新的解析记录试验一下主从能否自动同步
[root@localhost ~]# vim /var/named/linux.com
$TTL 600
@ IN SOA ns1.linux.com. admin.qq.com. (
2017021605
1H
5M
2D
6H ) ;
@ IN NS ns1.linux.com.
@ IN NS ns2.linux.com.
ns1.linux.com. IN A 192.168.25.2
ns2.linux.com. IN A 192.168.25.3
www.linux.com. IN A 192.168.25.5
ftp.linux.com. IN A 192.168.25.6
game.linux.com. IN A 192.168.25.7
oa.linux.com. IN A 192.168.25.7
web.linux.com. IN A 192.168.25.6
[root@localhost ~]# vim /var/named/25.168.192.in-addr.arpa
$TTL 600 ; 10 minutes
@ IN SOA ns1.linux.com. admin.qq.com. (
2017021605 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
IN NS ns1.linux.com.
IN NS ns2.linux.com.
5 IN PTR www.linux.com.
6 IN PTR ftp.linux.com.
7 IN PTR game.linux.com.
7 IN PTR oa.linux.com.
6 IN PTR web.linux.com.
注:需要注意上方标红的部分,尤其是序号部分“2017021605”这是一个序号,每次添加或删除内容之后都需要更改这个序号,要比修改之前的数大,建议使用当天日期当做日期,既方便又好记。
更改完数据文件之后需要重新加载两台DNS服务器,然后查看从服务器的linux.com数据库和25.168.192.in-addr.arpa数据库
[root@localhost ~]# service named reload
重新载入named: [确定]
[root@ns2 ~]# cat /var/named/slaves/linux.com
$ORIGIN .
$TTL 600 ; 10 minutes
linux.com IN SOA ns1.linux.com. admin.qq.com. (
2017021605 ; serial
3600 ; refresh (1 hour)
300 ; retry (5 minutes)
172800 ; expire (2 days)
21600 ; minimum (6 hours)
)
NS ns1.linux.com.
NS ns2.linux.com.
$ORIGIN linux.com.
ftp A 192.168.25.6
game A 192.168.25.7
ns1 A 192.168.25.2
ns2 A 192.168.25.3
oa A 192.168.25.7
web A 192.168.25.6
www A 192.168.25.5
好啦,实验做完了,已经同步到从服务器了
参考资料:http://yuanbin.blog.51cto.com/363003/108578/
http://zhaotao110.blog.sohu.com/205975570.html
http://jafy00.blog.51cto.com/2594646/743398
http://blog.sina.com.cn/s/blog_a55699a601019tot.html
鸟哥的linux私房菜
本文出自 “linux” 博客,请务必保留此出处http://bella41981.blog.51cto.com/10603572/1898620
原文:http://bella41981.blog.51cto.com/10603572/1898620