Linux下配置DNS服务器及nslookup的一些命令

有两台邮件服务器分别为192.168.1.1(windows下主机名为b.test.cn)和192.168.1.3(linux下主机名为a.test.com)。
在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,
/etc/hosts   文件的具体内容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain   localhost       fc4
192.168.1.3 a.test.com        a
192.168.1.1 b.test.cn       b

/etc/host.conf 文件:
order hosts,bind
表示先用hosts文件做解析,在用DNS解析

/etc/resolv.conf    文件:
; generated by NetworkManager, do not edit!

search test.com
nameserver 127.0.0.1
search test.cn
nameserver 192.168.1.1

nameserver 61.144.56.100

/etc/named.conf 文件:
//
// named.conf for Red Hat caching-nameserver
//

options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below. Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
         // query-source address * port 53;
};

//
// a caching only nameserver config
//
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "test.com"IN {
        type master;
        file "test.com";
        allow-update { none; };
};

zone "1.168.192.in-addr.arpa"IN {
        type master;
        file "192.168.1.rev";
        allow-update { none; };
};

zone "test.cn"IN {
        type master;
        file "test.cn";
        allow-update { none; };
};


zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.ip6.local";
        allow-update { none; };
};

zone "255.in-addr.arpa" IN {
        type master;
        file "named.broadcast";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};

include "/etc/rndc.key";

在/var/name/test.com 文件下:
$TTL    86400
@               IN SOA       a.test.com. root.a.test.com (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS           a.test.com.
                IN MX   10      mail.test.com.
a            IN A            192.168.1.3
mail            IN A            192.168.1.3
//其中root.a.test.com的含义是管理员的邮箱

/var/name/test.cn 文件下:
$TTL    86400
@               IN SOA       b.test.cn. root.a.test.com (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS           b.test.cn.
                IN MX 10        mail.test.cn.
b         IN A            192.168.1.1
mail                    IN A            192.168.1.1

/var/name/192.168.1.rev 文件下:
$TTL    86400
@       IN      SOA     1.168.192.in-addr.arpa. root.test.com. (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
                IN      NS      a.test.com.
                IN      NS      b.test.cn.
                IN      MX 10   mail.test.com.
                IN      MX 10   mail.test.cn.

3     IN      PTR     a.test.com.
3     IN      PTR     mail.test.com.
1     IN      PTR     b.test.cn.
1     IN      PTR     mail.test.cn.

然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。

最后还有一些nslookup的命令比较有用:
set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息
set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址
server 192.168.0.1更换查询的DNS服务器地址。