当前位置: 首页 > 工具软件 > Knot DNS > 使用案例 >

Centos7上源码编译安装Knot DNS

何星鹏
2023-12-01

这个系列文章源于网络资料和自己的总结。关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免。欢迎大家批评指正。

编译环境

我使用的虚拟机版本如下

$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
$ uname -r
3.10.0-514.el7.x86_64

源码编译安装

  1. 下载源码Knot-DNS
  2. 解压tar包到当前文件夹下
$xz -d knot-x.x.x.tar.xz

$tar -xvf  knot-x.x.x.tar
  1. 进入文件夹开始编译
$ cd knot-x.x.x
  1. 编译

路径指定 –prefix=PREFIX 其他扩展编译参考 ./configure -h 说明

$ chmod +x configure
$ autoreconf -i -f
$ ./configure 
$ make
$ make install
  1. 编译完成,生成各个二进制可执行文件
  • knod Knot DNS服务端
  • knotc Knot DNS命令行控制
  • kdig 类似于Bind9自带的dig命令
  • khost 类似于host命令
  • kjournalprint 查看二进制形式的jnl缓存文件
  • knsec3hash 生成dnssec key
  • knsupdate 启动命令行,动态更新域名
  • kzonecheck zone文件语法检查

配置

详细配置项的说明,可以参照官方英文文档,这里仅列出服务启动的最小配置单元。
在/etc/knot/编写knot.conf如下

server:
    listen: 0.0.0.0@53
    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

 类似资料: