bind for Windows的安裝、配置和運行

bind for Windows的安裝、配置和運行
用過Windows DNS服務(wù)器的都知道Windows DNS服務(wù)器占用較多RAM,且功能比bind少得多。

某些時候,我們必須在Windows系統(tǒng)上配置DNS服務(wù)器,此時選擇bind for Windows是建議的。
安裝、配置和運行bind for Windows
首先打開ftp://ftp.isc.org/isc/bind9/,從中找一個比較新的版本文件夾打開,此處選擇的是9.17.9版本。

下載其中的BIND9.17.9.x64.zip。
使用你最喜歡的壓縮文件管理器打開此文件,你會看到其中包含以下內(nèi)容。

其中BINDInstall.exe是自帶的安裝程序,但是由于各種原因,本教程不會使用此程序。
在你喜歡的,不包含特殊字符的目錄里創(chuàng)建bind文件夾,此處使用的是X:\WMSystem\lib\,然后在其中創(chuàng)建bin和etc文件夾。


將BIND9.17.9.x64.zip像這樣完全解壓到bind\bin文件夾中。

打開注冊表編輯器,切換到到HKEY_LOCAL_MACHINE\SOFTWARE\ISC\BIND(沒有就創(chuàng)建),創(chuàng)建字段InstallDir,數(shù)據(jù)為你bind目錄的位置,此處為X:\WMSystem\lib\bind。

然后打開bind\etc文件夾,新建文本文檔,然后重命名為named.conf。

使用Visual Studio Code/Visual Studio Codium/Atom/vim/nano或者其他任何可以編輯UTF-8文本文檔而不會留下BOM頭的文本編輯器打開named.conf,然后寫入以下內(nèi)容。
?
options {
??? # 你的bind\etc文件夾完整路徑
??? directory "X:\WMSystem\lib\bind\etc";
?
??? # 如果bind無法解析,會向以下DNS服務(wù)器發(fā)送查詢請求。
??? # 可以在下面的IP地址位置上填寫ISP的DNS地址。
??? forwarders {
??????? 10.1.1.1;
??????? 10.0.1.1;
??????? 8.8.8.8;
??????? 8.8.4.4;
??? };
?
??? # 允許哪些IP查詢。
??? # 此處允許了本機和一個A類局域網(wǎng),如果你要在C類局域網(wǎng)上使用,添加的內(nèi)容可能為192.168.1.0/24;。
??? allow-query {
??????? 127.0.0.1;
??????? 10.0.0.0/8;
??? };
};
?
# 根DNS
zone "." {
??? type hint;
??? file "named.root";
};
?
# localhost
zone "localhost" IN {
??? type master;
??? file "localhost.zone";
??? allow-update { none; };
};
?
# localhost的反向解析
zone "0.0.127.in-addr.arpa" {
??? type master;
??? file "localhost.rev";
};
?
# example.com
zone "example.com" IN {
??? type master;
??? file "example.com.zone";
};
?

就像Linux上的bind一樣,此處指定了一些域的zone文件和反向解析的rev文件,應(yīng)該在bind\etc下創(chuàng)建這些文件。

此處文件內(nèi)容如下。
?
## example.com.zone
$TTL 1D
?
@?????? IN????? SOA???? example.com.????? root. example.com. (
??????? 2007091701????????? ; Serial
??????? 30800?????????????? ; Refresh
??????? 7200??????????????? ; Retry
??????? 604800?????????? ???; Expire
??????? 300 )?????????????? ; Minimum
?
??????? IN????? NS????? example.com.
?
example.com.??????? IN????? A?????? 10.0.10.10
www.example.com.??????? IN????? A?????? 10.0.10.10
*?????? IN??? A???????? 10.0.10.10
?
## localhost.zone
$TTL 1D
?
@?????? IN? ????SOA???? localhost.????? root.localhost. (
??????? 2007091701????????? ; Serial
??????? 30800?????????????? ; Refresh
??????? 7200??????????????? ; Retry
??????? 604800????????????? ; Expire
??????? 300 )?????????????? ; Minimum
?
??????? IN????? NS????? localhost.
?
localhost.??????? IN????? A?????? 127.0.0.1
?
## localhost.rev
$TTL??? 1D
?
@?????? IN????? SOA??? localhost.??? root.localhost. (
??????? 2007091701????????? ; Serial
??????? 30800?????????????? ; Refresh
??????? 7200????????? ??????; Retry
??????? 604800????????????? ; Expire
??????? 300 )?????????????? ; Minimum
?
??????????? IN????? NS????? localhost.
1?????????? IN????? PTR???? localhost.
?
## named.root
.??????????????????? 480717??? IN??? NS?? d.root-servers.net.
.??????????????????? 480717??? IN??? NS?? b.root-servers.net.
.??????????????????? 480717??? IN??? NS?? l.root-servers.net.
.??????????????????? 480717??? IN??? NS?? k.root-servers.net.
.??????????????????? 480717??? IN??? NS?? f.root-servers.net.
.??????????????????? 480717??? IN??? NS?? h.root-servers.net.
.??????????????????? 480717??? IN??? NS?? m.root-servers.net.
.??????????????????? 480717??? IN??? NS?? c.root-servers.net.
.??????????????????? 480717??? IN??? NS?? a.root-servers.net.
.??????????????????? 480717??? IN??? NS?? g.root-servers.net.
.??????????????????? 480717??? IN??? NS?? i.root-servers.net.
.??????????????????? 480717??? IN??? NS?? e.root-servers.net.
.??????????????????? 480717??? IN??? NS?? j.root-servers.net.
?

然后回到bind\bin,新建文本文檔,然后重命名為start.cmd,用記事本打開,寫入以下內(nèi)容。
cd /d %~dp0
named -f -g -d 1
pause

用管理員權(quán)限執(zhí)行此腳本,等待一段時間后,你將看到以下窗口,這說明bind已經(jīng)啟動。
如果需要停止bind,僅需關(guān)閉這個命令行窗口。

其它
配置rndc
按下Windows+X,然后按下A,使用管理員權(quán)限打開cmd,并 cd /d 到bind\bin目錄。
輸入rndc-confgen –a,按下Enter。
輸入rndc-confgen > rndc.conf,按下Enter。

執(zhí)行后應(yīng)存在bind\etc\rndc.key和bind\bin\rndc.conf這兩個文件。
如果不存在,請在網(wǎng)絡(luò)上搜索錯誤代碼,依照網(wǎng)絡(luò)上的教程來試圖處理此錯誤。
named.root的生成
其實named.root可以自動生成,這要求本地計算機網(wǎng)絡(luò)暢通。
按下Windows+X,然后按下A,使用管理員權(quán)限打開cmd,并 cd /d 到bind\bin目錄。
輸入dig > ../etc/named.root,按下Enter。
執(zhí)行后應(yīng)存在bind\etc\named.root。
報錯
按照本文的"安裝、配置和運行bind for Windows"節(jié)來檢查,如果沒有問題,請按以下步驟修改文件夾安全設(shè)置。
右鍵文件夾屬性,切換到"安全"選項卡,單擊"高級"。
單擊"所有者"旁邊的更改按鈕,輸入Everyone,按下確定。

選中"替換子容器和對象的所有者"。

單擊窗口下半部分的"禁用繼承"按鈕,選擇"從此對象中刪除所有已繼承的權(quán)限"。

單擊"添加",選擇主體,輸入Everyone,確定。

在基本權(quán)限中勾選完全控制。

勾選"使用可從此對象繼承的權(quán)限項目替換所有子對象的權(quán)限項目",按下確定。

出現(xiàn)的所有提示框都按"是"。


此時權(quán)限已經(jīng)被更新。
如果仍然報錯,請在網(wǎng)絡(luò)上搜索錯誤代碼,依照網(wǎng)絡(luò)上的教程來試圖處理此錯誤。