介绍
管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。 使用完全限定的域名(FQDN)而不是IP地址来指定网络地址可以简化服务和应用程序的配置,并提高配置文件的可维护性。 为您的专用网络设置自己的DNS是改善服务器管理的好方法。
在本教程中,我们将讨论如何使用Debian 9上的BINDNameservers软件(BIND9)设置内部DNS服务器,服务器可以使用该软件来解析专用主机名和专用IP地址。 这提供了一种管理内部主机名和私有IP地址的核心方法,当您的环境扩展到多个主机时,这是必不可少的。
先决条件
要完成本教程,您需要以下基础结构。 在 启用了专用网络 的同一数据中心中创建每个服务器:
- 一个新的Debian 9服务器,用作主 DNS服务器, ns1
- (推荐)第二个Debian 9服务器用作辅助DNS服务器ns2
- 将使用DNS服务器的同一数据中心中的其他服务器
在每台服务器上,按照我们的Debian 9初始服务器设置指南,通过sudo
用户和防火墙配置管理访问权限。
如果您不熟悉DNS概念,建议您至少阅读“ 管理DNS简介”的前三部分。
基础设施和目标示例
出于本文的目的,我们将假设以下内容:
- 我们有两台服务器将被指定为我们的DNSNameservers。 我们将在本指南中将它们称为ns1和ns2 。
- 我们有两个额外的客户端服务器将使用我们创建的DNS基础结构。 我们将在本指南中将这些称为host1和host2 。 您可以为基础架构添加任意数量的内容。
- 所有这些服务器都存在于同一数据中心中。 我们假设这是nyc3数据中心。
- 所有这些服务器都启用了专用网络(并且位于
10.128.0.0/16
子网上。您可能需要为服务器调整此设置)。 - 所有服务器都连接到在“example.com”上运行的项目。 由于我们的DNS系统完全是内部和私有的,因此您无需购买域名。 但是,使用您拥有的域可能有助于避免与可公共路由域发生冲突。
根据这些假设,我们认为使用使用“nyc3.example.com”的命名方案来引用我们的私有子网或区域是有意义的。 因此, host1的私有完全限定域名(FQDN)将为host1.nyc3.example.com 。 请参阅下表中的相关详细信息:
主办 | 角色 | 私人FQDN | 私有IP地址 |
---|---|---|---|
NS1 | 主DNS服务器 | ns1.nyc3.example.com | 10.128.10.11 |
NS2 | 辅助DNS服务器 | ns2.nyc3.example.com | 10.128.20.12 |
主机1 | 通用主机1 | host1.nyc3.example.com | 10.128.100.101 |
主机2 | 通用主机2 | host2.nyc3.example.com | 10.128.200.102 |
在本教程结束时,我们将有一个主DNS服务器ns1 ,以及可选的辅助DNS服务器ns2 ,它将用作备份。
让我们开始安装我们的主DNS服务器ns1。
在DNS服务器上安装BIND
host1.nyc3.example.com
,请将其替换为您自己的服务器的FQDN。
同样,如果您看到host1_private_IP
,请将其替换为您自己服务器的专用IP地址。
在两个DNS服务器ns1和ns2上 ,键入以下内容来更新apt
包缓存:
sudo apt update
现在安装BIND:
sudo apt install bind9 bind9utils bind9-doc
设置绑定到IPv4模式
在继续之前,让我们将BIND设置为IPv4模式,因为我们的专用网络专门使用IPv4。 在两台服务器上,键入以下命令编辑bind9
默认设置文件:
sudo nano /etc/default/bind9
在OPTIONS
参数的末尾添加“-4”。 它应该如下所示:
. . .
OPTIONS="-u bind -4"
完成后保存并关闭文件。
重新启动BIND以实现更改:
sudo systemctl restart bind9
现在已经安装了BIND,让我们配置主DNS服务器。
配置主DNS服务器
BIND的配置由多个文件组成,这些文件包含在主配置文件named.conf
。 这些文件名以named
开头,因为这是BIND运行的进程的名称(“域名守护程序”的缩写)。 我们将从配置选项文件开始。
配置选项文件
在ns1上 ,打开named.conf.options
文件进行编辑:
sudo nano /etc/bind/named.conf.options
在现有options
块上方,创建一个名为“trusted”的新 ACL(访问控制列表)块。 这是我们将定义客户列表的地方,我们将允许递归DNS查询(即与ns1位于同一数据中心的服务器)。 使用我们的示例私有IP地址,我们将ns1 , ns2 , host1和host2添加到可信客户端列表中:
acl "trusted" {
10.128.10.11; # ns1 - can be set to localhost
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 resursive 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;
};
. . .
};
完成后,保存并关闭named.conf.options
文件。 上述配置指定只有您自己的服务器(“可信”服务器)才能在DNS服务器中查询外部域。
接下来,我们将配置本地文件,以指定我们的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 master;
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 master;
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记录。 用ns1的FQDN替换第一个“localhost”,然后将“root.localhost”替换为“admin.nyc3.example.com”。 每次编辑区域文件时,都需要在重新启动named
进程之前增加序列值。 我们将它增加到“3”。 现在应该看起来像这样:
@ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
. . .
接下来,删除文件末尾的三条记录(在SOA记录之后)。 如果您不确定要删除哪些行,则会在上面标记“删除此行”注释。
在文件末尾,使用以下行添加Nameservers记录(用您自己的名称替换名称)。 请注意,第二列指定这些是“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
保存并关闭db.nyc3.example.com
文件。
我们的最终示例前向区域文件如下所示:
$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
现在让我们转到反向区域文件。
创建反向区域文件
反向区域文件是我们为反向DNS查找定义DNS PTR记录的地方。 也就是说,当DNS通过IP地址(例如“10.128.100.101”)接收查询时,它将查看反向区域文件以解析相应的FQDN,在这种情况下为“host1.nyc3.example.com” 。
在ns1上 ,对于named.conf.local
文件中指定的每个反向区域,创建一个反向区域文件。 我们将反向区域文件建立在示例db.127
区域文件上。 使用以下命令将其复制到正确的位置(替换目标文件名,使其与反向区域定义匹配):
sudo cp /etc/bind/db.127 /etc/bind/zones/db.10.128
编辑与named.conf.local
定义的反向区域对应的反向区域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记录之后)。 如果您不确定要删除哪些行,则会在上面标记“删除此行”注释。
在文件末尾,使用以下行添加Nameservers记录(用您自己的名称替换名称)。 请注意,第二列指定这些是“NS”记录:
. . .
; name servers - NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
然后为所有服务器添加PTR
记录,这些服务器的IP地址位于您正在编辑的区域文件的子网上。 在我们的示例中,这包括我们所有的主机,因为它们都在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
如果您的命名配置文件没有语法错误,您将返回到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
要检查“ 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服务器。
配置备用DNS服务器
在大多数环境中,最好设置辅助DNS服务器,以便在主服务器不可用时响应请求。 幸运的是,辅助DNS服务器更容易配置。
在ns2上 ,编辑named.conf.options
文件:
sudo nano /etc/bind/named.conf.options
在文件顶部,添加ACL,其中包含所有可信服务器的专用IP地址:
acl "trusted" {
10.128.10.11; # ns1
10.128.20.12; # ns2 - can be set to localhost
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服务器上的主区域对应的从属区域。 请注意,类型是“slave”,文件不包含路径,并且有一个masters
指令应该设置为主DNS服务器的专用IP地址。 如果您在主DNS服务器中定义了多个反向区域,请确保在此处全部添加它们:
zone "nyc3.example.com" {
type slave;
file "db.nyc3.example.com";
masters { 10.128.10.11; }; # ns1 private IP
};
zone "128.10.in-addr.arpa" {
type slave;
file "db.10.128";
masters { 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服务器。 现在,您必须配置客户端服务器以使用您的私有DNS服务器。
配置DNS客户端
在“受信任”ACL中的所有服务器都可以查询DNS服务器之前,必须将每个服务器配置为使用ns1和ns2作为Nameservers。 此过程因操作系统而异,但对于大多数Linux发行版,它涉及将Nameservers添加到/etc/resolv.conf
文件中。
Ubuntu 18.04客户端
在Ubuntu 18.04上,网络配置了Netplan,这是一种抽象,允许您编写标准化的网络配置并将其应用于不兼容的后端网络软件。 要配置DNS,我们需要编写Netplan配置文件。
首先,通过使用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
inet 10.128.100.101/16 brd 10.128.255.255 scope global eth1
valid_lft forever preferred_lft forever
在此示例中,专用接口是eth1
。
接下来,在/etc/netplan
创建一个名为00-private-nameservers.yaml
的新文件:
sudo nano /etc/netplan/00-private-nameservers.yaml
在里面,粘贴以下内容。 您需要修改专用网络的接口, ns1和ns2 DNS服务器的地址以及DNS区域:
注意: Netplan将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 systemd-resolve --status
向下滚动,直到看到专用网络接口的部分。 您应该首先看到列出的DNS服务器的私有IP地址,然后是一些回退值。 您的域名应该位于“DNS域名”中:
Output. . .
Link 3 (eth1)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.128.10.11
10.128.20.12
67.207.67.2
67.207.67.3
DNS Domain: nyc3.example.com
. . .
您的客户端现在应配置为使用您的内部DNS服务器。
Ubuntu 16.04和Debian客户端
在Ubuntu 16.04和Debian Linux服务器上,您可以编辑/etc/network/interfaces
文件:
sudo nano /etc/network/interfaces
在里面,找到dns-nameservers
行。 如果它连接到lo
接口,则将其移至网络接口(例如eth0
或eth1
)。 接下来,在当前列表前面添加您自己的Nameservers。 在该行下方,添加指向基础结构基本域的dns-search
选项。 在我们的例子中,这将是“nyc3.example.com”:
. . .
dns-nameservers 10.128.10.11 10.128.20.12 8.8.8.8
dns-search nyc3.example.com
. . .
完成后保存并关闭文件。
确保系统上安装了resolvconf
软件包:
sudo apt update
sudo apt install resolvconf
现在,重新启动网络服务,使用以下命令应用新更改。 确保将eth0
替换为网络接口的名称:
sudo ifdown --force eth0 && sudo ip addr flush dev eth0 && sudo ifup --force eth0
这应该重新启动您的网络而不丢弃您当前的连接。 如果它工作正常,你应该看到这样的事情:
OutputRTNETLINK answers: No such process
Waiting for DAD... Done
通过输入以下内容仔细检查您的设置是否已应
cat /etc/resolv.conf
您应该在/etc/resolv.conf
文件以及搜索域中看到您的Nameservers:
Output# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.128.10.11
nameserver 10.128.20.12
nameserver 8.8.8.8
search nyc3.example.com
您的客户端现在配置为使用您的DNS服务器。
CentOS客户
在CentOS,RedHat和Fedora Linux上,编辑/etc/sysconfig/network-scripts/ifcfg- eth0
文件。 您可能必须使用主网络接口的名称替换eth0
:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
搜索DNS1
和DNS2
选项,并将它们设置为主要和辅助Nameservers的专用IP地址。 添加与您的基础结构的基本域一起使用的DOMAIN
参数。 在本指南中,这将是“nyc3.example.com”:
. . .
DNS1=10.128.10.11
DNS2=10.128.20.12
DOMAIN='nyc3.example.com'
. . .
完成后保存并关闭文件。
现在,键入以下命令重启网络服务:
sudo systemctl restart network
该命令可能会挂起几秒钟,但很快就会返回提示符。
输入以下命令检查是否已应用更改:
cat /etc/resolv.conf
您应该在列表中看到您的Nameservers和搜索域:
nameserver 10.128.10.11
nameserver 10.128.20.12
search nyc3.example.com
您的客户现在应该能够连接并使用您的DNS服务器。
测试客户端
使用nslookup
测试客户端是否可以查询Nameservers。 您应该能够在已配置且位于“可信”ACL中的所有客户端上执行此操作。
对于CentOS客户端,您可能需要安装该实用程序:
sudo yum install bind-utils
对于Debian客户端,您可以安装:
sudo apt install dnsutils
我们可以从执行正向查找开始。
正向查找
例如,我们可以通过运行以下命令来执行正向查找以检索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
)。
恭喜! 您的内部DNS服务器现已正确设置! 现在我们将介绍如何维护您的区域记录。
维护DNS记录
既然您有一个有效的内部DNS,您需要维护您的DNS记录,以便它们准确反映您的服务器环境。
将主机添加到DNS
每当您向环境添加主机(在同一数据中心中)时,您都希望将其添加到DNS。 以下是您需要采取的步骤列表:
主Nameservers
- 转发区文件:为新主机添加“A”记录,增加“Serial”的值
- 反向区域文件:为新主机添加“PTR”记录,增加“Serial”的值
- 将新主机的专用IP地址添加到“可信”ACL(
named.conf.options
)
测试配置文件:
sudo named-checkconf
sudo named-checkzone nyc3.example.com db.nyc3.example.com
sudo named-checkzone 128.10.in-addr.arpa /etc/bind/zones/db.10.128
然后重新加载BIND:
sudo systemctl reload bind9
现在应该为新主机配置主服务器。
辅助Nameservers
- 将新主机的专用IP地址添加到“可信”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,并维护所有辅助服务器的工作备份的原因。