这个系列文章源于网络资料和自己的总结。关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免。欢迎大家批评指正。
编译环境
我使用的虚拟机版本如下
$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
$ uname -r
3.10.0-514.el7.x86_64
源码编译安装
- 下载源码Knot-DNS
- 解压tar包到当前文件夹下
$xz -d knot-x.x.x.tar.xz
$tar -xvf knot-x.x.x.tar
- 进入文件夹开始编译
$ cd knot-x.x.x
- 编译
路径指定 –prefix=PREFIX 其他扩展编译参考 ./configure -h 说明
$ chmod +x configure
$ autoreconf -i -f
$ ./configure
$ make
$ make install
- 编译完成,生成各个二进制可执行文件
-
Knot DNS服务端knod
-
Knot DNS命令行控制knotc
-
类似于Bind9自带的dig命令kdig
-
类似于host命令khost
-
查看二进制形式的jnl缓存文件kjournalprint
-
生成dnssec keyknsec3hash
-
启动命令行,动态更新域名knsupdate
-
zone文件语法检查kzonecheck
配置
详细配置项的说明,可以参照官方英文文档,这里仅列出服务启动的最小配置单元。
在/etc/knot/编写knot.conf如下
server:
listen: [email protected]
listen: ::@53
log:
- target: stdout
any: info
zone: info
control: info
server: info
zone:
- domain: example.com
storage: "/var/lib/knot/"
file: "example.com.zone"
在/var/lib/knot/编写example.com.zone如下
$ORIGIN example.com.
$TTL 3600
@ SOA dns1.example.com. hostmaster.example.com. (
2010111213 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS dns1
NS dns2
MX 10 mail
dns1 A 192.0.2.1
AAAA 2001:DB8::1
dns2 A 192.0.2.2
AAAA 2001:DB8::2
mail A 192.0.2.3
A 192.1.2.3
CNAME a.b.com.
AAAA 2001:DB8::3
以前台方式启动: knotd -c /etc/knot/knot.conf -v
以后台方式启动:knotd -c /etc/knot/knot.conf