本文是使用绑定的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映射
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
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;
};
检查绑定的区域文件和配置
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区域。