如何在 Linux 中配置 BIND-9.2 DNS 服务器

注意:请先复制原始配置文件,然后再对其进行任何更改。

使用此方法,我们将能够将机器配置为用于正向和反向查找的主 DNS 服务器。

在开始配置之前,我们需要检查几件事:

作为解释,我使用的是 192.168.0.100(我们需要提供我们机器的 IP),所有其他约定将根据情况而有所不同。
所以一定要改变它们。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.0.100 (will vary accordingly)
# vi /etc/resolv.conf
nameserver 192.168.0.100
# vi /etc/hosts
192.168.0.100 server.example.com server 确保存在这行
# vi /etc/sysconfig/network
HOSTNAME=server.example.com

我们可以使用 yum 安装二进制包。
这些是我们将需要的包

# yum -y install bind
# yum -y install caching-nameserver

配置名称服务器所需的所有文件都安装在下面提到的位置。
这些是我们需要遵循的步骤

/usr/share/doc/bind-9.3.3/sample/

我们可以使用此命令验证已安装文件的位置

# rpm -ql bind

因此,将所有文件复制到新位置,即

# cp /usr/share/doc/bind-9.3.3/sample/etc/*  /var/named/chroot/etc/
# cp /usr/share/doc/bind-9.3.3/sample/var/named/*  /var/named/chroot/var/named/
# cp /usr/share/doc/bind-9.3.3/sample/var/named/slaves/*  /var/named/chroot/var/named/slaves/
# cp /etc/named.caching-nameserver  /var/named/chroot/etc/named.conf
# cd /var/named/chroot/etc/

现在编辑以下文件,如下所述

# vi named.conf  
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";
     query-source port 53;
     query-source-v6 port 53;
     allow-query { localhost; 192.168.0.0/24; };
};
logging {
     channel default_debug {
     file "data/named.run";
     severity dynamic;
};
};
view localhost_resolver {
     match-clients { localhost; 192.168.0.0/24; };
     match-destinations { localhost; 192.168.0.0/24; };
     recursion yes;
     include "/etc/named.rfc1912.zones";
} ;
# vi named.rfc1912.zones
#### 添加这两个zone
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update {none;};
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.zone";
allow-update{none;};
};
# cd /var/named/chroot/var/named/
# cp named.local 192.168.0.zone
# cp localhost.zone example.com.zone
# vi example.com.zone
$TTL 86400 @ IN SOA server.example.com. root.example.com. (
52 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
        IN  NS   server.example.com.
        IN  MX   10 server.example.com.
server  IN  A    192.168.0.100
www     IN  CNAME    server.example.com.
# vi 192.168.0.zone
$TTL 86400
@ IN SOA server.example.com. root.server.example.com. (
1997022703 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
    IN NS server.example.com.
100 IN PTR server.example.com.

完成所有配置后,重新启动命名服务器。

# service named restart

如果我们收到任何错误消息并且服务最终处于失败状态,请检查日志消息以进行故障排除。
我将指导我提出的一些问题以及我在配置结束时克服这些错误的方法

检查 DNS

# ping google.com
PING google.com (74.125.236.195) 56(84) bytes of data.
64 bytes from maa03s17-in-f3.1e100.net (74.125.236.195): icmp_seq=1 ttl=53 time=48.6 ms
64 bytes from maa03s17-in-f3.1e100.net (74.125.236.195): icmp_seq=2 ttl=53 time=54.1 ms
64 bytes from maa03s17-in-f3.1e100.net (74.125.236.195): icmp_seq=3 ttl=53 time=50.7 ms
64 bytes from maa03s17-in-f3.1e100.net (74.125.236.195): icmp_seq=4 ttl=53 time=50.5 ms
# dig -x 192.168.0.100
; <<>> DiG 9.3.3rc2 <<>> -x 192.168.0.100
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45439
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1,  ADDITIONAL: 1
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 86400 IN PTR server.example.com.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS server.example.com.
;; ADDITIONAL SECTION:
server.example.com. 86400 IN A 192.168.0.100
;; Query time: 1 msec
;; SERVER: 192.168.0.100#53(192.168.0.100)
;; WHEN: Thu Nov 10 07:55:59 2011
;; MSG SIZE rcvd: 107
# nslookup server.example.com
Server: 192.168.0.100
Address: 192.168.0.100#53
Name: server.example.com
Address: 192.168.0.100
日期:2020-06-02 22:16:56 来源:oir作者:oir