当前位置: 首页>>技术教程>>正文


Linux DNS服务器BIND配置

, ,

本文是使用绑定的Linux DNS服务器的快速配置手册。我相信绑定不需要太多介绍,但是在继续进行绑定名称服务器的安装和配置之前,请确保绑定DNS服务器正是您想要的。在Debian或Ubuntu上,默认设置和执行bind可能需要大约200MB的RAM,并且没有在配置文件中添加区域。除非您通过各种绑定”options”配置设置来减少绑定的内存使用量,否则请准备好一些备用RAM用于此服务。如果您购买自己的VPS服务器,这一事实就显得尤为重要。

在Linux系统上可用的另一个DNS名称服务器是NSD(名称服务器守护程序)或djbdns(tinydns)。两者都是bind9 DNS服务器的轻量级替代方案,并且具有较少的RAM需求。显然更快。
在本文中,我们不会详细介绍什么是域名服务(DNS)以及DNS的工作方式。相反,我们仅专注于为支持www,邮件服务的给定域/主机的自定义区域和配置文件的简单配置。

示例方案说明可帮助您准备此DNS绑定方法:

  • 名称服务器IP地址192.168.135.130
  • 示例域/主机:linuxconfig.org
  • linuxconfig.org区域的权威名称服务器:ns1.linuxconfig.org(192.168.0.10)和ns2.linuxconfig.org(192.168.0.11)
  • linuxconfig.org的www和邮件服务将指向:192.168.0.10



bind9名称服务器安装

除非您更喜欢从源代码安装绑定,否则安装非常简单。在Debian或Ubuntu Linux服务器上,您可以使用以下命令安装绑定名称服务器linux命令

apt-get install bind9 dnsutils

CentOS或Fedora替代品:

yum install bind dnsutils

dnsutils不是运行绑定Web服务器的强制软件包,但是我们将使用dig命令(该软件包的一部分)作为绑定配置的测试工具。

创建一个DNS区域文件

在这一阶段,我们将需要为linuxconfig.org域创建一个新的区域文件。导航到/etc /bind /目录,执行以下命令序列以导航到zone /master /

cd /etc/bind
mkdir -p zones/master
cd zones/master/

/etc /bind /zones /master目录将包含linuxconfig.org域的区域文件。如果您更喜欢使用另一个目录来保存此文件,则可以这样做。以下区域文件db.linuxconfig.org将保存DNS记录,以帮助名称服务器将完全限定的域名解析为IP地址。创建并保存具有以下内容:

;
; BIND data file for linuxconfig.org
;
$TTL    3h
@       IN      SOA     ns1.linuxconfig.org. admin.linuxconfig.org. (
                          1        ; Serial
                          3h       ; Refresh after 3 hours
                          1h       ; Retry after 1 hour
                          1w       ; Expire after 1 week
                          1h )     ; Negative caching TTL of 1 day
;
@       IN      NS      ns1.linuxconfig.org.
@       IN      NS      ns2.linuxconfig.org.


linuxconfig.org.    IN      MX      10      mail.linuxconfig.org.
linuxconfig.org.    IN      A       192.168.0.10
ns1                     IN      A       192.168.0.10
ns2                     IN      A       192.168.0.11
www                     IN      CNAME   linuxconfig.org.
mail                    IN      A       192.168.0.10
ftp                     IN      CNAME   linuxconfig.org.

这只是上述绑定DNS区域文件中某些行的快速回顾:



  • SOA记录:区域linuxconfig.org的权威名称服务器是ns1.linuxconfig.org,而admin.linuxconfig.org是负责此DNS区域的人员的电子邮件地址。
  • NS记录:linuxconfig.org区域的两个名称服务器是ns [1,2] .linuxconfig.org
  • MX(邮件交换):linuxconfig.org邮件交换记录。数字10表示优先分配记录A:A仅表示地址在linuxconfig.org的区域中,即ns1将具有一个A(地址)192.168.0.10。
  • CNAME记录(规范名称记录):使用规范名称而不是原始名称重新启动查询

address-to-name映射

在此阶段,绑定DNS服务器可以解析映射到linuxconfig.org主机的IP地址。我们现在应该做的是教会我们的域名服务器另一种方法,即从IP地址解析主机。为此,我们将需要另一个文件,那就是db.192.168.0具有以下内容:

PTR

;
; BIND reverse data file for 0.168.192.in-addr.arpa
;
$TTL    604800
0.168.192.in-addr.arpa.      IN      SOA     ns1.linuxconfig.org. admin.linuxconfig.org. (
                          1         ; Serial
                          3h       ; Refresh after 3 hours
                          1h       ; Retry after 1 hour
                          1w       ; Expire after 1 week
                          1h )     ; Negative caching TTL of 1 day
;
0.168.192.in-addr.arpa.       IN      NS      ns1.linuxconfig.org.
0.168.192.in-addr.arpa.       IN      NS      ns2.linuxconfig.org.

10.0.168.192.in-addr.arpa.   IN      PTR     linuxconfig.org.
  • PTR:NDS记录,用于IP地址到主机名的映射。

更新BIND配置文件

此时,我们应该准备两个文件:
  • /etc/bind/zones/master/db.linuxconfig.org
  • /etc/bind/zones/master/db.192.168.0
我们现在要做的就是将两个区域文件名都插入到绑定的配置文件中named.conf.local。要做到这一点在此文件中添加以下行:
zone "linuxconfig.org" {
       type master;
       file "/etc/bind/zones/master/db.linuxconfig.org";
};

zone "0.168.192.in-addr.arpa" {
       type master;
       file "/etc/bind/zones/master/db.192.168.0";
};



在继续检查配置之前,最后一件事是将稳定DNS服务器的IP地址添加到named.conf.options文件中。如果本地DNS服务器不知道答案,则使用此IP地址进行名称解析查询。在很多情况下,DNS服务器的IP地址是由Internet提供商提供的。或者,如果您是Google粉丝,请使用8.8.8.8或8.8.4.4。

将以下文本博客替换为named.conf.options文件:

       // forwarders {
       //      0.0.0.0;
       // };

具有新的稳定DNS服务器IP地址

        forwarders {
              8.8.4.4;
         };

检查绑定的区域文件和配置

在尝试启动具有新区域和配置的绑定名称服务器之前,这里有一些工具可以检查我们是否做过错字或配置错误。
要检查配置文件,请运行以下命令linux命令
named-checkconf

使用此named-checkconf命令,规则是:没有新闻就是好消息。如果未产生任何输出,则您的配置文件看起来不错。

要检查DNS区域文件,我们可以使用named-checkzone命令:

named-checkzone linuxconfig.org /etc/bind/zones/master/db.linuxconfig.org
zone linuxconfig.org/IN: loaded serial 1
OK

反向区域文件检查:

named-checkzone 0.168.192.in-addr.arpa /etc/bind/zones/master/db.192.168.0
zone 0.168.192.in-addr.arpa/IN: loaded serial 2
OK

启动/重新启动绑定名称服务器

在这一点上,没有什么可以阻止我们运行bind9 dns服务器:

 /etc/init.d/bind9 start
Starting domain name service...: bind9.

或者,如果您的绑定服务器已经在运行,请使用以下命令linux命令以帮助您重新启动:

/etc/init.d/bind9 restart
Stopping domain name service...: bind9.
Starting domain name service...: bind9.



测试绑定服务器配置

来自dnsutils软件包的dig命令将很方便,以帮助我们测试绑定名称服务器的新配置。

dig命令可以在任何具有网络访问您的DNS服务器的PC上使用,但最好您应该从本地主机开始测试。在这种情况下,我们名称服务器的IP地址为192.168.135.130。首先,我们将测试host-to-IP分辨率:

dig @192.168.135.130 www.linuxconfig.org

; <<>> DiG 9.6-ESV-R1 <<>> @192.168.135.130 www.linuxconfig.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60863
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.linuxconfig.org.           IN      A

;; ANSWER SECTION:
www.linuxconfig.org.    10800   IN      CNAME   linuxconfig.org.
linuxconfig.org.        10800   IN      A       192.168.0.10

;; AUTHORITY SECTION:
linuxconfig.org.        10800   IN      NS      ns2.linuxconfig.org.
linuxconfig.org.        10800   IN      NS      ns1.linuxconfig.org.

;; ADDITIONAL SECTION:
ns1.linuxconfig.org.    10800   IN      A       192.168.0.10
ns2.linuxconfig.org.    10800   IN      A       192.168.0.11

;; Query time: 0 msec
;; SERVER: 192.168.135.130#53(192.168.135.130)
;; WHEN: Thu Aug  5 18:50:48 2010
;; MSG SIZE  rcvd: 135

接下来,我们测试IP-to-host分辨率:

dig @192.168.135.130 -x 192.168.0.10

; <<>> DiG 9.6-ESV-R1 <<>> @192.168.135.130 -x 192.168.0.10
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10810
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;10.0.168.192.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
10.0.168.192.in-addr.arpa. 604800 IN    PTR     linuxconfig.org.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 604800  IN      NS      ns2.linuxconfig.org.
0.168.192.in-addr.arpa. 604800  IN      NS      ns1.linuxconfig.org.

;; ADDITIONAL SECTION:
ns1.linuxconfig.org.    10800   IN      A       192.168.0.10
ns2.linuxconfig.org.    10800   IN      A       192.168.0.11

;; Query time: 0 msec
;; SERVER: 192.168.135.130#53(192.168.135.130)
;; WHEN: Thu Aug  5 18:52:06 2010
;; MSG SIZE  rcvd: 140

恭喜你您刚刚使用绑定名称服务器创建并配置了自己的DNS区域。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8483.html,未经允许,请勿转载。