DNS在linux服务器上的服务名是named,而named服务依赖软件bind。

环境:

    系统版本:VBOX虚拟机centos6.0。

    本机内网IP 192.168.2.198。

    

一、安装软件bind。

    1.显示bind相关的软件包。

        [root@localhost ~]# yum list bind*

        bind.i686 

        bind-chroot.i686

        bind-devel.i686

        bind-dyndb-ldap.i686

        bind-libs.i686

        bind-sdb.i686

        bind-utils.i686 


    2.安装必要包。主要安装三个软件包,其他的目前没有必要安装。bind安装成功后服务器是named。

        [root@service ~]# yum install bind bind-libs bind-utils -y

    3.查看bind安装产生的文件。主要用到两个文件。如下:

        [root@localhost ~]# rpm -ql bind | less

        /etc/NetworkManager/dispatcher.d/13-named

        /etc/logrotate.d/named

        /etc/named

        /etc/named.conf----------------主配置文件

        /etc/named.iscdlv.key

        /etc/named.rfc1912.zones-------zone配置文件,include到主配置文件

        /etc/named.root.key

        /etc/portreserve/named

        /etc/rc.d/init.d/named

        /etc/rndc.conf

        /etc/rndc.key

        /etc/sysconfig/named

        ....很多行....


二、配置DNS缓存服务器

    1.打开/etc/named.conf文件配置修改options配置块内以下选项:

        listen-on port 53 { 127.0.0.1; }; 改为 listen-on port 53 { 127.0.0.1; 192.168.2.198;};  //192.168.2.198是我的内网IP,根据自己情况修改。

        #listen-on-v6 port 53 { ::1; }; //注释掉,如果不用的话。

        allow-query     { localhost; }; 改为 allow-query     { any; };


        保存退出;

    2.打开配置/etc/named.rfc1912.zones, 即主配置文件named.conf底部include进来的zone文件。

        注释掉bind自动生成的除以下zone块,也就是除了以下两块意外的都注释掉:

        zone "localhost" IN { //正向解析配置

                type master;

                file "named.localhost";  //文件相对于/var/named/目录

                allow-update { none; };

        };

        zone "1.0.0.127.in-addr.arpa" IN { //反向解析配置

                type master;

                file "named.loopback";  //文件相对于/var/named/目录

                allow-update { none; };

        };


    3.配置正向解析文件

    [root@localhost named]# vim /var/named/named.localhost

        填写以下内容:

        $TTL 1D

        @       IN SOA  localhost. root.localhost. (

                    201406251006    ; serial    //序列号,随便写我一般写成单签日期时间

                    1D      ; refresh           //命令slave多久进行一次主动更新。

                    1H      ; retry             //如果到了refresh的时间,但是slave却无法连接master时,那么多久之后,slave会再次的主动尝试与主机连线。

                    1W      ; expire            //如果slave一直无法与master连接上,那么经过多久的时间后,则命令slave不要在连接master了。

                    3H )    ; minimum           //没有指定生存期的数据,可以保存在数据库中的时间,及TTL

        IN NS   localhost.

        IN A    127.0.0.1


    4.配置反向解析文件,实际上就是把正向解析的配置文件复制一份,然后把里面的A记录反过来写“A”写成“PTR”

        [root@localhost named]# vim /var/named/named.loopback

    填写如下内容:

        $TTL 1D

        @       IN SOA  localhost. root.localhost. (

                                        201406251006    ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        IN NS   localhost.

        IN PTR  localhost.


    5.修改named的相关文件属组为named

        [root@localhost named]# chown :named /var/named/named*

    6.检查配置文件,相关命令named-checkconf、named-checkzone

        [root@localhost named]# named-checkconf [/etc/named.conf] //检查主配置文件,如果没有输出错误信息表示正常。

        [root@localhost named]# named-checkzone "localhost" /var/named/named.localhost //检查正向解析配置

        zone localhost/IN: loaded serial 20140625

        OK

        [root@localhost named]# named-checkzone "1.0.0.127.in-addr.arpa" /var/named/named.loopback  //检查反向解析配置

        zone 1.0.0.127.in-addr.arpa/IN: loaded serial 20140625

        OK


    7.启动named服务

        [root@localhost named]# service named start //或者用/etc/init.d/named start启动

        启动 named:                                               [确定]

        [root@localhost named]# service named status //查看服务运行状态

        version: 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1

        CPUs found: 1

        worker threads: 1

        number of zones: 18

        debug level: 0

        xfers running: 0

        xfers deferred: 0

        soa queries in progress: 0

        query logging is OFF

        recursive clients: 0/0/1000

        tcp clients: 0/100

        server is up and running

        named (pid  2144) 正在运行...


    8.测试NDS

        a.使用命令dig测试

            [root@localhost named]# dig -t A localhost @127.0.0.1 //后面@127.0.0.1表示用本机解析,如果不想每次都写修改/etc/resolv.conf文件,添加nameserver 127.0.0.1

            ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -t A localhost @127.0.0.1

            ;; global options: +cmd

            ;; Got answer:

            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58945

            ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

            ;; QUESTION SECTION:

            ;localhost. IN
A

            ;; ANSWER SECTION:

            localhost. 86400
IN A
127.0.0.1

            ;; AUTHORITY SECTION:

            localhost. 86400
IN NS
localhost.

            ;; Query time: 3 msec

            ;; SERVER: 127.0.0.1#53(127.0.0.1)

            ;; WHEN: Wed Jun 25 10:25:28 2014

            ;; MSG SIZE  rcvd: 57

            

            [root@localhost named]# dig -t NS localhost @127.0.0.1

            ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -t NS localhost @127.0.0.1

            ;; global options: +cmd

            ;; Got answer:

            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36123

            ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

            ;; QUESTION SECTION:

            ;localhost. IN
NS

            ;; ANSWER SECTION:

            localhost. 86400
IN NS
localhost.

            ;; ADDITIONAL SECTION:

            localhost. 86400
IN A
127.0.0.1

            ;; Query time: 2 msec

            ;; SERVER: 127.0.0.1#53(127.0.0.1)

            ;; WHEN: Wed Jun 25 10:29:55 2014

            ;; MSG SIZE  rcvd: 57


        

        b.使用nslookup命令测试

            [root@localhost named]# nslookup

            > server 127.0.0.1

            Default server: 127.0.0.1

            Address: 127.0.0.1#53

            > set q=A

            > localhost

            Server: 127.0.0.1

            Address: 127.0.0.1#53

            Name: localhost

            Address: 127.0.0.1

            > set q=NS

            > localhost

            Server: 127.0.0.1

            Address: 127.0.0.1#53

            localhost nameserver = localhost.

            >exit


            

三、配置DNS主域名解析服务器,假设域名是itxingzhe.com

    1.打开编辑/etc/named.rfc1912.zones文件,添加如下内容。

        [root@localhost etc]# vim /etc/named.rfc1912.zones

        zone "itxingzhe.com" IN { //正向解析

                type master;

                file "named.itxingzhe.com.zone";

                allow-update { none; };

        };

        zone "2.168.192.in-addr.arpa" IN { //反向解析,注意IP写法是反过来的网段。

                type master;

                file "named.2.168.192.arpa";

                allow-update { none; };

        };


    2.到/var/named目录下创建正/反向解析配置文件。

        a.正向解析配置

            [root@localhost named]# vim /var/named/named.itxingzhe.com.zone

            $TTL 1D

            @       IN SOA  ns1.itxingzhe.com. root.itxingzhe.com. (

                                                    20140625        ; serial

                                                    1D      ; refresh

                                                    1H      ; retry

                                                    1W      ; expire

                                                    3H )    ; minimum

                                    IN NS   ns1.itxingzhe.com.

                                    IN A    192.168.2.198

            www.itxingzhe.com.      IN A    192.168.2.198

            ftp.itxingzhe.com.      IN A    192.168.2.198

            //其他的域名一次类推


        b.反向解析配置

            [root@localhost named]# vim /var/named/named.2.168.192.arpa

            $TTL 1D

            @       IN SOA  ns1.itxingzhe.com. root.itxingzhe.com. (

                                                    20140625        ; serial

                                                    1D      ; refresh

                                                    1H      ; retry

                                                    1W      ; expire

                                                    3H )    ; minimum

                                    IN NS   ns1.itxingzhe.com.

            198                     IN PTR  ns1.itxingzhe.com.

            198                     IN PTR  www.itxingzhe.com.


        c.修改配置文件属组为named

            [root@localhost named]# chown :named /var/named/named.2.168.192.arpa /var/named/named.itxingzhe.com.zone

            //这样也可以

            [root@localhost named]# chown :named /var/named/named*


    3.检查配置文件

        参考以上“二、6.检查配置文件”。

        [root@localhost named]# named-checkconf

        [root@localhost named]# named-checkzone "itxingzhe.com" /var/named/named.itxingzhe.com.zone 

        zone itxingzhe.com/IN: loaded serial 20140625

        OK

        [root@localhost named]# named-checkzone "named.2.168.192.arpa" /var/named/named.2.168.192.arpa 

        zone named.2.168.192.arpa/IN: loaded serial 20140625

        OK


    4.重启named服务或重新加载配置文件

        [root@localhost named]# service named restart

        停止 named:.                                              [确定]

        启动 named:                                               [确定]

        或

        [root@localhost named]# /etc/init.d/named reload

        重新载入named:          
                                  [确定]

    5.测试DNS

        参考以上“二、8.测试DNS”。

        [root@localhost named]# dig -t A www.itxingzhe.com @192.168.2.198//测试A记录

        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -t A www.itxingzhe.com

        ;; global options: +cmd

        ;; Got answer:

        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62759

        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

        ;; QUESTION SECTION:

        ;www.itxingzhe.com. IN
A

        ;; ANSWER SECTION:

        www.itxingzhe.com. 86400
IN A
192.168.2.198

        ;; AUTHORITY SECTION:

        itxingzhe.com. 86400
IN NS
ns1.itxingzhe.com.

        ;; ADDITIONAL SECTION:

        ns1.itxingzhe.com. 86400
IN A
192.168.2.198

        ;; Query time: 3 msec

        ;; SERVER: 192.168.2.198#53(192.168.2.198)

        ;; WHEN: Wed Jun 25 11:24:20 2014

        ;; MSG SIZE  rcvd: 85

        

        [root@localhost named]# dig -t NS itxingzhe.com @192.168.2.198 //测试NS记录,注意这里的域名是不带www的

        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -t NS itxingzhe.com @192.168.2.198

        ;; global options: +cmd

        ;; Got answer:

        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35904

        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

        ;; QUESTION SECTION:

        ;itxingzhe.com. IN
NS

        ;; ANSWER SECTION:

        itxingzhe.com. 86400
IN NS
ns1.itxingzhe.com.

        ;; ADDITIONAL SECTION:

        ns1.itxingzhe.com. 86400
IN A
192.168.2.198

        ;; Query time: 3 msec

        ;; SERVER: 192.168.2.198#53(192.168.2.198)

        ;; WHEN: Wed Jun 25 11:25:01 2014

        ;; MSG SIZE  rcvd: 65

        

        [root@localhost named]# dig -x 192.168.2.198 //反向解析结果

        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -x 192.168.2.198

        ;; global options: +cmd

        ;; Got answer:

        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65411

        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

        ;; QUESTION SECTION:

        ;198.2.168.192.in-addr.arpa. IN
PTR

        ;; ANSWER SECTION:

        198.2.168.192.in-addr.arpa. 86400 IN
PTR ns1.itxingzhe.com.

        198.2.168.192.in-addr.arpa. 86400 IN
PTR www.itxingzhe.com.

        ;; AUTHORITY SECTION:

        2.168.192.in-addr.arpa. 86400
IN NS
ns1.itxingzhe.com.

        ;; ADDITIONAL SECTION:

        ns1.itxingzhe.com. 86400
IN A
192.168.2.198

        ;; Query time: 5 msec

        ;; SERVER: 192.168.2.198#53(192.168.2.198)

        ;; WHEN: Wed Jun 25 11:26:12 2014

        ;; MSG SIZE  rcvd: 123


        

四、DNS从服务器配置,假设从服务器IP是192.168.2.199

    1.安装bind软件。

    2.配置localhost的zone配置(或者直接copy主DNS服务器上的localhost配置文件)。参考(二、配置DNS缓存服务器);

    3.配置vim /etc/named.rfc1912.zones添加如下内容:

        zone "itxingzhe.com" IN { //正向解析从服务器

            type slave;

            master {192.168.2.198;};

            file "slaves/named.itxingzhe.com.zone"; 

        };

        zone "2.168.192.in-addr-arpa" IN { //反向解析从服务器

            type slave;

            master {192.168.2.198;};

            file "slaves/named.2.168.192.arpa";

        };


        配置文件会自动从主DNS服务器同步过来,不用手动配置。

    4.重启named服务;

    5.ll slaves/查看数据是否同步过来。

    

    注意:selinux会影响从服务器传输,请先关闭selinux。命令setenforce 0

DNS服务器搭建笔记的更多相关文章

  1. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  2. DNS服务器搭建(主、从、缓)

    主dns服务器搭建 在本机上搭建一个管理hngd.com域名的域名服务器1. 确保安装好以下bind域名服务器 [root@主人 ~]# rpm -qa |grep ^bindbind-chroot- ...

  3. 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)

    点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...

  4. 架构师成长之路6.5 DNS服务器搭建(添加记录、负载均衡、DNS视图)

    点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图)  部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 ...

  5. 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS)  部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...

  6. 架构师成长之路6.3 DNS服务器搭建(部署单台DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署单台DNS) 1.安装bind yum -y install bind-utils bind bind-devel bind-chr ...

  7. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  8. DNS服务器搭建与配置

    DNS服务器搭建与配置目录 1.DNS查询方式 2.DNS服务器类型 3.DNS主要配置文件组 4.name.conf文件配置介绍 5.DNS的资源记录格式 6.DNS服务器和客户端配置 7.简单搭建 ...

  9. Linux:DNS服务器搭建

    DNS简介 DNS(Domain Name System)域名系统: 是一种采用客户端/服务器机制,负责实现计算机名称与IP地址转换的系统.DNS作为一种重要的网络服务,既是国际互联网工作的基础,同时 ...

随机推荐

  1. python3 使用装饰器,及函数作为参数

    #装饰import typesdef shucai(n): print('蔬菜价格7') if type(n)==types.FunctionType: return n()+7 return n+7 ...

  2. [CSP-S模拟测试]:组合(欧拉路)

    题目传送门(内部题119) 输入格式 第一行,三个整数$T,M,N$. 接下来的$N$行,每行两个整数$u_i,v_i$($i$从$1$开始编号).允许$u_i=v_i$,也允许同样的简单词多次出现. ...

  3. oracle判断一个字段为空

    比如 insert into table a (a1,b1)values("a1",''); 对于这种情况,因为表里存的是'',其实是没有内容的,要查询这个字段,不能直接使用 se ...

  4. shell脚本之awk、sed、grep案例

    1.BEGIN END用法user        DIR,内容显示用户名称.用户家目录   $NF为awk的内置变量,表示最后一行,$(NF-1)就表示倒数第二行,最后打印页脚 页眉显示 cat /e ...

  5. SpringMvc中@PathVariable注解简单的用法

    @PathVariable /** * @PathVariable 可以来映射 URL 中的占位符到目标方法的参数中. * @param id * @return */ jsp页面请求 <a h ...

  6. shell初级-----结构化命令

    if-then语句 bash shell的if语句会执行if后面的那个命令,如果该命令的退出码状态为0会执行then部分的命令,如果是其他值不会执行. 格式如下: if command then co ...

  7. wordpress 更新时需要FTP 服务器账户密码的解决方法

    首先进入 apache下的wordpress 的目录下 (这是apache服务器默认安装的路径) cd /var/www 接着,给html整个文件夹进行赋值权限,如果不赋予权限 更新的时候会报权限不足 ...

  8. 代码实现:输入三个整数x,y,z,请把这三个数由小到大输出。

    import java.util.Arrays; import java.util.Scanner; //输入三个整数x,y,z,请把这三个数由小到大输出. public class Test { p ...

  9. 常用 tcpdump 抓包方式

    目录 文章目录 目录 tcpdump 指令 关键字 常用指令选项 常规操作示例 过滤主机 过滤端口 过滤网络(网段) 过滤协议 复杂的逻辑表达式过滤条件 参考资料 tcpdump 指令 tcpdump ...

  10. 如何在Ubuntu / CentOS 6.x上安装Bugzilla 4.4

    这里,我们将展示如何在一台Ubuntu 14.04或CentOS 6.5/7上安装Bugzilla.Bugzilla是一款基于web,用来记录跟踪缺陷数据库的bug跟踪软件,它同时是一款免费及开源软件 ...