首页 > 代码库 > RedHat6.3配置DNS服务器

RedHat6.3配置DNS服务器

RedHat6.3配置DNS服务器 

 作者:沈小然

北京证联支付有限责任公司

 

1         系统环境

OSRed Hat Enterprise Linux Server release 6.3 (Santiago)

DNS 服务器:172.21.20.1/255.255.0.0

2         安装DNS

# yum -y install bind

3         配置DNS

3.1           开始配置DNS主配置文件 named.conf

编辑 /etc/named.conf 配置文件,添加一个域

options {

    listen-on port 53 { 172.21.20.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";

    allow-query     { localhost; };

    recursion yes;

 

    dnssec-enable yes;

    dnssec-validation yes;

    dnssec-lookaside auto;

 

    /* Path to ISC DLV key */

    bindkeys-file "/etc/named.iscdlv.key";

 

    managed-keys-directory "/var/named/dynamic";

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

    type hint;

    file "named.ca";

};

 

zone "aaa.com" IN {

    type master;   #master表示主域名服务器

    file "aaa.com.zone";   #解析aaa.com域记录的文件名

    allow-update { none; };

};

 

zone "20.21.172.in-addr.arpa" {

    type master;

    file "20.21.172.ptr";

    allow-update { none; };

};

 

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

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

3.2           配置域的正向解析文件

根据上面DNS主配置文件的配置,正向解析文件位置在 /var/named目录下

利用bind提供的模版文件我们创建aaa.com.zone,提供了两个模版文件

l  正向解析模版named.localhost

l  反向解析模版named.loopback

# cp named.localhost aaa.com.zone

编辑/var/named/aaa.com.zone文件

$TTL 1D

@   IN SOA  dns.aaa.com.    root.aaa.com. (

                    0   ; serial

                    1D  ; refresh

                    1H  ; retry

                    1W  ; expire

                    3H )    ; minimum

@   IN  NS  dns.aaa.com.

dns IN  A   172.21.20.1

www IN  A   172.21.20.1

test IN A   172.21.20.1

注意:这里用的都是全域名,后面都有一个 . 符号。

3.3           配置域的反向解析文件

# cp named.loopback 20.21.172.ptr

编辑 /var/named/20.21.172.ptr文件

$TTL 1D

@       IN SOA  dns.aaa.com.    root.aaa.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@       IN      NS      dns.aaa.com.

1       IN      PTR     dns.aaa.com.

1       IN      PTR     www.aaa.com.

 

3.4           确保/var/named目录下所有dns记录文件属组为named

# ll

total 36

-rw-r----- 1 root  named  176 Aug 14 12:01 20.21.172.ptr

-rw-r----- 1 root  named  218 Aug 14 10:57 aaa.com.zone

说明:只要保证属组是named就可以了,属主是rootnamed不影响。

重启DNS服务

# /etc/init.d/named restart

Stopping named: .[  OK  ]

Starting named: [  OK  ]

设置开机自动启动

# chkconfig named on

4         测试

# vi /etc/resolv.conf

nameserver 172.21.20.1

# ping www.aaa.com

PING www.aaa.com (172.21.20.1) 56(84) bytes of data.

64 bytes from localhost (172.21.20.1): icmp_seq=1 ttl=64 time=0.016 ms

64 bytes from localhost (172.21.20.1): icmp_seq=2 ttl=64 time=0.021 ms

结果返回172.21.20.1地址说明我们本地的DNS服务可以正常解析了。

# ping www.baidu.com

PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.

64 bytes from 119.75.217.56: icmp_seq=1 ttl=51 time=4.61 ms

64 bytes from 119.75.217.56: icmp_seq=2 ttl=51 time=4.04 ms

也可以代解析互联网其他服务器

4.1           测试正向解析

# nslookup

> www.aaa.com

Server:         172.21.20.1

Address:        172.21.20.1#53

 

Name:   www.aaa.com

Address: 172.21.20.1

4.2           测试反向解析

# nslookup

> 172.21.20.1

Server:         172.21.20.1

Address:        172.21.20.1#53

 

1.20.21.172.in-addr.arpa        name = dns.aaa.com.

5         案例1:公司内网DNS服务器添加解析互联网域名的记录

需求:

公司内部服务器需要一台内网的DNS服务器,用来帮助解析互联网的域名。

原理:

互联网的域名管理都是由各自的NS记录指向的DNS服务器管理的。我们不能直接在内网DNS服务器上添加A记录,我们必须添加这些域名的NS记录,这样每当内网客户机通过内网的DNS查询时,内网DNS首先去找管理这些域名的DNS询问对应的IP地址,然后在返回给客户机。

5.1           DNS正向解析常见记录样例

[domain]    IN  [RR type]        [RR data]

主机名称.   IN  A           IPv4 IP 位址

主机名称.   IN  AAAA       IPv6 IP 位址

领域名称.   IN  NS       管理这个域名的DNS服务器主机名字. (例如cns2.icbc.com.cn.

领域名称.   IN  SOA      管理這個领域名称的起始授权的DNS名字.

领域名称.   IN  MX  优先级  邮件服务器的主机名字.

主机别名.   IN  CNAME   实际代表这个主机别名的主机名字.

5.2           如何获得互联网域名由哪台DNS服务器提供解析

举例说明,我们想知道中国银行域名 www.boc.cn 由哪个DNS服务提供,我们需要查询这个域名所在的NS记录。查询的时候,我们得输入全域名即 www.boc.cn才行。使用下面的命令查询

# dig -t ns www.boc.cn

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> -t ns www.boc.cn

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4595

;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;www.boc.cn.                    IN      NS

;; AUTHORITY SECTION:

boc.cn.                 3551    IN      SOA     ns3.boc.cn. hostmaster.ns3.boc.cn. 2013081996 10800 3600 604800 86400

;; Query time: 0 msec

;; SERVER: 172.21.20.1#53(172.21.20.1)

;; WHEN: Thu Aug 14 16:40:33 2014

;; MSG SIZE  rcvd: 79

说明:我们查到www.boc.cn域名的SOA记录是 ns3.boc.cn,这个就是提供www.boc.cn解析的主DNS服务器的名字。

5.3           配置内网DNS

1.       编辑/etc/named.conf,添加一个ns.com

 

zone "ns.com" IN {

    type master;

    file "ns.com.zone";

    allow-update { none; };

};

 

2.       编辑 /var/named/ns.com.zone文件,添加不同域名的NS记录

$TTL 1D

@   IN SOA  dns.ns.com. root.ns.com. (

                    0   ; serial

                    1D  ; refresh

                    1H  ; retry

                    1W  ; expire

                    3H )    ; minimum

@   IN  NS  dns.ns.com.

dns IN  A   172.21.20.1

www.95599.cn    IN  NS  ns1.shdc.95599.cn.

corporbank.icbc.com.cn  IN  NS  cns2.icbc.com.cn.

ebspay.boc.cn   IN  NS  ns3.boc.cn.

www.cebbank.com IN  NS  dns3.cebbank.com.

unionpaysecure.com  IN  NS  ns1.dnsv5.com.

bjportal.zqpay.com  IN  NS  dns17.hichina.com.

www.boc.cn  IN  NS  ns3.boc.cn.

配置好后,不需要重启named服务即可生效。

5.4           测试

# vi /etc/resolv.conf

nameserver 172.21.20.1

# ping www.95599.cn

PING www.shdc.95599.cn (124.74.251.240) 56(84) bytes of data.

64 bytes from 124.74.251.240: icmp_seq=1 ttl=239 time=25.2 ms

64 bytes from 124.74.251.240: icmp_seq=2 ttl=239 time=25.5 ms

表示可以成功解析。

6         FAQ

6.1           反向解析时,提示“server can‘t find xxxx: SERVFAIL”错误,如何处理?

现象如下所示:

# nslookup

> 172.21.20.1

Server:         172.21.20.1

Address:        172.21.20.1#53

 

** server can‘t find 1.20.21.172.in-addr.arpa: SERVFAIL

分析:首先我们查看named.conf文件是否配置正确。然后检查 /var/named/目录下是否存在反向解析文件。最后检查/var/named目录下的解析文件的属组是否是named,如果不是namedDNS服务是没有权限读取这个文件的,也会提示can’t find 的错误。

解决:果然是因为该文件的属组不是named导致的问题。

6.2           客户机使用DNS无法解析

客户机配置了/etc/resolv.conf文件,但是却无法提供解析

# cat /etc/resolv.conf

nameserver 172.21.20.1

现象:解析测试失败,内容如下

# nslookup

> www.sina.com

Server:         172.21.20.1

Address:        172.21.20.1#53

** server can‘t find www.sina.com: REFUSED

分析:查看DNSmessages日志,显示如下:

Aug 18 11:29:31 Monitor named[9161]: client 172.21.20.2#36810: query (cache) ‘quit/A/IN‘ denied

估计是DNS配置了某种解析限制,查看/etc/named.conf文件,修改下面的部分

options {

    listen-on port 53 { 172.21.20.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";

    allow-query     { localhost; }; 改成 allow-query     { any; };

    recursion yes;

 

    dnssec-enable yes;

    dnssec-validation yes;

    dnssec-lookaside auto;

 

    /* Path to ISC DLV key */

    bindkeys-file "/etc/named.iscdlv.key";

 

    managed-keys-directory "/var/named/dynamic";

};

重启BIND服务

# /etc/init.d/named restart

Stopping named: .[  OK  ]

Starting named: [  OK  ]

再次测试客户机的解析,一切正常了。

# nslookup

> www.sina.com

Server:         172.21.20.1

Address:        172.21.20.1#53

Non-authoritative answer:

www.sina.com    canonical name = us.sina.com.cn.

us.sina.com.cn  canonical name = wwwus.sina.com.

Name:   wwwus.sina.com

Address: 12.130.132.30