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

RedHat Linux DNS配置指南

158次阅读
没有评论

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

在 Oracle 11g 的 RAC 中增加了 SCAN IP, 而使用 SCAN IP 的一种方式就是使用 DNS,这里介绍在 RedHat Linux 5.4 中 DNS 的详细配置操作。
在配置 DNS 之前修改主机名
Redhat Linux 5.4 DNS 配置操作
在配置 DNS 之前修改主机名
[root@beiku1 etc]# hostname beiku1.linuxidc.com
[root@beiku1 etc]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1              beiku1.linuxidc.com localhost
::1            localhost6.localdomain6 localhost6
10.138.130.161 beiku1

[root@beiku1 etc]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=beiku1.linuxidc.com
GATEWAY=10.138.130.254

一. 安装软件包
Redhat linux 5.4 下的 dns 服务所有的 bind 包如下:
bind-9.3.6-4.P1.el5
bind-libbind-devel-9.3.6-4.P1.el5
kdebindings-devel-3.5.4-6.el5
kdebindings-3.5.4-6.el5
bind-devel-9.3.6-4.P1.el5
bind-utils-9.3.6-4.P1.el5
bind-chroot-9.3.6-4.P1.el5
ypbind-1.19-12.el5
system-config-bind-4.0.3-4.el5
bind-libs-9.3.6-4.P1.el5
bind-sdb-9.3.6-4.P1.el5

使用 rpm –qa | grep bind 来检查系统是否已经安装了以上软件包:
[root@beiku1 soft]# rpm -qa | grep bind
bind-chroot-9.3.6-4.P1.el5
kdebindings-3.5.4-6.el5
ypbind-1.19-12.el5
bind-libs-9.3.6-4.P1.el5
bind-9.3.6-4.P1.el5
system-config-bind-4.0.3-4.el5
bind-utils-9.3.6-4.P1.el5

对于没有安装的软件包执行以下命令进行安装
[root@beiku1 soft]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
warning: bind-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
        package bind-9.3.6-4.P1.el5.i386 is already installed
[root@beiku1 soft]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:caching-nameserver    ########################################### [100%]

[root@beiku1 soft]# rpm -ivh install kdebindings-devel-3.5.4-6.el5.i386.rpm
error: open of install failed: No such file or directory
warning: kdebindings-devel-3.5.4-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
[root@beiku1 soft]# rpm -ivh kdebindings-devel-3.5.4-6.el5.i386.rpm
warning: kdebindings-devel-3.5.4-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:kdebindings-devel      ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-sdb-9.3.6-4.P1.el5.i386.rpm
warning: bind-sdb-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-sdb              ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-libbind-devel    ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-devel            ########################################### [100%]

 

还要手动安装一个软件包 caching-nameserver-9.3.6-4.P1.el5 , 不安装这个软件包 named 服务不能启动, 会报错误信息 例如:
[root@beiku1 ~]# service named start
Locating /var/named/chroot//etc/named.conf failed:
[FAILED]

[root@beiku1 soft]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:caching-nameserver    ########################################### [100%]

[root@beiku1 soft]# service named start
Starting named: [OK]

二. 复制模板文件
 由于安装了 chroot 环境,所以我们的 DNS 主配置文件应该在 /var/named/chroot/etc 目录下面
[root@beiku1 soft]# cd /var/named/chroot/
[root@beiku1 chroot]# ls
dev  etc  proc  var
[root@beiku1 chroot]# cd etc
[root@beiku1 etc]# ls
localtime  named.caching-nameserver.conf  named.rfc1912.zones  rndc.key
[root@beiku1 etc]#

named.caching-nameserver.conf 文件内容如下:
[root@beiku1 etc]# cat named.caching-nameserver.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 {127.0.0.1;};
        listen-on-v6 port 53 {::1;};
        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”;

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query    {localhost;};
        allow-query-cache {localhost;};
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      {localhost;};
        match-destinations {localhost;};
        recursion yes;
        include “/etc/named.rfc1912.zones”;
};

这个文件告诉我们不要直接的编辑这个文件,去创建一个 named.conf 文件,然后编辑 named.conf 文件,当有了 named.conf,将不在读取这个文件。现在就将 named.caching-nameserver.conf 文件复制成 named.conf 文件。
[root@beiku1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@beiku1 etc]# ls
localtime  named.caching-nameserver.conf  named.conf  named.rfc1912.zones  rndc.key

可以看到,named.conf 文件就被创建成功了。最好在 copy 的时候加上 - P 的参数,保留权限。否则启动服务的时候会报权限拒绝的。

三. 编辑 named.conf 文件
[root@beiku1 etc]# vi named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 {any;};
        listen-on-v6 port 53 {::1;};
        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”;

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query    {10.138.130.0/24;};
        allow-query-cache {any;};
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      {10.138.130.0/24;};
        match-destinations {any;};
        recursion yes;
        include “/etc/named.rfc1912.zones”;
};

解释这些语法参数的意思
options
代表全局配置
listen-on port 53 {any;};
 DNS 服务监听在所有接口
listen-on-v6 port 53 {::1;};
 ipv6 监听在本地回环接口
directory “/var/named”;
 zone 文件的存放目录,指的是 chroot 环境下面的 /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 {10.138.130.0/24};
允许查询的客户端,现在修改成本地网段,
allow-query-cache {any;};
允许那些客户端来查询缓存,any 表示允许任何人。
logging {
 channel default_debug {
 file “data/named.run”;
 severity dynamic;
 };
定义日志的存放位置在 /var/named/chroot/var/named/data/ 目录下面
};
view localhost_resolver {
 match-clients {10.138.130.0/24;};
 match-destinations {any;};
 recursion yes;
 include “/etc/named.rfc1912.zones”;
 };

这里是定义视图的功能,
Match-clients 是指匹配的客户端
Match-destination 是指匹配的目标
 到这里,named.conf 文件就已经配置成功了,这个视图最后写 include “/etc/named.rfc1912.zones”; 接下面,就去配置这个文件。当然,我们可以匹配不同的客户端来创建不同的视图。

四. 定义 zone 文件
[root@beiku1 etc]# vi  named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone “.” IN {
        type hint;
        file “named.ca”;
};

zone “linuxidc.com” IN {
        type master;
        file “linuxidc.zone”;
        allow-update {none;};
};

zone “130.138.10.in-addr.arpa” IN {
        type master;
        file “named.linuxidc”;
        allow-update {none;};
};

解释这些语法参数的意思
Zone“.”根区域
Zone“linuxidc.com”定义正向解析的区域
zone “130.138.10.in-addr.arpa” 定义反向解析的区域
IN Internet 记录
type hint 根区域的类型为 hint
 type master 区域的类型为主要的
file“named.ca”; 区域文件是 named,ca
 file “linuxidc.zone”; 指定正向解析的区域文件是 linuxidc.zone
 file “named.linuxidc”; 指定反向解析的区域文件是 named,linuxidc
 allow-update {none;}; 默认情况下,是否允许客户端自动更新
 在 named.ca 文件中就定义了全球的 13 台根服务器,
 在 linuxidc.com 文件中就定义 DNS 的正向解析数据库
 在 named.linuxidc 文件中就定义 DNS 反向解析的数据库
 定义 zone 文件就完成了,下面来编辑 DNS 的数据库文件。

五. 使用模板文件来创建数据库文件
[root@beiku1 etc]# cd /var/named/chroot/var/named/
[root@beiku1 named]# ls
data  localdomain.zone  localhost.zone  named.broadcast  named.ca  named.ip6.local  named.local  named.zero  slaves

可以看到,在 chroot 环境下面的 /var/named/ 有很多模板文件。Named.ca 就是根区域的数据库文件,我们将 localhost.zone 复制成 linuxidc.zone,这个是正向解析的数据库文件,将 named.local 复制成 named.linuxidc,这个是反向解析的数据库文件。数据库文件一定要和 /etc/named.rfc1912.zones 这个文件里面的匹配。
[root@beiku1 named]# cp -p localhost.zone linuxidc.zone
[root@beiku1 named]# cp -p named.local named.linuxidc
[root@beiku1 named]# ls
data              named.broadcast  named.local  linuxidc.zone
localdomain.zone  named.ca        named.linuxidc  slaves
localhost.zone    named.ip6.local  named.zero

复制成功,正向解析和反向解析的数据库文件就创建完成了。

六. 定义数据库文件
1. 定义正向解析数据库文件
[root@beiku1 named]# vi linuxidc.zone
$TTL    86400
@              IN SOA  beiku1.linuxidc.com.      root.linuxidc.com. (
                                        44              ; serial (d. adams)
                                        3H              ; refresh
                                        15M              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

@              IN NS          beiku1.linuxidc.com.

beikuscan      IN A            10.138.130.167
beikuscan      IN A            10.138.130.168
beikuscan      IN A            10.138.130.169
beiku2        IN A            10.138.130.162
beiku1        IN A            10.138.130.161

关于正向解析数据库中每一行参数的解释
$TTL 86400
最小的存活的时间是 86400S(24H)

@ IN SOA @ root (
这是一笔 SOA 记录,只允许存在一个 SOA 记录
@是代表要解析的这个域本身()
IN 是 Internet 记录。
SOA 是初始授权记录,指定网络中第一台 DNS Server。
root 是指管理员的邮箱。

44 ; serial (d. adams)
 3H ; refresh
 15M ; retry
 1W ; expiry
 1D ) ; minimum

这些部分主要是用来主 DNS 和辅助 DNS 做同步用的
44 序列号,当主 DNS 数据改变时,这个序列号就要被增加 1,而辅助 DNS 通过序列号来和主 DNS 同步。
3H 刷新,主 DNS 和辅助 DNS 每隔三小时同步一次。
15M 重试,3H 之内,没有同步,每隔 15M 在尝试同步
1W 过期,1W 之内,还没有同步,就不同步了
1D 生存期,没有这条记录,缓存的时间。
@ IN NS beiku1.linuxidc.com.

这是一笔 NS 记录,指定 nameserver 为 beiku1.linuxidc.com 至少要有一笔 NS 记录

beiku1 IN A 10.138.130.161
指定 beiku1 的 ip 地址为 10.138.130.161

beikuscan IN A 10.138.130.167
指定 beikuscan 的 ip 地址为 10.138.130.167

beikuscan IN A 10.138.130.168
指定 beikuscan 的 ip 地址为 10.138.130.168

beikuscan IN A 10.138.130.169
指定 beikuscan 的 ip 地址为 10.138.130.169
 beiku2 IN A 10.138.130.162
指定 beiku2 的 ip 地址为 10.138.130.162

正向解析的数据库就完成了,下面定义反向解析的数据库。

2. 定义反向解析数据库
[root@beiku1 named]# vi named.linuxidc
$TTL    86400
@      IN      SOA    beiku1.linuxidc.com. root.linuxidc.com.  (
                                      1997022702 ; Serial
                                      120      ; Refresh
                                      120      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
@        IN      NS    beiku1.linuxidc.com.

167    IN      PTR    beikuscan.linuxidc.com.
168    IN      PTR    beikuscan.linuxidc.com.
169    IN      PTR    beikuscan.linuxidc.com.
162    IN      PTR    beiku2.linuxidc.com.
161    IN      PTR    beiku1.linuxidc.com.

其实反向解析的数据库文件的配置和正向解析的差不多,只需要将 ip 地址和域名换一个位置就可以了,把 A 换成 PTR 就 ok 了。
DNS 的基本配置就完成了,在来看看 DNS 是否能够正常工作。
 我们先重启一下 DNS 服务
[root@beiku1 etc]# service named restart
Stopping named: [OK]
Starting named: [OK]

可以看到,DNS 服务启动成功了。
 在查询以前,要在客户端来指定 DNS Server,在 /etc/resolv.conf 这个文件中指定。
[root@beiku1 etc]# vi /etc/resolv.conf
search linuxidc.com
nameserver      10.138.130.161

[root@beiku1 etc]# service named restart
Stopping named: [OK]
Starting named: [OK]

参数及意义:
nameserver 表明 dns 服务器的 ip 地址,可以有很多行的 nameserver,每一个带一个 ip 地址。
 在查询时就按 nameserver 在本文件中的顺序进行,且只有当第一个 nameserver 没有反应时才查询下面的 nameserver.
 domain 声明主机的域名。很多程序用到它,如邮件系统; 当为没有域名的主机进行 dns 查询时,也要用到。如果没有域名,主机名将被使,用删除所有在第一个点 (.) 前面的内容。
search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由 search 声明的域中分别查找。
domain 和 search 不能共存; 如果同时存在,后面出现的将会被使用。
sortlist 允许将得到域名结果进行特定的排序。它的参数为网络 / 掩码对,允许任意的排列顺序。

再来使用 nslookup 工具来查询一下
[root@beiku1 named]# nslookup beiku1.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

[root@beiku1 named]# nslookup beiku2.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku2.linuxidc.com
Address: 10.138.130.162

[root@beiku1 named]# nslookup beikuscan.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beikuscan.linuxidc.com
Address: 10.138.130.169
Name:  beikuscan.linuxidc.com
Address: 10.138.130.167
Name:  beikuscan.linuxidc.com
Address: 10.138.130.168

[root@beiku1 named]# nslookup beiku1
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

[root@beiku1 named]# nslookup beiku2
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku2.linuxidc.com
Address: 10.138.130.162

[root@beiku1 named]# nslookup beikuscan
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beikuscan.linuxidc.com
Address: 10.138.130.168
Name:  beikuscan.linuxidc.com
Address: 10.138.130.169
Name:  beikuscan.linuxidc.com
Address: 10.138.130.167

[root@beiku1 named]# nslookup 10.138.130.161
Server:        10.138.130.161
Address:        10.138.130.161#53

161.130.138.10.in-addr.arpa    name = beiku1.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.162
Server:        10.138.130.161
Address:        10.138.130.161#53

162.130.138.10.in-addr.arpa    name = beiku2.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.167
Server:        10.138.130.161
Address:        10.138.130.161#53

167.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.168
Server:        10.138.130.161
Address:        10.138.130.161#53

168.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.169
Server:        10.138.130.161
Address:        10.138.130.161#53

169.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com. 

可以看到,DNS 解析一切正常,上面只是配置了主 DNS 服务器,而且主 DNS 服务器也工作正常,现在我们来配置一个辅助 DNS 服务器

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

配置辅助 DNS 服务器
主 DNS 的东西和辅助 DNS 东西其实是相同的
 一. 安装软件包
 [root@beiku2 soft]# rpm -qa | grep bind
bind-chroot-9.3.6-4.P1.el5
kdebindings-3.5.4-6.el5
system-config-bind-4.0.3-4.el5
ypbind-1.19-12.el5
bind-libs-9.3.6-4.P1.el5
bind-9.3.6-4.P1.el5
bind-utils-9.3.6-4.P1.el5
[root@beiku2 soft]# rpm -ivh kdebindings-devel-3.5.4-6.el5.i386.rpm
warning: kdebindings-devel-3.5.4-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:kdebindings-devel      ########################################### [100%]
[root@beiku2 soft]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:caching-nameserver    ########################################### [100%]
[root@beiku2 soft]# rpm -ivh bind-sdb-9.3.6-4.P1.el5.i386.rpm
warning: bind-sdb-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-sdb              ########################################### [100%]
[root@beiku2 soft]# rpm -ivh bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-libbind-devel    ########################################### [100%]
[root@beiku2 soft]# rpm -ivh bind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-devel            ########################################### [100%]

二. 复制模板文件
[root@beiku2 /]# cd /var/named/chroot/etc
[root@beiku2 etc]# ls -lrt
total 24
-rw-r–r– 1 root root  3519 Feb 27  2006 localtime
-rw-r—– 1 root named  955 Jul 30  2009 named.rfc1912.zones
-rw-r—– 1 root named 1230 Jul 30  2009 named.caching-nameserver.conf
-rw-r—– 1 root named  113 Nov 15  2014 rndc.key

[root@beiku2 etc]# cp -p named.caching-nameserver.conf named.conf

三. 编辑 named.conf 文件
[root@beiku2 etc]# vi named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 {any;};
        listen-on-v6 port 53 {::1;};
        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”;

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query    {10.138.130.0/24;};
        allow-query-cache {any;};
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      {10.138.130.0/24;};
        match-destinations {any;};
        recursion yes;
        include “/etc/named.rfc1912.zones”;
};

和主 DNS 配置一样

四. 定义 zone 文件
[root@beiku2 etc]# vi named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone “linuxidc.com” IN {
        type slave;
        masters {10.138.130.161;};
        file “slaves/linuxidc.com”;
};

zone “0.138.10.in-addr.arpa” IN {
        type slave;
        masters {10.138.130.161;};
        file “slaves/named.linuxidc”;
};

辅助 DNS 在定义 zone 文件的时候和主 DNS 有些不同
 在辅助 DNS 里面 type 要改为 slave
 master {10.138.130.161;}; 而且必须指定主 DNS 的 IP address
 file “slaves/linuxidc.com”;
 file “slaves/named.linuxidc”;
为什么要指定数据库文件在 slaves 目录下面呢, 是因为 slaves 目录是拥有人和拥有组都是 named 用户,在启动 DNS 服务的时候,只有 named 有权限进行操作,所以我们要把数据库放在这个目录下面。
[root@beiku2 etc]# cd /var/named/chroot/var/named/
[root@beiku2 named]# ls -lrt
total 44
drwxrwx— 2 named named 4096 Jul 27  2004 slaves
drwxrwx— 2 named named 4096 Aug 26  2004 data
-rw-r—– 1 root  named  427 Jul 30  2009 named.zero
-rw-r—– 1 root  named  426 Jul 30  2009 named.local
-rw-r—– 1 root  named  424 Jul 30  2009 named.ip6.local
-rw-r—– 1 root  named 1892 Jul 30  2009 named.ca
-rw-r—– 1 root  named  427 Jul 30  2009 named.broadcast
-rw-r—– 1 root  named  195 Jul 30  2009 localhost.zone
-rw-r—– 1 root  named  198 Jul 30  2009 localdomain.zone
[root@beiku2 named]# cd slaves
[root@beiku2 slaves]# ls -lrt
total 0

可以看到,slaves 目录的拥有人和拥有组是 named,并且现在的 slaves 目录下面是什么东西都没有的。
 现在我们重启一下 DNS 服务
[root@beiku2 slaves]# service named restart
Stopping named: [OK]
Starting named: [OK]

可以看到,服务启动成功了。在启动服务的同时,我们来查看一下日志信息,看看日志里面有什么提示
[root@beiku2 slaves]# tail /var/log/messages
Aug 25 23:41:49 beiku2 named[30421]: the working directory is not writable
Aug 25 23:41:49 beiku2 named[30421]: running
Aug 25 23:41:49 beiku2 named[30421]: zone 0.138.10.in-addr.arpa/IN/localhost_resolver: Transfer started.
Aug 25 23:41:49 beiku2 named[30421]: transfer of ‘0.138.10.in-addr.arpa/IN’ from 10.138.130.161#53: connected using 10.138.130.162#44647
Aug 25 23:41:49 beiku2 named[30421]: zone 0.138.10.in-addr.arpa/IN/localhost_resolver: transferred serial 1997022700
Aug 25 23:41:49 beiku2 named[30421]: transfer of ‘0.138.10.in-addr.arpa/IN’ from 10.138.130.161#53: end of transfer
Aug 25 23:41:49 beiku2 named[30421]: zone linuxidc.com/IN/localhost_resolver: Transfer started.
Aug 25 23:41:49 beiku2 named[30421]: transfer of ‘linuxidc.com/IN’ from 10.138.130.161#53: connected using 10.138.130.162#56490
Aug 25 23:41:49 beiku2 named[30421]: zone linuxidc.com/IN/localhost_resolver: transferred serial 42
Aug 25 23:41:49 beiku2 named[30421]: transfer of ‘linuxidc.com/IN’ from 10.138.130.161#53: end of transfer

在日志里面可以看到,主 DNS 与辅助 DNS 正在同步序列号,同步成功,这个日志里面的信息非常的详细。
 接下来,我们在到 slaves 目录下面去看看
[root@beiku2 slaves]# ls -lrt
total 8
-rw-r–r– 1 named named 414 Aug 25 23:41 linuxidc.com
-rw-r–r– 1 named named 451 Aug 25 23:41 named.linuxidc

刚才 slaves 目录下面的是什么东西都没有, 现在就多了两个文件,example.com 和 named.example 这个两个文件。这个就是我们刚才在定义 zone 文件的时候在 slaves 目录下面定义的,文件名是随意写的,这个没有关系,但是里面东西是和主 DNS 一样的。
 我们查看这两个文件的具体内容
[root@beiku2 slaves]# cat linuxidc.com
$ORIGIN .
$TTL 86400      ; 1 day
linuxidc.com                IN SOA  linuxidc.com. root.linuxidc.com. (
                                42        ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800    ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      linuxidc.com.
                        A      127.0.0.1
                        AAAA    ::1
$ORIGIN linuxidc.com.
beiku1                  A      10.138.130.161
beikuscan1              A      10.138.130.167
beikuscan2              A      10.138.130.168
beikuscan3              A      10.138.130.169
beiku2                  A      10.138.130.162

[root@beiku2 slaves]# cat named.linuxidc
$ORIGIN .
$TTL 86400      ; 1 day
0.138.10.in-addr.arpa  IN SOA  localhost. root.localhost. (
                                1997022700 ; serial
                                28800      ; refresh (8 hours)
                                14400      ; retry (4 hours)
                                3600000    ; expire (5 weeks 6 days 16 hours)
                                86400      ; minimum (1 day)
                                )
                        NS      localhost.
$ORIGIN 0.138.10.in-addr.arpa.
1                      PTR    localhost.
161                    PTR    beiku1.linuxidc.com
167                    PTR    beikuscan1.linuxidc.com
168                    PTR    beikuscan2.linuxidc.com
169                    PTR    beikuscan3.linuxidc.com
162                    PTR    beiku2.linuxidc.com

这两个文件里面的内容和我们的主 DNS 的内容都是一样的。而且还帮我们整理的非常的漂亮。这些都是系统自动生成的。
 现在我们来测试一下主 DNS 和辅助 DNS 可不可以正常的工作
[root@beiku2 slaves]# vi /etc/resolv.conf
search linuxidc.com
nameserver 10.138.130.161
nameserver 10.138.130.162

现在我们将主 DNS 和辅助 DNS 都设置一下。然后在使用 nslookup 工具来测试
[root@beiku2 slaves]# nslooup beiku1
-bash: nslooup: command not found
[root@beiku2 slaves]# nslookup beiku1
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

 [root@beiku2 slaves]# nslookup beiku2
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku2.linuxidc.com
Address: 10.138.130.162

现在解析没有问题,还是有 10.138.130.161 这台主 DNS 来解析的。
 接下来,我们将 10.138.130.161 这台主 DNS 给 down,看下 10.138.130.162 这台辅助 DNS 能否正常工作。
[root@beiku1 named]# service named stop
Stopping named: [OK]

用 nslookup 来测试一下
[root@beiku2 slaves]# nslookup beiku1
Server:        10.138.130.162
Address:        10.138.130.162#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

现在解析照样成功了,现在并不是通过 10.138.130.161 这台主 DNS 来解析出来的,而是通过我们的 10.138.130.162 这台辅助 DNS 来解析出来的。当我们网络中的主 DNSdown 掉的时候,我们的辅助 DNS 照样能够正常的工作。我们还可以实现负载均衡,可以在网络中的一半客户端的主 DNS 指向 10.138.130.161,辅助 DNS 指向 10.138.130.161。将网络中的另一半客户端的主 DNS 指向 10.138.130.162,辅助 DNS 指向 10.138.130.161。这样两台服务器都可以正常的工作,正常的为客户端解析,当其中的一台 DNSdown 掉后,另一台 DNS 也会继续的工作,这样就实现了简单的负载均衡。到目前为止,我们的主 DNS Server 和我们的辅助 DNS Server 都已经设置成功了,并且都可以正常的工作了。

接下来,我们在做一个试验,我们在主 DNS 添加一条记录,看下辅助 DNS 能否检测试到这条记录,不能够在辅助 DNS 上面添加记录,这样没有意义,我们的主 DNS 是检测不到这条记录的。
[root@beiku1 named]# vi linuxidc.zone
$TTL    86400
@              IN SOA  @      root (
                                        43              ; serial (d. adams)
                                        2M              ; refresh
                                        2M              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS          @
                IN A            127.0.0.1
                IN AAAA        ::1

beiku1          IN A            10.138.130.161
beikuscan      IN A            10.138.130.167
beikuscan      IN A            10.138.130.168
beikuscan      IN A            10.138.130.169
beiku2          IN A            10.138.130.162
www            IN A            10.138.130.170

增加了 www IN A 10.138.130.170 记录。在主 DNS 里面做了新的操作以后,一定要将主 DNS 的序列号加一。否则辅助 DNS 是不会来同步我们的主 DNS 的。我们已经将主 DNS 的序列号加一了,但是默认情况下,主 DNS 与辅助 DNS 的同步时间是 3H,这样我们很难看到效果,我们将它改为 2M,然后在将重试时间改为 2M,这样就代表每隔两分钟主 DNS 和辅助 DNS 进行同步,如果同步不成功,在隔两分钟同步一次。接下来我们将反向解析里面的也来修改一下
[root@beiku1 named]# vi named.linuxidc
$TTL    86400
@      IN      SOA    beiku1.linuxidc.com. root.linuxidc.com.  (
                                      1997022703 ; Serial
                                      120      ; Refresh
                                      120      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
@        IN      NS    beiku1.linuxidc.com.

167    IN      PTR    beikuscan.linuxidc.com.
168    IN      PTR    beikuscan.linuxidc.com.
169    IN      PTR    beikuscan.linuxidc.com.
162    IN      PTR    beiku2.linuxidc.com.
161    IN      PTR    beiku1.linuxidc.com.
170    IN      PTR    www.linuxidc.com.

 

这样,反向解析里面也已经修改完成了。现在将 DNS 服务重启
[root@beiku1 named]# service named restart
Stopping named: [OK]
Starting named: [OK]

重启成功,等几分钟之后在来看下效果。现在我们查看辅助 DNS 的正向解析数据库文件的内容
[root@beiku2 slaves]# cat linuxidc.com
$ORIGIN .
$TTL 86400      ; 1 day
linuxidc.com                IN SOA  beiku1.linuxidc.com. root.linuxidc.com. (
                                45        ; serial
                                120        ; refresh (2 minutes)
                                120        ; retry (2 minutes)
                                604800    ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      beiku1.linuxidc.com.
$ORIGIN linuxidc.com.
beiku1                  A      10.138.130.161
beiku2                  A      10.138.130.162
beikuscan              A      10.138.130.167
                        A      10.138.130.168
                        A      10.138.130.169
www                    A      10.138.130.170

OK,可以看到,我们刚才在主 DNS 里面添加的一条新的记录现在已经被辅助 DNS 同步过去了,而且辅助 DNS 的序列号和刷新时间,重试时间都同步了。下来我们查看辅助 DNS 的反向解析数据库文件的内容
[root@beiku2 slaves]# cat named.linuxidc
RIGIN .
$TTL 86400      ; 1 day
0.138.10.in-addr.arpa  IN SOA  localhost. root.localhost. (
                                1997022702 ; serial
                                28800      ; refresh (8 hours)
                                14400      ; retry (4 hours)
                                3600000    ; expire (5 weeks 6 days 16 hours)
                                86400      ; minimum (1 day)
                                )
                        NS      localhost.
$ORIGIN 0.138.10.in-addr.arpa.
1                      PTR    localhost.
161                    PTR    beiku1.linuxidc.com
167                    PTR    beikuscan1.linuxidc.com
168                    PTR    beikuscan2.linuxidc.com
169                    PTR    beikuscan3.linuxidc.com
162                    PTR    beiku2.linuxidc.com
170                    PTR    www.linuxidc.com

OK,也可以看到,辅助 DNS 也已经同步成功了,到此 DNS 的配置就完成了。

更多 RedHat 相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/122364.htm

在 Oracle 11g 的 RAC 中增加了 SCAN IP, 而使用 SCAN IP 的一种方式就是使用 DNS,这里介绍在 RedHat Linux 5.4 中 DNS 的详细配置操作。
在配置 DNS 之前修改主机名
Redhat Linux 5.4 DNS 配置操作
在配置 DNS 之前修改主机名
[root@beiku1 etc]# hostname beiku1.linuxidc.com
[root@beiku1 etc]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1              beiku1.linuxidc.com localhost
::1            localhost6.localdomain6 localhost6
10.138.130.161 beiku1

[root@beiku1 etc]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=beiku1.linuxidc.com
GATEWAY=10.138.130.254

一. 安装软件包
Redhat linux 5.4 下的 dns 服务所有的 bind 包如下:
bind-9.3.6-4.P1.el5
bind-libbind-devel-9.3.6-4.P1.el5
kdebindings-devel-3.5.4-6.el5
kdebindings-3.5.4-6.el5
bind-devel-9.3.6-4.P1.el5
bind-utils-9.3.6-4.P1.el5
bind-chroot-9.3.6-4.P1.el5
ypbind-1.19-12.el5
system-config-bind-4.0.3-4.el5
bind-libs-9.3.6-4.P1.el5
bind-sdb-9.3.6-4.P1.el5

使用 rpm –qa | grep bind 来检查系统是否已经安装了以上软件包:
[root@beiku1 soft]# rpm -qa | grep bind
bind-chroot-9.3.6-4.P1.el5
kdebindings-3.5.4-6.el5
ypbind-1.19-12.el5
bind-libs-9.3.6-4.P1.el5
bind-9.3.6-4.P1.el5
system-config-bind-4.0.3-4.el5
bind-utils-9.3.6-4.P1.el5

对于没有安装的软件包执行以下命令进行安装
[root@beiku1 soft]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
warning: bind-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
        package bind-9.3.6-4.P1.el5.i386 is already installed
[root@beiku1 soft]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:caching-nameserver    ########################################### [100%]

[root@beiku1 soft]# rpm -ivh install kdebindings-devel-3.5.4-6.el5.i386.rpm
error: open of install failed: No such file or directory
warning: kdebindings-devel-3.5.4-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
[root@beiku1 soft]# rpm -ivh kdebindings-devel-3.5.4-6.el5.i386.rpm
warning: kdebindings-devel-3.5.4-6.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:kdebindings-devel      ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-sdb-9.3.6-4.P1.el5.i386.rpm
warning: bind-sdb-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-sdb              ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-libbind-devel    ########################################### [100%]
[root@beiku1 soft]# rpm -ivh bind-devel-9.3.6-4.P1.el5.i386.rpm
warning: bind-devel-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:bind-devel            ########################################### [100%]

 

还要手动安装一个软件包 caching-nameserver-9.3.6-4.P1.el5 , 不安装这个软件包 named 服务不能启动, 会报错误信息 例如:
[root@beiku1 ~]# service named start
Locating /var/named/chroot//etc/named.conf failed:
[FAILED]

[root@beiku1 soft]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
  1:caching-nameserver    ########################################### [100%]

[root@beiku1 soft]# service named start
Starting named: [OK]

二. 复制模板文件
 由于安装了 chroot 环境,所以我们的 DNS 主配置文件应该在 /var/named/chroot/etc 目录下面
[root@beiku1 soft]# cd /var/named/chroot/
[root@beiku1 chroot]# ls
dev  etc  proc  var
[root@beiku1 chroot]# cd etc
[root@beiku1 etc]# ls
localtime  named.caching-nameserver.conf  named.rfc1912.zones  rndc.key
[root@beiku1 etc]#

named.caching-nameserver.conf 文件内容如下:
[root@beiku1 etc]# cat named.caching-nameserver.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 {127.0.0.1;};
        listen-on-v6 port 53 {::1;};
        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”;

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query    {localhost;};
        allow-query-cache {localhost;};
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      {localhost;};
        match-destinations {localhost;};
        recursion yes;
        include “/etc/named.rfc1912.zones”;
};

这个文件告诉我们不要直接的编辑这个文件,去创建一个 named.conf 文件,然后编辑 named.conf 文件,当有了 named.conf,将不在读取这个文件。现在就将 named.caching-nameserver.conf 文件复制成 named.conf 文件。
[root@beiku1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@beiku1 etc]# ls
localtime  named.caching-nameserver.conf  named.conf  named.rfc1912.zones  rndc.key

可以看到,named.conf 文件就被创建成功了。最好在 copy 的时候加上 - P 的参数,保留权限。否则启动服务的时候会报权限拒绝的。

三. 编辑 named.conf 文件
[root@beiku1 etc]# vi named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 {any;};
        listen-on-v6 port 53 {::1;};
        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”;

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query    {10.138.130.0/24;};
        allow-query-cache {any;};
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      {10.138.130.0/24;};
        match-destinations {any;};
        recursion yes;
        include “/etc/named.rfc1912.zones”;
};

解释这些语法参数的意思
options
代表全局配置
listen-on port 53 {any;};
 DNS 服务监听在所有接口
listen-on-v6 port 53 {::1;};
 ipv6 监听在本地回环接口
directory “/var/named”;
 zone 文件的存放目录,指的是 chroot 环境下面的 /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 {10.138.130.0/24};
允许查询的客户端,现在修改成本地网段,
allow-query-cache {any;};
允许那些客户端来查询缓存,any 表示允许任何人。
logging {
 channel default_debug {
 file “data/named.run”;
 severity dynamic;
 };
定义日志的存放位置在 /var/named/chroot/var/named/data/ 目录下面
};
view localhost_resolver {
 match-clients {10.138.130.0/24;};
 match-destinations {any;};
 recursion yes;
 include “/etc/named.rfc1912.zones”;
 };

这里是定义视图的功能,
Match-clients 是指匹配的客户端
Match-destination 是指匹配的目标
 到这里,named.conf 文件就已经配置成功了,这个视图最后写 include “/etc/named.rfc1912.zones”; 接下面,就去配置这个文件。当然,我们可以匹配不同的客户端来创建不同的视图。

四. 定义 zone 文件
[root@beiku1 etc]# vi  named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone “.” IN {
        type hint;
        file “named.ca”;
};

zone “linuxidc.com” IN {
        type master;
        file “linuxidc.zone”;
        allow-update {none;};
};

zone “130.138.10.in-addr.arpa” IN {
        type master;
        file “named.linuxidc”;
        allow-update {none;};
};

解释这些语法参数的意思
Zone“.”根区域
Zone“linuxidc.com”定义正向解析的区域
zone “130.138.10.in-addr.arpa” 定义反向解析的区域
IN Internet 记录
type hint 根区域的类型为 hint
 type master 区域的类型为主要的
file“named.ca”; 区域文件是 named,ca
 file “linuxidc.zone”; 指定正向解析的区域文件是 linuxidc.zone
 file “named.linuxidc”; 指定反向解析的区域文件是 named,linuxidc
 allow-update {none;}; 默认情况下,是否允许客户端自动更新
 在 named.ca 文件中就定义了全球的 13 台根服务器,
 在 linuxidc.com 文件中就定义 DNS 的正向解析数据库
 在 named.linuxidc 文件中就定义 DNS 反向解析的数据库
 定义 zone 文件就完成了,下面来编辑 DNS 的数据库文件。

五. 使用模板文件来创建数据库文件
[root@beiku1 etc]# cd /var/named/chroot/var/named/
[root@beiku1 named]# ls
data  localdomain.zone  localhost.zone  named.broadcast  named.ca  named.ip6.local  named.local  named.zero  slaves

可以看到,在 chroot 环境下面的 /var/named/ 有很多模板文件。Named.ca 就是根区域的数据库文件,我们将 localhost.zone 复制成 linuxidc.zone,这个是正向解析的数据库文件,将 named.local 复制成 named.linuxidc,这个是反向解析的数据库文件。数据库文件一定要和 /etc/named.rfc1912.zones 这个文件里面的匹配。
[root@beiku1 named]# cp -p localhost.zone linuxidc.zone
[root@beiku1 named]# cp -p named.local named.linuxidc
[root@beiku1 named]# ls
data              named.broadcast  named.local  linuxidc.zone
localdomain.zone  named.ca        named.linuxidc  slaves
localhost.zone    named.ip6.local  named.zero

复制成功,正向解析和反向解析的数据库文件就创建完成了。

六. 定义数据库文件
1. 定义正向解析数据库文件
[root@beiku1 named]# vi linuxidc.zone
$TTL    86400
@              IN SOA  beiku1.linuxidc.com.      root.linuxidc.com. (
                                        44              ; serial (d. adams)
                                        3H              ; refresh
                                        15M              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

@              IN NS          beiku1.linuxidc.com.

beikuscan      IN A            10.138.130.167
beikuscan      IN A            10.138.130.168
beikuscan      IN A            10.138.130.169
beiku2        IN A            10.138.130.162
beiku1        IN A            10.138.130.161

关于正向解析数据库中每一行参数的解释
$TTL 86400
最小的存活的时间是 86400S(24H)

@ IN SOA @ root (
这是一笔 SOA 记录,只允许存在一个 SOA 记录
@是代表要解析的这个域本身()
IN 是 Internet 记录。
SOA 是初始授权记录,指定网络中第一台 DNS Server。
root 是指管理员的邮箱。

44 ; serial (d. adams)
 3H ; refresh
 15M ; retry
 1W ; expiry
 1D ) ; minimum

这些部分主要是用来主 DNS 和辅助 DNS 做同步用的
44 序列号,当主 DNS 数据改变时,这个序列号就要被增加 1,而辅助 DNS 通过序列号来和主 DNS 同步。
3H 刷新,主 DNS 和辅助 DNS 每隔三小时同步一次。
15M 重试,3H 之内,没有同步,每隔 15M 在尝试同步
1W 过期,1W 之内,还没有同步,就不同步了
1D 生存期,没有这条记录,缓存的时间。
@ IN NS beiku1.linuxidc.com.

这是一笔 NS 记录,指定 nameserver 为 beiku1.linuxidc.com 至少要有一笔 NS 记录

beiku1 IN A 10.138.130.161
指定 beiku1 的 ip 地址为 10.138.130.161

beikuscan IN A 10.138.130.167
指定 beikuscan 的 ip 地址为 10.138.130.167

beikuscan IN A 10.138.130.168
指定 beikuscan 的 ip 地址为 10.138.130.168

beikuscan IN A 10.138.130.169
指定 beikuscan 的 ip 地址为 10.138.130.169
 beiku2 IN A 10.138.130.162
指定 beiku2 的 ip 地址为 10.138.130.162

正向解析的数据库就完成了,下面定义反向解析的数据库。

2. 定义反向解析数据库
[root@beiku1 named]# vi named.linuxidc
$TTL    86400
@      IN      SOA    beiku1.linuxidc.com. root.linuxidc.com.  (
                                      1997022702 ; Serial
                                      120      ; Refresh
                                      120      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
@        IN      NS    beiku1.linuxidc.com.

167    IN      PTR    beikuscan.linuxidc.com.
168    IN      PTR    beikuscan.linuxidc.com.
169    IN      PTR    beikuscan.linuxidc.com.
162    IN      PTR    beiku2.linuxidc.com.
161    IN      PTR    beiku1.linuxidc.com.

其实反向解析的数据库文件的配置和正向解析的差不多,只需要将 ip 地址和域名换一个位置就可以了,把 A 换成 PTR 就 ok 了。
DNS 的基本配置就完成了,在来看看 DNS 是否能够正常工作。
 我们先重启一下 DNS 服务
[root@beiku1 etc]# service named restart
Stopping named: [OK]
Starting named: [OK]

可以看到,DNS 服务启动成功了。
 在查询以前,要在客户端来指定 DNS Server,在 /etc/resolv.conf 这个文件中指定。
[root@beiku1 etc]# vi /etc/resolv.conf
search linuxidc.com
nameserver      10.138.130.161

[root@beiku1 etc]# service named restart
Stopping named: [OK]
Starting named: [OK]

参数及意义:
nameserver 表明 dns 服务器的 ip 地址,可以有很多行的 nameserver,每一个带一个 ip 地址。
 在查询时就按 nameserver 在本文件中的顺序进行,且只有当第一个 nameserver 没有反应时才查询下面的 nameserver.
 domain 声明主机的域名。很多程序用到它,如邮件系统; 当为没有域名的主机进行 dns 查询时,也要用到。如果没有域名,主机名将被使,用删除所有在第一个点 (.) 前面的内容。
search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由 search 声明的域中分别查找。
domain 和 search 不能共存; 如果同时存在,后面出现的将会被使用。
sortlist 允许将得到域名结果进行特定的排序。它的参数为网络 / 掩码对,允许任意的排列顺序。

再来使用 nslookup 工具来查询一下
[root@beiku1 named]# nslookup beiku1.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

[root@beiku1 named]# nslookup beiku2.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku2.linuxidc.com
Address: 10.138.130.162

[root@beiku1 named]# nslookup beikuscan.linuxidc.com
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beikuscan.linuxidc.com
Address: 10.138.130.169
Name:  beikuscan.linuxidc.com
Address: 10.138.130.167
Name:  beikuscan.linuxidc.com
Address: 10.138.130.168

[root@beiku1 named]# nslookup beiku1
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku1.linuxidc.com
Address: 10.138.130.161

[root@beiku1 named]# nslookup beiku2
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beiku2.linuxidc.com
Address: 10.138.130.162

[root@beiku1 named]# nslookup beikuscan
Server:        10.138.130.161
Address:        10.138.130.161#53

Name:  beikuscan.linuxidc.com
Address: 10.138.130.168
Name:  beikuscan.linuxidc.com
Address: 10.138.130.169
Name:  beikuscan.linuxidc.com
Address: 10.138.130.167

[root@beiku1 named]# nslookup 10.138.130.161
Server:        10.138.130.161
Address:        10.138.130.161#53

161.130.138.10.in-addr.arpa    name = beiku1.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.162
Server:        10.138.130.161
Address:        10.138.130.161#53

162.130.138.10.in-addr.arpa    name = beiku2.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.167
Server:        10.138.130.161
Address:        10.138.130.161#53

167.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.168
Server:        10.138.130.161
Address:        10.138.130.161#53

168.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com.

[root@beiku1 named]# nslookup 10.138.130.169
Server:        10.138.130.161
Address:        10.138.130.161#53

169.130.138.10.in-addr.arpa    name = beikuscan.linuxidc.com. 

可以看到,DNS 解析一切正常,上面只是配置了主 DNS 服务器,而且主 DNS 服务器也工作正常,现在我们来配置一个辅助 DNS 服务器

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

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