Knot 权威 DNS
作为 BIND 的替代方案,Knot DNS 是一款现代的仅限权威的 DNS 服务器,由捷克域名注册机构 CZ.NIC 维护。
先决条件和假设¶
- 运行 Rocky Linux 的服务器
- 能够使用 firewalld 创建防火墙规则
- 指向您的权威 DNS 服务器的域名或内部递归 DNS 服务器
介绍¶
外部或公共 DNS 服务器将主机名映射到 IP 地址,在 PTR 记录(也称为“指针”或“反向”记录)的情况下,将 IP 地址映射到主机名。这是互联网的重要组成部分。它使您的邮件服务器、Web 服务器、FTP 服务器或许多其他服务器和服务无论您身在何处都能按预期工作。
安装和启用 Knot¶
首先,安装 EPEL
dnf install epel-release
接下来,安装 Knot
dnf install knot
配置 Knot¶
在对任何配置文件进行更改之前,请移动原始安装的工作文件 knot.conf
mv /etc/knot/knot.conf /etc/knot/knot.conf.orig
这将有助于将来在配置文件中出现错误时进行恢复。在进行更改之前,始终备份副本是一个好主意。
编辑 knot.conf 文件。作者使用 vi,但您可以用自己喜欢的命令行编辑器替换它
vi /etc/knot/knot.conf
插入以下内容
server:
listen: 0.0.0.0@53
listen: ::@53
zone:
- domain: example.com
storage: /var/lib/knot/zones
file: example.com.zone
log:
- target: syslog
any: info
将 example.com
替换为您运行名称服务器的域名。
接下来,创建区域文件
mkdir /var/lib/knot/zones
vi /var/lib/knot/zones/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 提供了 有关区域文件的良好介绍。
保存您的更改。
启用 Knot¶
接下来,允许 firewalld
中的 DNS 端口并启用 Knot DNS
firewall-cmd --add-service=dns --zone=public
firewall-cmd --runtime-to-permanent
systemctl enable --now knot
使用 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 条目,在这些条目中托管服务是不希望的。
Knot 是许多开源工具之一,使托管 DNS 成为可能。恭喜,您拥有自己的 DNS 服务器!
作者:Neel Chauhan
贡献者:Steven Spencer、Ganna Zhyrnova