在本教程中,我们将向您展示如何在 Ubuntu 上安装 BIND9 主从 DNS 服务器。 BIND 是一个广泛使用的 DNS 服务器。 理想情况下,DNS 服务器由两台同时工作的机器组成,一台作为主机,另一台作为从机。 如果您的域注册商没有为您提供免费的 DNS 服务器,或者您想要创建自定义 DNS 记录,那么您可能需要托管自己的 DNS 服务器。
在本教程中,我们将介绍如何配置 BIND9 主从 DNS 服务器。 两台服务器都将使用 Ubuntu 操作系统。 我们将开始配置主服务器,然后是从服务器。
先决条件
- 运行以下操作系统之一的服务器:Ubuntu 和任何其他基于 Debian 的发行版,如 Linux Mint。
- 建议您使用全新的操作系统安装来防止任何潜在问题。
- 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
- 一种
non-root sudo user
或访问root user
. 我们建议充当non-root sudo user
,但是,如果您在充当 root 时不小心,可能会损害您的系统。
在 Ubuntu 上安装 BIND9 主从 DNS 服务器
以下是服务器的示例数据:
Server1(主)IP地址:108.100.100.1
Server2(从)IP地址:108.100.100.2
域名:idroot.us
此域将托管在此服务器上:172.217.194.94
在大师
第1步。 更新 ubuntu 存储库并使用 apt-get 安装 Bind。
apt-get update apt-get install bind9
第2步。 配置绑定选项
*)do this if you haven't installed nano text editor: apt-get install nano nano /etc/bind/named.conf.options
options { directory "/var/cache/bind"; additional-from-auth no; additional-from-cache no; version "Bind Server"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See https://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. forwarders { 8.8.8.8; 8.8.4.4; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; allow-recursion { 127.0.0.1; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };
步骤 3。 存储域名和区域文件设置
nano /etc/bind/named.conf.local
//place these lines at the bottom of file zone "idroot.us" { type master; file "/etc/bind/zones/idroot.us.db"; allow-transfer { 108.200.200.2; }; also-notify { 108.200.200.200.2; }; };
第4步。 因为在上面的配置中,我们将区域文件放在“/etc/bind/zones/idroot.us.d
b”,然后我们需要创建文件夹和文件
mkdir /etc/bind/zones nano /etc/bind/zones/idroot.us.db
$TTL 86400 $ORIGIN idroot.us. @ IN SOA ns1.idroot.us. root.idroot.us. ( 1 ; Serial 86400 ; Refresh 7200 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.idroot.us. @ IN NS ns2.idroot.us. ns1 IN A 108.100.100.1 ns2 IN A 108.100.100.2 ;also list other computers @ IN A 172.217.194.94 www IN A 172.217.194.94
步骤 5。 (master上的最后一步)重启bind9 DNS服务
service bind9 restart
在奴隶
重复步骤 1-2 类似于 master。
步骤 3。 配置从属绑定选项
nano /etc/bind/named.conf.options
zone "idroot.us" { type slave; file "/var/cache/bind/idroot.us.db"; masters {108.100.100.1;}; };
请注意此配置文件与 master 的区别。
第4步。 重启bind9服务。
service bind9 restart
接下来做什么?
在您更改域的名称服务器之前,此 DNS 服务器将无法工作。 可以从您域的注册商网站完成。 在这种情况下,我们将名称服务器更改为:
ns1.idroot.us
ns2.idroot.us
测试 BIND
此测试可以在 DNS 服务器本身或从另一台服务器或从您自己的 PC 上完成。 在这种情况下,我们将从另一台运行 Ubuntu OS 的服务器上进行测试。
第1步。安装 dnsutils
sudo apt-get install dnsutils
第2步。 做 dig DNS 测试
dig idroot.us
步骤 3。 做 nslookup dns 测试
nslookup idroot.us