天天看点

Centos7上源码编译安装Knot DNS编译环境源码编译安装配置

这个系列文章源于网络资料和自己的总结。关于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: [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

继续阅读