Bind
bind9:rndc 凍結:重新定義鍵?
我的系統上有這個 rnd.key 文件:
key "rndc-key1" { algorithm hmac-md5; secret "xxxxxxxxxxxxxxx=="; }; key "rndc-key2" { algorithm hmac-md5; secret "yyyyyyyyyyy=="; };
然後我將它們用於不同的區域:
zone "somedomain1.com" { type master; file "/etc/bind/master/db.somedomain1.com"; allow-update { key rndc-key1; }; }; zone "somedomain2.com" { type master; file "/etc/bind/master/db.somedomain2.com"; allow-update { key rndc-key2; }; };
當我嘗試執行“rndc freeze”時,我收到此錯誤:
rndc: error: /etc/bind/rndc.key:5: 'key' redefined near 'key' rndc: could not load rndc configuration
這是什麼意思?這裡有什麼問題?不同區域不能使用不同的鍵嗎?
看來您誤解了
rndc
密鑰的用途。這種誤解很可能源於閱讀了許多草率編寫的教程之一,這些教程通過在完全不同的上下文中濫用為一個特定目的創建的已經存在的密鑰(密鑰)來偷工減料,
rndc
甚至沒有評論這種濫用。密鑰應該有一個目的
rndc
,它由rndc
實用程序使用,named
以便可以向(例如,或其他)rndc
發送控制命令。named``rndc reload``rndc freeze
該密鑰不應該用於動態更新(如 中
allow-update
)。文件中不應有多個鍵
rndc.key
。但是,如果您願意,我們鼓勵您將任意數量的
key
TSIG 密鑰語句添加到named
配置 (named.conf
) 中。這些是您應該用於動態更新、區域傳輸等目的的內容。我建議您將這些鍵命名為反映其用途的名稱。
如果您有現代版本的 BIND,只需使用
tsig-keygen foo
來創建一個新密鑰。它既方便又具有合理的預設值(hmac-sha256
而不是hmac-md5
您創建的鍵)。