跳至内容

NSD 权威 DNS

作为 BIND 的替代方案,NSD (Name Server Daemon) 是一种现代的仅限授权的 DNS 服务器,由 NLnet Labs 维护。

先决条件和假设

  • 运行 Rocky Linux 的服务器
  • 能够使用 firewalld 创建防火墙规则
  • 指向您授权的 DNS 服务器的域名或内部递归 DNS 服务器

介绍

外部或公共 DNS 服务器将主机名映射到 IP 地址,并且在 PTR(称为“指针”或“反向”)记录的情况下,将 IP 地址映射到主机名。这是互联网必不可少的一部分。它使您的邮件服务器、Web 服务器、FTP 服务器或许多其他服务器和服务无论您身在何处都能按预期工作。

安装和启用 NSD

首先,安装 EPEL

dnf install epel-release

接下来,安装 NSD

dnf install nsd

配置 NSD

在对任何配置文件进行更改之前,请复制原始已安装的工作文件 nsd.conf

cp /etc/nsd/nsd.conf /etc/nsd/nsd.conf.orig

这将有助于在将来如果配置文件中出现错误。在进行更改之前,始终制作备份副本是一个好主意。

编辑 nsd.conf 文件。作者使用 vi,但您可以用自己喜欢的命令行编辑器替换它

vi /etc/nsd/nsd.conf

导航到底部并插入以下内容

zone:
    name: example.com
    zonefile: /etc/nsd/example.com.zone

example.com 替换为您运行名称服务器的域名。

接下来,创建区域文件

vi /etc/nsd/example.com.zone

DNS 区域文件与 BIND 兼容。在文件中,插入

$TTL    86400 ; How long should records last?
; $TTL used for all RRs without explicit TTL value
$ORIGIN example.com. ; Define our domain name
@  1D  IN  SOA ns1.example.com. hostmaster.example.com. (
                              2024061301 ; serial
                              3h ; refresh duration
                              15 ; retry duration
                              1w ; expiry duration
                              3h ; nxdomain error ttl
                             )
       IN  NS     ns1.example.com. ; in the domain
       IN  MX  10 mail.another.com. ; external mail provider
       IN  A      172.20.0.100 ; default A record
; server host definitions
ns1    IN  A      172.20.0.100 ; name server definition
www    IN  A      172.20.0.101 ; web server definition
mail   IN  A      172.20.0.102 ; mail server definition

如果您需要帮助自定义 BIND 风格的区域文件,Oracle 有 一篇关于区域文件的良好介绍.

保存您的更改。

启用 NSD

接下来,在 firewalld 中允许 DNS 端口并启用 NSD

firewall-cmd --add-service=dns --zone=public
firewall-cmd --runtime-to-permanent
systemctl enable --now nsd

使用 host 命令检查 DNS 解析

% host example.com 172.20.0.100
Using domain server:
Name: 172.20.0.100
Address: 172.20.0.100#53
Aliases:

example.com has address 172.20.0.100
example.com mail is handled by 10 mail.another.com.
%

结论

大多数人使用第三方服务进行 DNS。但是,在某些情况下需要自托管 DNS。例如,电信、托管和社交媒体公司托管许多 DNS 条目,在这些条目中,托管服务是不可取的。

NSD 是许多使托管 DNS 成为可能的开源工具之一。恭喜,您拥有自己的 DNS 服务器!

作者: Neel Chauhan

贡献者: Steven Spencer, Ganna Zhyrnova