Linux DNS服务器BIND配置
BIND DNS 软件是在 Linux 系统上配置名称解析的最可靠且经过验证的方法之一。自 20 世纪 80 年代以来,它一直是当前使用的最流行的域名服务器 (DNS)。本文作为使用 BIND 的 Linux DNS 服务器的快速配置手册。
本文不是对 DNS 的介绍,也不是对该协议工作原理的解释。相反,我们将简单地专注于支持 www 和邮件服务的给定域/主机的自定义区域和配置文件的简单配置。按照以下说明在您自己的服务器上设置和配置 BIND DNS。
警告
在继续安装和配置 BIND 名称服务器之前,请确保 BIND DNS 服务器正是您想要的。在 Debian 或 Ubuntu 上默认设置和执行 BIND 可能需要大约 200MB 的 RAM,并且配置文件中没有添加任何区域。除非您通过各种 BIND“选项”配置设置减少 BIND 的内存使用量,否则请准备好一些备用 RAM 仅用于此服务。如果您为自己的 VPS 服务器付费,这一事实就更加重要。
在本教程中您将学习:
如何在主要 Linux 发行版上安装 BIND
如何创建 DNS 区域文件
如何配置地址到名称映射
如何检查BIND区域文件和配置
如何启动或重新启动BIND DNS服务
如何使用
dig
命令测试 BIND 配置
在 Linux 上配置和测试 BIND 名称服务器
我们的测试环境
在深入了解所有 BIND 配置之前,了解一些有关如何配置网络的背景信息会很有帮助。请参阅以下列表,了解如何将 IP 地址分配给我们网络上的各个系统。
名称服务器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
在主要 Linux 发行版上安装 BIND
安装最新版本 BIND (BIND9) 的最简单方法是使用系统的包管理器。
在 Debian 或 Ubuntu Linux 服务器上,您可以使用以下 linux 命令安装 BIND 名称服务器:
$ sudo apt install bind9 dnsutils
或者在 CentOS、Fedora、AlmaLinux 和其他基于 RHEL 的发行版上使用以下命令:
$ sudo dnf install bind dnsutils
dnsutils 软件不是运行 BIND 名称服务器的必需软件包,但我们将使用此软件包中的 dig
命令作为 BIND 配置的测试工具。
创建 DNS 区域文件
在此阶段,我们需要为 linuxconfig.org 域创建一个新的区域文件。请按照以下步骤操作。
导航到
/etc/bind/
目录,然后执行以下命令序列以导航到zones/master/
。$ cd /etc/bind $ sudo mkdir -p zones/master $ cd zones/master/
/etc/bind/zones/master
目录将包含linuxconfig.org
域名的区域文件。如果您希望使用另一个目录来保存此文件,您可以随意这样做。以下名为 db.linuxconfig.org 的区域文件将保存 DNS 记录,以协助名称服务器将完全限定的域名解析为 IP 地址。使用 nano 或您喜欢的文本编辑器创建db.linuxconfig.org
。$ sudo nano /etc/bind/zones/master/db.linuxconfig.org
然后,将以下模板粘贴到文件中:
; ; 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 区域文件中的一些行的快速回顾:
我们配置的BIND区域文件
配置地址到名称映射
在此阶段,BIND DNS 服务器可以解析映射到 linuxconfig.org 主机的 IP 地址。我们现在应该做的是以相反的方式教导我们的名称服务器,即从 IP 地址解析主机。
为此,我们将需要另一个文件,名为
db.192.168.0
。$ sudo nano /etc/bind/zones/master/db.192.168.0
在此文件中,粘贴以下内容:
; ; 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.
反向BIND记录
更新 BIND 配置文件
此时我们应该准备好两个文件:
/etc/bind/zones/master/db.linuxconfig.org
/etc/bind/zones/master/db.192.168.0
我们现在需要做的就是将两个区域文件名插入到 BIND 配置文件
named.conf.local
中。$ sudo nano /etc/bind/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 地址是由您的互联网提供商提供的。或者,您可以使用 IP 地址为8.8.8.8
或8.8.4.4
的 Google 公共 DNS 服务器。$ sudo nano /etc/bind/named.conf.options
将转发器地址(默认为 0.0.0.0)替换为 8.8.8.8 IP 地址。
forwarders { 8.8.8.8; };
告诉 BIND 我们的区域文件所在的位置
将转发地址配置为来自 ISP 或 Google 的可靠 DNS 服务器
检查 BIND 的区域文件和配置
在我们尝试使用新区域和配置启动 BIND 名称服务器之前,请检查以下一些工具,以确保我们没有犯一些拼写错误或配置错误。
要检查配置文件,请运行以下 Linux 命令:
$ sudo named-checkconf
要检查 DNS 区域文件,我们可以使用
named-checkzone
命令:$ sudo named-checkzone linuxconfig.org /etc/bind/zones/master/db.linuxconfig.org zone linuxconfig.org/IN: loaded serial 1 OK
或者,检查反向区域文件:
$ sudo 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 1 OK
测试我们的 BIND 配置是否有错误或配置错误
启动或重新启动 BIND 名称服务器
由于上述命令已经确认我们的 BIND 配置有效,因此我们可以启动 BIND 服务以使所有这些更改生效。
$ sudo systemctl start bind9
或者,如果您的 BIND 服务器已在运行,请使用以下 Linux 命令来帮助您重新启动:
$ sudo systemctl restart bind9
测试绑定服务器配置
dnsutils 包中的 dig
命令将派上用场,帮助我们测试 BIND 名称服务器的新配置。
dig
命令可以在任何可以通过网络访问您的 DNS 服务器的 PC 上使用,但您最好应该从本地主机开始测试。在我们的例子中,名称服务器的 IP 地址是192.168.135.130
。首先我们将测试主机到 IP 的解析:$ dig @192.168.135.130 www.linuxconfig.org
接下来,我们测试 IP 到主机的解析:
$ dig @192.168.135.130 -x 192.168.0.10
使用 dig 命令测试主机到 IP 解析
使用 dig 命令测试 IP 到主机解析
这里的所有都是它的。您刚刚使用 BIND 名称服务器创建并配置了自己的 DNS 区域。
结束语
在本指南中,我们学习了如何在主要 Linux 发行版上使用 BIND 名称服务器创建和配置 DNS 区域。 BIND 是一款优秀的 DNS 软件,具有悠久的可靠性。正如我们在这里所看到的,只需要进行一些配置即可使其顺利启动并运行,并进行一些测试来验证其是否正常运行。