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