设为首页 收藏本站
查看: 427|回复: 1

[经验分享] DNS主从服务搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-17 08:38:12 | 显示全部楼层 |阅读模式
一、什么是DNS
  DNS越来越重要,尤其未来IPv6这个需要128bits地址的东西。我们连IPv4的32bits都背不下来,128bits要怎么背?这时主机名自动解析为IP就很重要。那就是DNS。再此不过多赘述理论知识,想了解更多请点击超链接阅读鸟哥Linux私房菜DNS服务架设篇
二、实验环境
主机
操作系统IP地址主要软件
DNS-master
Centos6.8192.168.25.2bind、bind-libs、bind-utils、bind-chroot
DNS-slaveCentos6.8192.168.25.3bind、bind-libs、bind-utils、bind-chroot
客户端Windows7192.168.25.4cmd命令行工具
解析域名解析IP
配置文件名称说明
www.linux.com192.168.25.5linux.com将主机名www.linux.com解析到IP:192.168.25.5
ftp.linux.com192.168.25.6linux.com将主机名ftp.linux.com解析到IP:192.168.25.6
game.linux.com192.168.25.7
linux.com将主机名game.linux.com解析到IP:192.168.25.7
注:以上主机名均需要在“25.168.192.in-addr.arpa”中进行反向解析。
本次实验将在局域网环境中完成,我们需要规划使用的域名是linux.com
三、实验步骤
[iyunv@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服务器架设篇,这里不在做过多的赘述。

[iyunv@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两个文件。

[iyunv@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

[iyunv@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服务器并进行测试
[iyunv@localhost ~]# service named restart
停止 named:                                               [确定]
启动 named:                                               [确定]

为了使测试结果更加的直观我们在三台主机上添加一个html的测试页面
在三台主机上安装Apache
[iyunv@localhost ~]# yum -y install httpd

分别在三台主机上执行这三条命令:
[iyunv@localhost ~]# echo "www.linux.com" > /var/www/html/index.html
[iyunv@localhost ~]# echo "game.linux.com" > /var/www/html/index.html
[iyunv@localhost ~]# echo "ftp.linux.com" > /var/www/html/index.html

在windows7上进行测试

将网卡DNS指定到DNS服务器


在浏览器中输入www.linux.com测试


在浏览器中输入ftp.linux.com进行测试


在浏览器中输入game.linux.com测试


打开cmd发现反解也可以使用了

在图中我们可以看出DNS反向解析已经可以正常使用

下面我们需要搭建从服务器了,从服务器的搭建也非常简单只需要更改一下配置文件即可
[iyunv@localhost ~]# yum -y install bind-libs bind-utils bind-chroot bind

更改从服务器的主配置文件
[iyunv@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”,而且还需要指定主服务器地址

[iyunv@ns2 ~]# service named restart

[iyunv@ns2 ~]# ls /var/named/slaves/
25.168.192.in-addr.arpa  linux.com  
注:从服务器的数据库默认在/var/named/slaves/


[iyunv@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



[iyunv@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.

接下来我们添加一条新的解析记录试验一下主从能否自动同步
[iyunv@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

[iyunv@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数据库
[iyunv@localhost ~]# service named reload
重新载入named:                                             [确定]
[iyunv@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

好啦,实验做完了,已经同步到从服务器了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343179-1-1.html 上篇帖子: linux下忘记密码的简单找回方法 下篇帖子: Linux进程与性能监控
累计签到:15 天
连续签到:1 天
发表于 2017-2-21 14:34:09 | 显示全部楼层
非常好的帖子 ,感谢分享

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表