朋友傳給我一個檔案,他說他 Slave DNS 的 Zonefile 都變成亂碼!
用 vim 打開 Zonefile 後都是亂碼,但是系統跑起來沒有問題,BIND 在 9.9.x 之後的版本,因為效能考量,將 Slave 的 ZoneFile 儲存成二進位檔(Binary)格式,可以提高系統執行的速度,當 Zone transfer 的時候,由 Master 傳輸到 Slave 的 DNS ,就不是以文字格式儲存,而是以原始檔案 (RAW) 的方式儲存 。
如果你要讀取當中的內容,請用下列指令:
named-compilezone [options] -o filename zonename filename
範例:
named-compilezone -f raw -F text -o output.txt example.net example.net.raw
就可以在 output.txt 當中看到文字格式的 zonefile。
若您不想 BIND 使用 RAW 的方式儲存,請在 Slave 的 zone 設定中加入:
masterfile-format text;
完整範例:
zone "example.com" in { type slave; notify no; file "data/example.com.db"; masterfile-format text; masters { 192.168.1.1; }; };
參考來源:http://geekdom.wesmo.com/2014/06/05/bind9-dns-slave-file-format/