ubuntu下Bind9安装配置指南

发布时间:2020-07-26编辑:脚本学堂
本指南是写给那些想学习如何配置和维护DNS服务器的人,例如为某个网络或者DNS zones(DNS域)提供 Domain Name(域名)服务。

本指南是写给那些想学习如何配置和维护DNS服务器的人,例如为某个网络或者DNS zones(DNS域)提供 Domain Name(域名)服务。

软件库
BIND9 已经包含在 Ubuntu 核心库中,BIND9 并不需要启用其它附加库。
在我们开始之前,您应该熟悉 Root Sudo。

安装 BIND9服务器
$ sudo apt-get install bind9

有用的工具(测试用)
$ sudo apt-get install bind9-host dnsutils

文档(可选)
$ sudo apt-get install bind9-doc

BIND9 可以安装配置成许多类型。

最常用的配置有:

Caching Server(缓冲服务器)
这对于宽带连接的主机或小网络来说是有用的。通过缓冲 DNS 队列,您可以减少带宽的消耗,或者说有望减少您带宽的使用(甚至有望减少您宽带费用)。

Master Server(主服务器)
BIND9 可以用于为已注册或虚拟的(仅用于受限网络中)域名提供 DNS 记录(指向域的记录组)。

Slave Server(从服务器)
从服务器用于提供一个在主服务器中配置域的完整备份。如果您想要支持一个注册的域名,建议将从服务器用在较大的机构(较大的网络或在因特网上)。因为这样做可以确保您的 DNS 域甚至在您主服务器没有在线的情况下依然可用。

Hybrids(混和模式)
您甚至可以将 BIND9 同时配置成一个缓冲和主服务器,一个缓冲服务器和一个从服务器,甚至是一个缓冲、主、从服务器。而所有这一切只需将本文档中不同配置简单的合并在一起就可以了。

Stealth Servers(私密服务器)

还有另外两种常用的 DNS 服务器的安装(使用注册域名运行):私有主服务器私有从服务器。它们的作用与主、从 DNS 服务是相同的,但在组织结构上有所不同。
例如,您有3个DNS服务器:A、B 和 C。
A 是主服务器,B和C是从服务器。
如果您将 A 和 B 配置成您的域 DNS 服务器,然后 C 是一个私密从服务器。它也是个从服务器,但您为互联网提供服务的 A 和 B 不会去询问其中的域。
如果您将 B 和 C 配置成您的域 DNS 服务器,然后 A 是一个私密主服务器。任何附加的记录或对区域的编辑都做在 A 上,但在互联网上的计算机只会询问 B 和 C 中的域。
DNS Record Types(DNS 记录类型)

DNS 记录类型是有很多不同的,但对于阅读本文档的人来说,您只需要处理以下这些记录类型。

Address Records(地址记录)最常用的记录类型
www      IN    A      1.2.3.4

alias Records(别名记录
常用于为一个已有的 A 记录创建别名。您不能创建一个CNAME记录指向另一个CNAME记录。
mail     IN    CNAME  www
www      IN    A      1.2.3.4

Mail Exchange Records(邮件交换记录
常用于定义邮件发往何处。必须指向一个 A 记录,不能是 CNAME。
IN    MX      mail.example.com.
[...]
mail    IN    A       1.2.3.4

Name Server Records(域名服务器记录
常用于定义哪个服务器提供该区域的拷贝。它必须指向一个 A 记录,不能是 CNAME。

这是定义主、从服务器的地方。私密服务器被有意省略。
IN    NS     ns.example.com.
[...]
ns      IN    A      1.2.3.4

(配置 BIND9)
BIND9 配置文件被保存在
/etc/bind/

主配置文件被保存在下列文件中
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local

Caching Server(缓冲服务器)
缺省状态下默认是当作缓冲服务器来配置安装的。
所有的要求只是简单的添加您ISP的DNS 服务器的 IP 而已。

只需反注释并编辑下列内容:
named.conf.options:
[...]

forwarders {
1.2.3.4;
5.6.7.8;
};

[...]

(其中 1.2.3.4 和 5.6.7.8 是您 ISP 商 DNS 服务器的 IP。

Master Server(主服务器)

要添加 DNS 域到 BIND9,让 BIND9 成为主服务器,您只需如下所示:
named.conf.local:

[...]

zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

[...]

现在使用一个已有域文件作为模板
$ sudo cp /etc/bind/db.local /etc/bind/db.example.com

现在,编辑我们的域
db.example.com:
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
1         ; Serial
604800         ; Refresh
86400         ; Retry
2419200         ; Expire
604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       127.0.0.1

编辑 localhost. 指向您服务器的 FQDN,在其后有一个附加的 "."。

例如:
 

复制代码 代码如下:

db.example.com:

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     box.example.com. root.localhost. (
1         ; Serial
604800         ; Refresh
86400         ; Retry
2419200         ; Expire
604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       127.0.0.1

编辑 root.localhost 指向你的邮件地址,不过要用 "." 代替 "@",另一个 "." 放在末尾。

例如:
jbxue123@abc.com 将使用 jbxue123.abc.com. 的形式添加。

增加序列号(您必须在您每次对域文件做更改并通过重启 BIND9 重新引导域时增加您的序列号。如果您在重启 BIND9 之前做了多处改变,只需增加一次序列号即可)。

技巧:许多人喜欢使用最新的日期作为域的序列号,例如以 yyyymmddss 的形式 2005010100 。

现在,您可以将 DNS 记录添加在域的底部。记住在您添加条目之后要增加序列号。