阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DNS服务器搭建笔记

127次阅读
没有评论

共计 14972 个字符,预计需要花费 38 分钟才能阅读完成。

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

————————————– 分割线 ————————————–

推荐阅读:

使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm

BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm

域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm

Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm

CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm

————————————– 分割线 ————————————–

 环境:
    系统版本: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

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103657p2.htm

三、配置 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 在 Linux 服务器上的服务名是 named,而 named 服务依赖软件 bind。

————————————– 分割线 ————————————–

推荐阅读:

使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm

BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm

域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm

Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm

CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm

————————————– 分割线 ————————————–

 环境:
    系统版本: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

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103657p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计14972字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中