天天看點

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

繼續閱讀