這個系列文章源于網絡資料和自己的總結。關于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