CentOS笔记——配置DNS服务器 前话 配置实例 感想

CentOS笔记——配置DNS服务器
前话
配置实例
感想

咳咳,这次Linux系统的DNS服务器搭建我不得不记下来。,这错误真的太蛋疼了,我整整弄了两天才解决问题(抱歉我很蠢)。

也许有人会和我犯同样的错误,给大家分享一下经验。

首先总结一下知识点:

  • DNS文件配置(named.conf)

  • 正向解析文件配置(xxx.zone)

  • 反向解析文件配置(xxx.rev)

  • 配置文件检查

  • Named服务启动

  • 务必记得关闭系统防火墙!!!我就死在两天了!!!

下面开始配置实例。


配置实例

为了方便下面的理解,我这里列出参与测试的虚拟机

系统 角色 域名 IP
CentOS7 DNS服务器 192.168.217.130
Window Server 2003 网站服务器 pwc.cn 192.168.217.101
Window Server 2003 DNS客户机 192.168.217.131

第一步,安装DNS服务

命令行输入以下命令:

yum -y install bind-chroot.x86_64

回车键后yum会自动下载安装服务以及其依赖文件,等待下载完成,安装完成示例如下:

CentOS笔记——配置DNS服务器
前话
配置实例
感想

为了方便后面测试,我们需要安装其余两个命令行工具,分别输入以下命令

yum -y install net-tools.x86_64

yum -y install bind-utils.x86_64

到这里,我们启动一下DNS服务试试,输入以下命令:

service named start

CentOS笔记——配置DNS服务器
前话
配置实例
感想

启动成功,接着我们关闭DNS服务。

到这里,DNS服务安装完成

第二步,配置DNS文件

首先,我们找到/etc/named.conf文件并进入其所在目录,输入命令行 vi named.conf进行查看编辑,named.conf文件内容如下 :

options { //服务器的全局配置选项及一些默认设置
        listen-on port 53 { 127.0.0.1; }; //监听IP和端口,此处监听本地IP
        listen-on-v6 port 53 { ::1; }; //对ip6支持
        directory       "/var/named";  //区域文件存储目录
        dump-file       "/var/named/data/cache_dump.db"; //dump cach的目录directory
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        forwarders     { 1.1.1.1; 2.2.2.2; }; // 如果域名服务器无法解析时,将请求交由1.1.1.1;2.2.2.2来解析
        allow-query    { localhost; };   //指定允许进行查询的主机
        allow-transfer { none; }; //指定允许接受区域传送请求的主机,说明白一点就是辅dns定义,比如辅dns的ip是3.3.3.3,那么可以这样定义{ 3.3.3.3; },要不然主辅dns不能同步
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;

        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";

         pid-file        "/var/run/named/named.pid"; //存着named的pid
         session-keyfile-direction "/run/named/session.key";
};

logging { //指定服务器日志记录的内容和日志信息来源
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };

zone "." IN {   //根域名区域,下面指定file文件中包含全球13个根域名服务器地址
        type hint;
        file "name.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

要添加自己的解析域,只需在内容后面添加zone即可。
另外,我们要注意zone内的type,该type值有三种,如下:

  • hint,存根区域
  • master,主要区域
  • slave,辅助区域

下面,我们对其进行修改,加上自己的域名解析,修改后内容如下(只展示需修改和添加的部分):

options { //服务器的全局配置选项及一些默认设置
        listen-on port 53 { any; };  //修改为any,表示监听本机所有IP
        allow-query    { any; };    //修改为any,表示接收所有DNS解析请求
};

zone "." IN {   //根域名区域,下面指定file文件中包含全球13个根域名服务器地址
        type hint;
        file "name.ca";
};

//下面我们自己添加解析域

zone "cn" IN {  //正向解析
        type master;
        file "cn.zone";
};

zone "217.168.192.in-addr.arpa" IN {  //反向解析,注意
        type master;
        file "cn.rev";
};


include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

这时,我们命令行键入如下命令进行DNS配置文件检查:

named-checkconf /etc/named.conf

如果回车键后没有错误提示,表示改配置没有错误

到这里,我们就配置好了DNS配置文件。但是还没结束,下面我们要创建新添加的两个zone区域文件,分别是cn.zone正向解析文件,和cn.rev反向解析文件

第三步,正向解析文件配置

首先,我们进入文件夹 /var/named,然后我们创建一个名为 cn.zone 的文件,键入如下命令:

vi cn.zone

进入编辑模式,添加如下内容:

$TTL 3H          //M/H/D/W分别代表分/时/天/周,纯数字表示秒
@           IN  SOA luoyefengqiao.  root. (
                            2016011701;serial 
                            1D; refresh
                            1H; retry
                            1W; expire
                            3H ) ; minimum

;  ‘;’作为注释的开头

;  Zone NS records
;

@                       NS  luoyefengqiao.

;
;  Zone records
;

pwc                     A       192.168.217.101
www.pwc                 CNAME   pwc.cn.

保存推出后,我们键入如下命令对其配置进行检查:

named-checkzone cn /var/named/cn.zone

如果返回 ok 表示没有错误。

到这里,我们的正向解析配置文件基本完成。

第四步,反向解析文件配置

我们在同样目录创建一个名为 cn.rev 的文件,键入如下命令:

vi cn.rev

进入编辑模式,添加如下内容:

$TTL 3H
@           IN  SOA luoyefengqiao.  root. (
                            2016011701;serial 
                            1D; refresh
                            1H; retry
                            1W; expire
                            3H ) ; minimum

@                       NS  luoyefengqiao.

101                     PTR pwc.cn.

保存退出,然后我们同样键入检查命令:

named-checkzone cn /var/named/cn.rev

输出 ok 表示没有错误

到这里,反向解析文件配置完成。

第五步,启动DNS服务

  1. 我们需要修改 /etc/resolv.con 文件,该实例添加内容 nameserver 192.168.217.130
    CentOS笔记——配置DNS服务器
前话
配置实例
感想

  2. 我们输入命令 service named start
    CentOS笔记——配置DNS服务器
前话
配置实例
感想
    输出了如上内容,好像成功了。
    接着我们试试 nslookup pwc.cn,然而解析不出pwc.cn的IP。

  3. 我们输入命令 service named status -l ,然后我们可以看到如下信息:
    CentOS笔记——配置DNS服务器
前话
配置实例
感想
    看到红色文字,原来是正向反向解析文件访问受限。
    所以我们输入命令 chmod -R 777 cn.* 对两个文件赋予最大权限。
    接着我们输入命令 service named restart 重启DNS服务,然后再输入 service named status -l 检查状态。
    CentOS笔记——配置DNS服务器
前话
配置实例
感想
    输出如上,说明DNS服务启动基本成功。

  4. 我们在DNS服务器中输入命令 nslookup pwc.cnnslookup www.pwc.cn ,DNS服务器本机解析基本没问题。
    CentOS笔记——配置DNS服务器
前话
配置实例
感想
    然而,我们在DNS客户机dos命令窗口输入 nslookup pwc.cn 或者 nslookup www.pwc.cn 却请求DNS解析失败
    CentOS笔记——配置DNS服务器
前话
配置实例
感想

解析失败!!!为啥!!!
这个问题困扰了我两天,客户机 ping DNS服务器可以连通啊,为啥客户机对DNS服务器请求解析错误???
DNS服务器检查了没有iptables防火墙服务啊,selinux服务也关闭了啊,为啥为啥为啥???

最后一步,关闭firewalld防火墙

最后找了好久,终于找到真理,centos7的默认是不带iptables防火墙的,它带的是firewalld防火墙服务。所以,输入以下命令:

service firewalld stop

要永远关闭它自行谷歌百度:)

然后客户机dos输入 nslookup www.pwc.cn 或者 nslookup pwc.cn 或者浏览器输入都可以成功解析。

CentOS笔记——配置DNS服务器
前话
配置实例
感想

感想

最后能够解决问题感觉真好。