zoukankan      html  css  js  c++  java
  • Redhat linux DNS配置指南(SCANIP配置手册)

    在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.sbyy.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.sbyy.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.sbyy.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 "sbyy.com" IN {
            type master;
            file "sbyy.zone";
            allow-update { none; };
    };
    
    zone "130.138.10.in-addr.arpa" IN {
            type master;
            file "named.sbyy";
            allow-update { none; };
    };
    

    解释这些语法参数的意思
    Zone “.” 根区域
    Zone “sbyy.com” 定义正向解析的区域
    zone “130.138.10.in-addr.arpa” 定义反向解析的区域
    IN Internet记录
    type hint 根区域的类型为hint
    type master 区域的类型为主要的
    file “named.ca” ; 区域文件是named,ca
    file “sbyy.zone”; 指定正向解析的区域文件是sbyy.zone
    file “named.sbyy”; 指定反向解析的区域文件是named,sbyy
    allow-update { none; }; 默认情况下,是否允许客户端自动更新
    在named.ca文件中就定义了全球的13台根服务器,
    在sbyy.com文件中就定义DNS的正向解析数据库
    在named.sbyy文件中就定义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复制成sbyy.zone,这个是正向解析的数据库文件,将named.local复制成named.sbyy,这个是反向解析的数据库文件。数据库文件一定要和/etc/named.rfc1912.zones这个文件里面的匹配。

    [root@beiku1 named]# cp -p localhost.zone sbyy.zone
    [root@beiku1 named]# cp -p named.local named.sbyy
    [root@beiku1 named]# ls 
    data              named.broadcast  named.local  sbyy.zone
    localdomain.zone  named.ca         named.sbyy   slaves
    localhost.zone    named.ip6.local  named.zero
    

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

    六.定义数据库文件
    1. 定义正向解析数据库文件

    [root@beiku1 named]# vi sbyy.zone
    $TTL    86400
    @               IN SOA  beiku1.sbyy.com.       root.sbyy.com. (
                                            44              ; serial (d. adams)
                                            3H              ; refresh
                                            15M              ; retry
                                            1W              ; expiry
                                            1D )            ; minimum
    
    @              IN NS           beiku1.sbyy.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.sbyy.com.

    这是一笔NS记录,指定nameserver为beiku1.sbyy.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.sbyy
    $TTL    86400
    @       IN      SOA     beiku1.sbyy.com. root.sbyy.com.  (
                                          1997022702 ; Serial
                                          120      ; Refresh
                                          120      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
    @        IN      NS     beiku1.sbyy.com.
    
    167     IN      PTR     beikuscan.sbyy.com.
    168     IN      PTR     beikuscan.sbyy.com.
    169     IN      PTR     beikuscan.sbyy.com.
    162     IN      PTR     beiku2.sbyy.com. 
    161     IN      PTR     beiku1.sbyy.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 sbyy.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.sbyy.com
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beiku1.sbyy.com
    Address: 10.138.130.161
    
    [root@beiku1 named]# nslookup beiku2.sbyy.com
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beiku2.sbyy.com
    Address: 10.138.130.162
    
    [root@beiku1 named]# nslookup beikuscan.sbyy.com
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beikuscan.sbyy.com
    Address: 10.138.130.169
    Name:   beikuscan.sbyy.com
    Address: 10.138.130.167
    Name:   beikuscan.sbyy.com
    Address: 10.138.130.168
    
    [root@beiku1 named]# nslookup beiku1
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beiku1.sbyy.com
    Address: 10.138.130.161
    
    [root@beiku1 named]# nslookup beiku2
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beiku2.sbyy.com
    Address: 10.138.130.162
    
    [root@beiku1 named]# nslookup beikuscan
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beikuscan.sbyy.com
    Address: 10.138.130.168
    Name:   beikuscan.sbyy.com
    Address: 10.138.130.169
    Name:   beikuscan.sbyy.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.sbyy.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.sbyy.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.sbyy.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.sbyy.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.sbyy.com.
    
    

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

    配置辅助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 "sbyy.com" IN {
            type slave;
            masters {10.138.130.161;};
            file "slaves/sbyy.com";
    };
    
    zone "0.138.10.in-addr.arpa" IN {
            type slave;
            masters {10.138.130.161;};
            file "slaves/named.sbyy";
    };
    

    辅助DNS在定义zone文件的时候和主DNS有些不同
    在辅助DNS里面 type要改为slave
    master { 10.138.130.161; }; 而且必须指定主DNS的IP address
    file “slaves/sbyy.com”;
    file “slaves/named.sbyy”;
    为什么要指定数据库文件在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 sbyy.com/IN/localhost_resolver: Transfer started.
    Aug 25 23:41:49 beiku2 named[30421]: transfer of 'sbyy.com/IN' from 10.138.130.161#53: connected using 10.138.130.162#56490
    Aug 25 23:41:49 beiku2 named[30421]: zone sbyy.com/IN/localhost_resolver: transferred serial 42
    Aug 25 23:41:49 beiku2 named[30421]: transfer of 'sbyy.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 sbyy.com
    -rw-r--r-- 1 named named 451 Aug 25 23:41 named.sbyy
    

    刚才slaves目录下面的是什么东西都没有,现在就多了两个文件,example.com和named.example这个两个文件。这个就是我们刚才在定义zone文件的时候在slaves目录下面定义的,文件名是随意写的,这个没有关系,但是里面东西是和主DNS一样的。
    我们查看这两个文件的具体内容

    [root@beiku2 slaves]# cat sbyy.com
    $ORIGIN .
    $TTL 86400      ; 1 day
    sbyy.com                IN SOA  sbyy.com. root.sbyy.com. (
                                    42         ; serial
                                    10800      ; refresh (3 hours)
                                    900        ; retry (15 minutes)
                                    604800     ; expire (1 week)
                                    86400      ; minimum (1 day)
                                    )
                            NS      sbyy.com.
                            A       127.0.0.1
                            AAAA    ::1
    $ORIGIN sbyy.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.sbyy
    $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.sbyy.com
    167                     PTR     beikuscan1.sbyy.com
    168                     PTR     beikuscan2.sbyy.com
    169                     PTR     beikuscan3.sbyy.com
    162                     PTR     beiku2.sbyy.com
    

    这两个文件里面的内容和我们的主DNS的内容都是一样的。而且还帮我们整理的非常的漂亮。这些都是系统自动生成的。
    现在我们来测试一下主DNS和辅助DNS可不可以正常的工作

    [root@beiku2 slaves]# vi /etc/resolv.conf
    search sbyy.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.sbyy.com
    Address: 10.138.130.161
    
     [root@beiku2 slaves]# nslookup beiku2
    Server:         10.138.130.161
    Address:        10.138.130.161#53
    
    Name:   beiku2.sbyy.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.sbyy.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 sbyy.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.sbyy
    $TTL    86400
    @       IN      SOA     beiku1.sbyy.com. root.sbyy.com.  (
                                          1997022703 ; Serial
                                          120      ; Refresh
                                          120      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
    @        IN      NS     beiku1.sbyy.com.
    
    167     IN      PTR     beikuscan.sbyy.com.
    168     IN      PTR     beikuscan.sbyy.com.
    169     IN      PTR     beikuscan.sbyy.com.
    162     IN      PTR     beiku2.sbyy.com.
    161     IN      PTR     beiku1.sbyy.com.
    170     IN      PTR     www.sbyy.com.
    
    

    这样,反向解析里面也已经修改完成了。现在将DNS服务重启

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

    重启成功,等几分钟之后在来看下效果。现在我们查看辅助DNS的正向解析数据库文件的内容

    [root@beiku2 slaves]# cat sbyy.com
    $ORIGIN .
    $TTL 86400      ; 1 day
    sbyy.com                IN SOA  beiku1.sbyy.com. root.sbyy.com. (
                                    45         ; serial
                                    120        ; refresh (2 minutes)
                                    120        ; retry (2 minutes)
                                    604800     ; expire (1 week)
                                    86400      ; minimum (1 day)
                                    )
                            NS      beiku1.sbyy.com.
    $ORIGIN sbyy.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.sbyy
    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.sbyy.com
    167                     PTR     beikuscan1.sbyy.com
    168                     PTR     beikuscan2.sbyy.com
    169                     PTR     beikuscan3.sbyy.com
    162                     PTR     beiku2.sbyy.com
    170                     PTR     www.sbyy.com
    

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

  • 相关阅读:
    dblink
    linux 查进程、杀进程、起进程
    oracle 资源统计SQL语句
    DIV+CSS+javascript 手动轮播图
    接受同步数据接口
    java String StringBuffer StringBuilder
    SpringMVC Servlet 分页查询接收参数
    WPF 开发
    收集整理的各地精品青年旅舍大全(
    Linux平台Java调用so库JNI使用例子
  • 原文地址:https://www.cnblogs.com/travel6868/p/5019181.html
Copyright © 2011-2022 走看看