我们的测试环境
- 域名服务器 IP 地址:192.168.135.130
- 示例域/主机:onitroad.com
- onitroad.com 区域的权威域名服务器:ns1.onitroad.com (192.168.0.10) 和 ns2.onitroad.com (192.168.0.11)
- onitroad.com 将指向的 www 和邮件服务:192.168.0.10
测试绑定服务器配置
来自 dnsutils 包的 dig
命令将派上用场,帮助我们测试 BIND 名称服务器的新配置。
dig
命令可以在任何可以通过网络访问 DNS 服务器的 PC 上使用,但最好从本地主机开始测试。在我们的例子中,我们名称服务器的 IP 地址是“192.168.135.130”。
首先,使用 dig 命令测试主机到 IP 的解析:
$dig @192.168.135.130 www.onitroad.com
- 接下来,我们测试 IP 到主机的解析:
$dig @192.168.135.130 -x 192.168.0.10
配置地址到名称映射
现在,BIND DNS 服务器可以解析映射到 onitroad.com 主机的 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.onitroad.com. admin.onitroad.com. ( 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.onitroad.com. 0.168.192.in-addr.arpa. IN NS ns2.onitroad.com. 10.0.168.192.in-addr.arpa. IN PTR onitroad.com.
PTR:用于将 IP 地址映射到主机名的 NDS 记录。
BIND DNS 软件是在 Linux 系统上配置名称解析的最可靠和经过验证的方法之一。
自 1980 年代以来一直存在,它仍然是目前使用的最受欢迎的域名服务器 (DNS)。
本文用作使用 BIND 的 Linux DNS 服务器的快速配置手册。
检查 BIND 的区域文件和配置
在我们尝试使用新区域和配置启动 BIND 名称服务器之前,这里有一些工具可以检查以确保我们没有做一些拼写错误或者配置错误。
- 要检查配置文件,请运行以下 Linux 命令:
$sudo named-checkconf
如果没有产生任何输出,则配置文件没有问题。
- 要检查 DNS 区域文件,我们可以使用
named-checkzone
命令:
$sudo named-checkzone onitroad.com /etc/bind/zones/master/db.onitroad.com zone onitroad.com/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 配置文件
此时我们应该准备好两个文件:
- /etc/bind/zones/master/db.onitroad.com
- /etc/bind/zones/master/db.192.168.0
- 我们现在需要做的就是将两个区域文件名插入到 BIND 配置文件
named.conf.local
中。
$sudo nano /etc/bind/named.conf.local
- 然后,将以下行添加到此文件中:
告诉 BIND 我们的区域文件所在的位置
zone "onitroad.com" { type master; file "/etc/bind/zones/master/db.onitroad.com"; }; 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 提供商提供。或者,我们可以使用 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; 使用Google(或者网络服务提供商)的DNS 服务器的转发地址 };
在Linux上安装 BIND
在 Debian 或者 Ubuntu Linux 服务器上,我们可以使用以下 linux 命令安装 BIND 名称服务器:
$sudo apt install bind9 dnsutils
或者在 CentOS、Fedora、AlmaLinux 和其他基于 RHEL 的发行版上使用此命令:
$sudo dnf install bind dnsutils
dnsutils 软件不是运行 BIND 名称服务器的必备软件包,但我们将使用该软件包中的 dig
命令作为 BIND 配置的测试工具。
创建 DNS 区域文件
为域 onitroad.com 创建一个新的区域文件。
- 导航到
/etc/bind/
目录,然后执行以下命令序列导航到zones/master/
。
$cd /etc/bind $sudo mkdir -p zones/master $cd zones/master/
/etc/bind/zones/master
目录将包含onitroad.com
域名的区域文件。如果我们更喜欢使用另一个目录来保存此文件,我们可以随意这样做。以下名为“db.onitroad.com”的区域文件将保存 DNS 记录,以帮助名称服务器将完全限定的域名解析为 IP 地址。使用 nano 或者我们喜欢的文本编辑器创建db.onitroad.com
。
$sudo nano /etc/bind/zones/master/db.onitroad.com
- 然后,将以下模板粘贴到文件中:
; ; BIND data file for onitroad.com ; $TTL 3h @ IN SOA ns1.onitroad.com. admin.onitroad.com. ( 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.onitroad.com. @ IN NS ns2.onitroad.com. onitroad.com. IN MX 10 mail.onitroad.com. onitroad.com. IN A 192.168.0.10 ns1 IN A 192.168.0.10 ns2 IN A 192.168.0.11 www IN CNAME onitroad.com. mail IN A 192.168.0.10 ftp IN CNAME onitroad.com.
保存更改并在完成后退出此配置文件。
SOA 记录:区域 onitroad.com 的权威名称服务器是 ns1.onitroad.com,admin.onitroad.com 是负责该 DNS 区域的人员的电子邮件地址。
NS 记录:onitroad.com 区域的两个名称服务器是 ns [1,2] .onitroad.com
MX(邮件交换):onitroad.com 邮件交换记录。数字 10 表示倾向于丢弃记录 A - A 仅表示地址,或者换句话说,在 onitroad.com 的区域中,ns1 将具有 A(地址)192.168.0.10.
CNAME Record(规范名称记录):使用规范名称而不是原始名称重新启动查询
启动或者重新启动 BIND 名称服务器
启动BIND服务,让所有这些修改生效。
$sudo systemctl start bind9
或者,如果 BIND 服务器已在运行,请使用以下 Linux 命令来重新启动:
$sudo systemctl restart bind9