介绍
管理服务器配置和基础设施的重要部分涉及通过名称查找网络接口和IP地址的方法。其中一种方法是设置正确的域名系统(DNS)。使用完全合格的域名(FQDNs)而不是IP地址来指定网络地址,可以优化服务和应用程序的配置,并增加配置文件的可维护性。为私有网络设置自己的DNS是改善服务器管理的好方法。
在本教程中,您将使用两台运行Ubuntu 22.04的服务器设置内部DNS服务器。您将使用BIND名称服务器软件(BIND9)解析私有主机名和私有IP地址。这提供了一种集中管理内部主机名和私有IP地址的方式,当您的环境扩展到多台主机时,这是不可或缺的。
先决条件
要完成本教程,您将需要以下基础设施。确保在同一启用私人网络的数据中心内创建每个服务器:
- A fresh Ubuntu 22.04 server to serve as the Primary DNS server, ns1.
- (推荐)第二台运行Ubuntu 22.04的服务器,用作辅助DNS服务器,ns2。
- 至少一个额外的服务器。本指南假定您有两个额外的服务器,它们将被称为客户端服务器。这些客户端服务器必须在您的 DNS 服务器所在的同一数据中心中创建。
在这些服务器上,按照我们的Ubuntu 22.04 初始服务器设置指南的步骤,配置一个管理sudo
用户并设置防火墙。
如果您对 DNS 概念不熟悉,我们建议您至少阅读我们的管理 DNS 简介的前三部分。
在 DigitalOcean 上,所有新创建的 Droplets 都默认放置在虚拟专用云(VPC)中。查看我们的VPC 产品文档以了解更多信息。
示例基础架构和目标
为了本文的目的,我们假设以下情况:
- 您有两台服务器,它们将被指定为您的 DNS 名称服务器。本指南将把它们称为ns1和ns2。
- 你有两个额外的客户端服务器,它们将使用你创建的 DNS 基础架构,本指南中分别称为host1和host2。你可以添加任意数量的客户端服务器。
- 所有这些服务器都存在于同一个数据中心。本教程假设该数据中心被称为
nyc3
。 - 所有这些服务器都已启用了私有网络,并且位于
10.128.0.0/16
子网上(你可能需要根据你的服务器进行调整)。 - 所有服务器都连接到一个运行在
example.com
上的项目。本指南概述了如何设置内部私有 DNS 系统,因此你可以使用任何你想要的域名,而不是example.com
。DNS 服务器始终会首先尝试在内部路由请求,这意味着它们不会尝试在公共互联网上访问给定的域。但是,使用你拥有的域名可能有助于避免与公共可路由域名发生冲突。
在考虑了这些假设之后,本指南中的示例将使用基于子域nyc3.example.com
的命名方案来引用示例私有子网或区域。因此,host1的私有全限定域名(FQDN)将为host1.nyc3.example.com
。以下表格包含本指南中示例中使用的相关细节:
Host | Role | Private FQDN | Private IP Address |
---|---|---|---|
ns1 | Primary DNS Server | ns1.nyc3.example.com |
10.128.10.11 |
ns2 | Secondary DNS Server | ns2.nyc3.example.com |
10.128.20.12 |
host1 | Generic Host 1 | host1.nyc3.example.com |
10.128.100.101 |
host2 | Generic Host 2 | host2.nyc3.example.com |
10.128.200.102 |
注意:您的设置将不同,但示例名称和IP地址将用于演示如何配置DNS服务器以提供正常运行的内部DNS。您应该能够通过使用您自己的主机名和私有IP地址替换它们来调整此设置以适应您自己的环境。在您的命名方案中,不必使用数据中心的区域名称,但我们在这里使用它来表示这些主机属于特定数据中心的私有网络。如果您在多个数据中心运行服务器,您可以在每个相应的数据中心内设置内部DNS。
通过本教程结束时,您将拥有一个主DNS服务器ns1,以及可选的辅助DNS服务器ns2,用作备份。
在您按照本教程操作时,会有一些时候您必须在此设置中的特定服务器上运行某些命令。必须在ns1上运行的任何命令都将具有蓝色背景,如下所示:
-
同样,必须在ns2上运行的任何命令都将具有红色背景:
-
而必须在客户端服务器中运行的任何命令都将具有绿色背景:
-
并且必须在多个服务器上运行的任何命令都将具有标准的深蓝色背景:
-
最后,请注意,每当命令或代码块包含像这样这样的突出显示的文本时,意味着该文本很重要。本指南中将使用此类突出显示来表示需要用您自己的设置替换的细节,或者需要修改或添加到配置文件中的突出显示文本。例如,如果示例包含类似host1.nyc3.example.com
的内容,请用您自己服务器的FQDN替换它。
让我们从在主DNS服务器ns1和次DNS服务器ns2上安装BIND开始。
步骤1 — 在DNS服务器上安装BIND
在两台DNS服务器ns1和ns2上,通过键入以下命令来更新apt
软件包缓存:
- sudo apt update
然后在每台机器上安装BIND:
- sudo apt install bind9 bind9utils bind9-doc
DigitalOcean的私有网络仅使用IPv4。如果您也是这种情况,请将BIND设置为IPv4模式。在两台服务器上,使用您喜欢的文本编辑器编辑named
默认设置文件。以下示例使用nano
:
- sudo nano /etc/default/named
在OPTIONS
参数的末尾添加-4
:
. . .
OPTIONS="-u bind -4"
完成后保存并关闭文件。如果您使用nano
编辑文件,则可以按CTRL + X
,Y
,然后ENTER
来执行此操作。
重新启动BIND以实施更改:
- sudo systemctl restart bind9
现在已安装BIND,让我们配置主DNS服务器。
步骤2 — 配置主DNS服务器
BIND的配置包括从主配置文件named.conf
中包含的多个文件。 这些文件名称以named
开头,因为这是BIND运行的进程名称(named
是“name daemon”的简称,表示“域名守护进程”)。 我们将从配置named.conf.options
文件开始。
配置选项文件
在ns1上,打开named.conf.options
文件进行编辑:
- sudo nano /etc/bind/named.conf.options
在现有的options
块上方,创建一个名为trusted
的新ACL(访问控制列表)块。在这里,您将定义允许递归DNS查询的客户端列表(即与ns1在同一数据中心的您的服务器)。将以下行添加到您信任的客户端列表中,确保将示例私有IP地址替换为您自己服务器的IP地址:
acl "trusted" {
10.128.10.11; # ns1
10.128.20.12; # ns2
10.128.100.101; # host1
10.128.200.102; # host2
};
options {
. . .
现在您已经有了受信任的DNS客户端列表,您可以编辑options
块。这是当前块的开始:
. . .
};
options {
directory "/var/cache/bind";
. . .
}
在directory
指令下方,添加突出显示的配置行(并替换适当的ns1私有IP地址):
. . .
};
options {
directory "/var/cache/bind";
recursion yes; # enables recursive queries
allow-recursion { trusted; }; # allows recursive queries from "trusted" clients
listen-on { 10.128.10.11; }; # ns1 private IP address - listen on private network only
allow-transfer { none; }; # disable zone transfers by default
forwarders {
8.8.8.8;
8.8.4.4;
};
. . .
};
注意forwarders
块,其中包括两个IP地址:8.8.8.8
和8.8.4.4
。该块定义了forwarders,这是BIND用来减少与外部域名服务器之间的流量的特殊机制。BIND还可以使用forwarders允许那些无法直接访问互联网的服务器进行查询。这可以通过减少本地网络的负载来加快对这些查询的响应速度。
该块中的两个IP地址代表Google的公共DNS解析器,但任何公共递归名称服务器的IP地址都可以在此处使用。例如,您可以使用Cloudflare的DNS服务器的IP地址(1.1.1.1
)。
当完成后,请保存并关闭named.conf.options
文件。以上配置指定只有您自己的服务器(trusted
)才能查询您的DNS服务器以获取外部域名。
接下来,您将通过配置named.conf.local
文件来指定DNS区域。
配置本地文件
在ns1上,打开named.conf.local
文件进行编辑:
- sudo nano /etc/bind/named.conf.local
除了一些注释外,该文件将为空。在这里,您将指定正向和反向区域。DNS区域指定管理和定义DNS记录的特定范围。由于本指南的示例域都在nyc3.example.com
子域中,我们将以此为正向区域。因为我们示例服务器的私有IP地址都在10.128.0.0/16
IP空间中,以下示例将设置一个反向区域,以便我们可以在该范围内定义反向查找。
使用以下行添加正向区域,将区域名称替换为您自己的名称,并在allow-transfer
指令中用次DNS服务器的私有IP地址替换:
. . .
zone "nyc3.example.com" {
type primary;
file "/etc/bind/zones/db.nyc3.example.com"; # zone file path
allow-transfer { 10.128.20.12; }; # ns2 private IP address - secondary
};
假设我们的私有子网是10.128.0.0/16
,通过以下行添加反向区域(请注意,我们的反向区域名称以128.10
开头,这是10.128
的八进制反转):
. . .
};
zone "128.10.in-addr.arpa" {
type primary;
file "/etc/bind/zones/db.10.128"; # 10.128.0.0/16 subnet
allow-transfer { 10.128.20.12; }; # ns2 private IP address - secondary
};
如果您的服务器跨越多个私有子网但位于同一数据中心,请务必为每个不同的子网指定一个额外的区域和区域文件。当您完成添加所有所需区域后,请保存并关闭named.conf.local
文件。
现在,您已经在BIND中指定了您的区域,您需要创建相应的正向和反向区域文件。
创建正向区域文件
正向区域文件是您定义正向DNS查找的DNS记录的地方。也就是说,当DNS收到一个名称查询,例如host1.nyc3.example.com
,它将在正向区域文件中查找以解析host1的相应私有IP地址。
创建存放区域文件的目录。根据named.conf.local
配置,该位置应该是/etc/bind/zones
:
- sudo mkdir /etc/bind/zones
我们将基于样本db.local
区域文件创建示例正向区域文件。使用以下命令将其复制到正确的位置:
- sudo cp /etc/bind/db.local /etc/bind/zones/db.nyc3.example.com
现在编辑您的正向区域文件:
- sudo nano /etc/bind/zones/db.nyc3.example.com
初始时,它将包含以下内容:
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost. ; delete this line
@ IN A 127.0.0.1 ; delete this line
@ IN AAAA ::1 ; delete this line
首先,您需要编辑 SOA 记录。将第一个 `localhost
` 替换为 `ns1` 的 FQDN,然后将 `root.localhost
` 替换为 `admin.nyc3.example.com
`。每次编辑区域文件时,在重新启动 `named
` 进程之前,您需要递增 `Serial
` 值。在这里,将其递增到 `3
`:
. . .
;
$TTL 604800
@ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
. . .
接下来,在文件末尾删除三条记录(SOA 记录之后)。如果不确定要删除哪几行,可以在前面的示例中找到带有注释 `delete this line
` 的标记:
在文件末尾,使用以下行添加您的名称服务器记录(用您自己的名称替换)。请注意,第二列指定这些是 `NS
` 记录:
. . .
; name servers - NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
现在,为属于此区域的主机添加 A 记录。这包括任何您想要以 `.nyc3.example.com
` 结尾的服务器(替换名称和私有 IP 地址)。使用我们的示例名称和私有 IP 地址,我们将为 `ns1`、 `ns2`、 `host1` 和 `host2` 添加 A 记录,如下所示:
. . .
; name servers - A records
ns1.nyc3.example.com. IN A 10.128.10.11
ns2.nyc3.example.com. IN A 10.128.20.12
; 10.128.0.0/16 - A records
host1.nyc3.example.com. IN A 10.128.100.101
host2.nyc3.example.com. IN A 10.128.200.102
我们的最终示例正向区域文件将包含以下内容:
$TTL 604800
@ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
; name servers - A records
ns1.nyc3.example.com. IN A 10.128.10.11
ns2.nyc3.example.com. IN A 10.128.20.12
; 10.128.0.0/16 - A records
host1.nyc3.example.com. IN A 10.128.100.101
host2.nyc3.example.com. IN A 10.128.200.102
保存并关闭 `db.nyc3.example.com
` 文件。
现在让我们转到反向区域文件。
创建反向区域文件
反向区文件是您为反向DNS查找定义DNS PTR记录的地方。也就是说,当DNS收到一个IP地址的查询,例如10.128.100.101
,它会在反向区文件中查找对应的完全限定域名,比如在这种情况下是host1.nyc3.example.com
。
在ns1上,对于在named.conf.local
文件中指定的每个反向区,创建一个反向区文件。我们将以示例db.127
区文件为基础来创建我们的示例反向区文件。BIND使用此文件存储本地环回接口的信息;127
是表示localhost(127.0.0.1
)的IP地址的第一个八位组。使用以下命令将此文件复制到适当的位置(替换目标文件名以使其与您的反向区定义匹配):
- sudo cp /etc/bind/db.127 /etc/bind/zones/db.10.128
编辑与在named.conf.local
中定义的反向区对应的反向区文件:
- sudo nano /etc/bind/zones/db.10.128
最初,文件将包含以下内容:
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost. ; delete this line
1.0.0 IN PTR localhost. ; delete this line
与正向区文件相同,您将需要编辑SOA记录并增加序列号的值:
@ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
. . .
现在删除文件末尾的两条记录(在SOA记录之后)。如果您不确定要删除哪些行,可以参考前面示例中带有delete this line
注释的行:
在文件末尾添加您的名称服务器记录,使用以下行(用您自己的名称替换)。注意,第二列指定这些是NS
记录:
. . .
; name servers - NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
然后为所有位于你正在编辑的区域文件子网的服务器添加PTR
记录。在我们的示例中,这包括所有主机,因为它们都位于10.128.0.0/16
子网上。请注意,第一列由逆序显示为服务器私有IP地址的最后两个八位组成。确保替换名称和私有IP地址以匹配你的服务器:
. . .
; PTR Records
11.10 IN PTR ns1.nyc3.example.com. ; 10.128.10.11
12.20 IN PTR ns2.nyc3.example.com. ; 10.128.20.12
101.100 IN PTR host1.nyc3.example.com. ; 10.128.100.101
102.200 IN PTR host2.nyc3.example.com. ; 10.128.200.102
你的最终示例反向区域文件将类似于以下内容:
$TTL 604800
@ IN SOA nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; name servers
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
; PTR Records
11.10 IN PTR ns1.nyc3.example.com. ; 10.128.10.11
12.20 IN PTR ns2.nyc3.example.com. ; 10.128.20.12
101.100 IN PTR host1.nyc3.example.com. ; 10.128.100.101
102.200 IN PTR host2.nyc3.example.com. ; 10.128.200.102
保存并关闭反向区域文件。如果需要添加更多反向区域文件,请重复此部分。
您已完成文件编辑,接下来您可以检查文件是否存在错误。
检查BIND配置语法
运行以下命令检查named.conf*
文件的语法:
- sudo named-checkconf
如果你的named配置文件没有语法错误,就不会有任何错误消息,并且你将返回到shell提示符。如果配置文件存在问题,请查看错误消息和配置主DNS服务器
部分,然后再次尝试运行named-checkconf
。
named-checkzone
命令可用于检查区域文件的正确性。它的第一个参数指定了一个区域名称,第二个参数指定了相应的区域文件,这两个参数都在 named.conf.local
中定义。
例如,要检查 nyc3.example.com
的正向区域配置,运行以下命令(将名称更改为匹配您的正向区域和文件):
- sudo named-checkzone nyc3.example.com /etc/bind/zones/db.nyc3.example.com
Outputzone nyc3.example.com/IN: loaded serial 3
OK
要检查 128.10.in-addr.arpa
的反向区域配置,运行以下命令(将数字更改为匹配您的反向区域和文件):
- sudo named-checkzone 128.10.in-addr.arpa /etc/bind/zones/db.10.128
当您的所有配置和区域文件都没有错误时,您将准备好重新启动 BIND 服务。
重新启动 BIND
重新启动 BIND:
- sudo systemctl restart bind9
如果您配置了 UFW 防火墙,请通过键入打开对 BIND 的访问:
- sudo ufw allow Bind9
您的主 DNS 服务器现在已设置好并准备好响应 DNS 查询。让我们继续配置辅助 DNS 服务器。
第 3 步 — 配置辅助 DNS 服务器
在大多数环境中,建议设置一个备用DNS服务器,以便在主DNS不可用时响应请求。幸运的是,配置备用DNS服务器要比设置主DNS复杂得多。
在ns2上,编辑named.conf.options
文件:
- sudo nano /etc/bind/named.conf.options
在文件顶部,添加包含所有受信任服务器私有IP地址的ACL:
acl "trusted" {
10.128.10.11; # ns1
10.128.20.12; # ns2
10.128.100.101; # host1
10.128.200.102; # host2
};
options {
. . .
在directory
指令下面,添加以下行:
. . .
recursion yes;
allow-recursion { trusted; };
listen-on { 10.128.20.12; }; # ns2 private IP address
allow-transfer { none; }; # disable zone transfers by default
forwarders {
8.8.8.8;
8.8.4.4;
};
. . .
保存并关闭named.conf.options
文件。该文件应与ns1的named.conf.options
文件相同,除了应配置为监听ns2的私有IP地址外。
现在编辑named.conf.local
文件:
- sudo nano /etc/bind/named.conf.local
定义与主DNS服务器上主区域相对应的备用区域。请注意,类型为secondary
,文件不包含路径,并且有一个primaries
指令,应将其设置为主DNS服务器的私有IP地址。如果在主DNS服务器中定义了多个反向区域,请确保在此处全部添加:
zone "nyc3.example.com" {
type secondary;
file "db.nyc3.example.com";
primaries { 10.128.10.11; }; # ns1 private IP
};
zone "128.10.in-addr.arpa" {
type secondary;
file "db.10.128";
primaries { 10.128.10.11; }; # ns1 private IP
};
现在保存并关闭named.conf.local
文件。
运行以下命令检查配置文件的有效性:
- sudo named-checkconf
如果此命令没有返回任何错误,请重新启动BIND:
- sudo systemctl restart bind9
然后通过修改UFW防火墙规则允许DNS连接到服务器:
- sudo ufw allow Bind9
随着这一步,您现在已经为私有网络名称和IP地址解析拥有了主要和次要DNS服务器。现在,您必须配置您的客户端服务器以使用您的私有DNS服务器。
步骤4 — 配置DNS客户端
在trusted
ACL中的所有服务器都能够查询您的DNS服务器之前,您必须配置每个服务器以使用ns1和ns2作为名称服务器。
假设您的客户端服务器运行的是Ubuntu,您需要找出与您的私有网络关联的设备。您可以通过使用ip address
命令查询私有子网来完成此操作。在每台客户机上运行以下命令,将突出显示的子网替换为您自己的子网:
- ip address show to 10.128.0.0/16
Output3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
altname enp0s4
altname ens4
inet 10.128.100.101/16 brd 10.128.255.255 scope global eth1
valid_lft forever preferred_lft forever
在这个例子中,私有接口是eth1
。本节中的示例将引用eth1
作为私有接口,但您应该更改这些示例以反映您自己服务器的私有接口。
在Ubuntu 22.04上,网络配置是通过Netplan进行的,Netplan是一种允许您编写标准化网络配置并将其应用于兼容后端网络软件的抽象。要配置DNS,您需要编写一个Netplan配置文件。
在/etc/netplan
中创建一个名为00-private-nameservers.yaml
的新文件:
- sudo nano /etc/netplan/00-private-nameservers.yaml
在内部,添加以下内容。 您需要修改私有网络接口,您的 ns1 和 ns2 DNS 服务器的地址,以及 DNS 区域:
注意:Netplan 使用 YAML 数据序列化格式 作为其配置文件。由于 YAML 使用缩进和空格来定义其数据结构,请确保您的定义使用一致的缩进以避免错误。
您可以使用像 YAML Lint 这样的 YAML 检查器来排查您的 YAML 文件。
network:
version: 2
ethernets:
eth1: # Private network interface
nameservers:
addresses:
- 10.128.10.11 # Private IP for ns1
- 10.132.20.12 # Private IP for ns2
search: [ nyc3.example.com ] # DNS zone
完成后保存并关闭文件。
接下来,告诉 Netplan 尝试使用新的配置文件,使用 netplan try
命令。 如果存在导致网络中断的问题,Netplan 将在超时后自动回滚更改:
- sudo netplan try
OutputWarning: Stopping systemd-networkd.service, but it can still be activated by:
systemd-networkd.socket
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 120 seconds
如果底部的倒计时正在正确更新,则新配置至少已足够功能强大,不会中断 SSH 连接。按 ENTER
接受新配置。
现在,检查系统的 DNS 解析器,以确定您的 DNS 配置是否已应用:
- sudo resolvectl status
向下滚动直到找到您的私有网络接口部分。您的 DNS 服务器的私有 IP 地址应首先列出,然后是一些回退值。您的域名应在 DNS 域
之后列出:
Output. . .
Link 3 (eth1)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 67.207.67.3
DNS Servers: 10.128.10.11 10.128.20.12 67.207.67.3 67.207.67.2
DNS Domain: nyc3.example.com
您的 Ubuntu 客户端现已配置为使用您的内部 DNS 服务器。
步骤5 — 测试客户端
使用 nslookup
测试您的客户端是否可以查询您的名称服务器。您应该能够在您配置并且在 trusted
ACL 中的所有客户端上执行此操作。
您可以从执行正向查找开始。
正向查找
要执行正向查找以检索 host1.nyc3.example.com
的 IP 地址,请运行以下命令:
- nslookup host1
查询 host1
会扩展为 host1.nyc3.example.com
,因为 search
选项设置为您的私有子域,DNS 查询将尝试在该子域上查找主机,然后再在其他地方查找。前面的命令将返回以下输出:
OutputServer: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: host1.nyc3.example.com
Address: 10.128.100.101
接下来,您可以检查反向查找。
反向查找
要测试反向查找,请使用 host1 的私有 IP 地址查询 DNS 服务器:
- nslookup 10.128.100.101
这应该返回以下输出:
Output11.10.128.10.in-addr.arpa name = host1.nyc3.example.com.
Authoritative answers can be found from:
如果所有名称和IP地址都解析为正确的值,那意味着您的区域文件已正确配置。如果收到意外值,请确保审查主DNS服务器上的区域文件(例如db.nyc3.example.com
和db.10.128
)。作为最后一步,本教程将介绍如何维护您的区域记录。
步骤6 —— 维护DNS记录
步骤6 —— 维护DNS记录
现在您拥有一个正常工作的内部DNS,需要维护您的DNS记录,以便它们准确反映您的服务器环境。
将主机添加到DNS
每当您向您的环境中添加主机(在同一数据中心),您都需要将其添加到DNS。以下是您需要采取的步骤:
主名称服务器
- 正向区域文件:为新主机添加一个
A
记录,递增Serial
的值 - 反向区域文件:为新主机添加一个
PTR
记录,递增Serial
的值 - 将新主机的私有IP地址添加到
trusted
ACL(named.conf.options
)
测试您的配置文件:
- sudo named-checkconf
- sudo named-checkzone nyc3.example.com /etc/bind/zones/db.nyc3.example.com
- sudo named-checkzone 128.10.in-addr.arpa /etc/bind/zones/db.10.128
重新加载BIND:
- sudo systemctl reload bind9
现在应该为新主机配置主服务器。
次要名称服务器
- 将新主机的私有IP地址添加到
trusted
ACL(named.conf.options
)
检查配置语法:
- sudo named-checkconf
然后重新加载BIND:
- sudo systemctl reload bind9
您的次要服务器现在将接受来自新主机的连接。
配置新主机以使用您的DNS
- 配置
/etc/resolv.conf
以使用您的DNS服务器 - 使用
nslookup
进行测试
从DNS中删除主机
如果您要从环境中删除主机或只想将其从DNS中删除,请删除在将服务器添加到DNS时添加的所有内容(即上述步骤的反向操作)。
结论
现在,您可以通过名称引用服务器的专用网络接口,而不是通过 IP 地址。这样做可以使配置服务和应用程序更加简单,因为您不再需要记住专用 IP 地址,文件将更易于阅读和理解。此外,现在您可以更改配置以指向新的服务器,只需在一个地方更改主 DNS 服务器,而不必编辑各种分布式配置文件,这有助于优化维护。
一旦您设置好内部 DNS,并且配置文件使用私有 FQDN 指定网络连接,那么确保您的 DNS 服务器得到正确维护就变得至关重要。如果它们都变得不可用,依赖于它们的服务和应用程序将无法正常运行。这就是为什么建议至少设置一个辅助 DNS 服务器,并维护它们的所有工作备份。
如果您想了解更多关于 DNS 的信息,我们鼓励您查阅我们的文章《DNS 术语、组件和概念简介》。