BIND 的維護

BIND named 的啟動

1.以 root 的身份執行下列命令

    /usr/sbin/named

named 會自動去找 /etc/namedb/named.conf 這個設定檔

ps: 如果是 RedHat Linux, 會去找 /etc/named.conf 這個設定檔

2.如果要開機自動啟動的話, 把上面那一行放在 /etc/rc.local 即可

3.在 FreeBSD 下, 另一個自動啟動 named 的方式是在 /etc/rc.conf 中加入

    named_enable="YES"

那麼開機時 named 也會自動被執行

ps: 如果是在 RedHat Linux, 可以透過執行 /sbin/ntsysv 來選擇啟動 named

4.如果想要使用 /etc/namedb/named.conf 以外的檔案作為設定檔, 請用

    /usr/sbin/named -c path_to_config_file 或是
    /usr/sbin/named -b path_to_config_file
 

BIND 的測試

測試 named 是否正常動作, 最簡單的就是利用 nslookup 這個程式
為了方便說明, 以下內容前面均加入行號
     1  tung@mail:~> nslookup
     2  Default Server:  sun4.ee.ncku.edu.tw
     3  Address:  140.116.72.14
     4
     5  > server 172.16.1.250
     6  Default Server:  mail.school.edu.tw
     7  Address:  172.116.1.250
     8
     9  > pc1.school.edu.tw
    10  Server:  mail.school.edu.tw
    11  Address:  172.116.1.250
    12
    13  Name:    pc1.school.edu.tw
    14  Address:  172.16.1.1
    15
    16  > 172.16.1.1
    17  Server:  mail.school.edu.tw
    18  Address:  172.116.1.250
    19
    20  Name:    pc1.school.edu.tw
    21  Address:  172.16.1.1
    22
    23  > set type=any
    24  > school.edu.tw
    25  Server:  mail.school.edu.tw
    26  Address:  172.116.1.250
    27
    28  school.edu.tw
    29          origin = mail.school.edu.tw
    30          mail addr = root.mail.school.edu.tw
    31          serial = 1999051401
    32          refresh = 3600 (1H)
    33          retry   = 300 (5M)
    34          expire  = 3600000 (5w6d16h)
    35          minimum ttl = 3600 (1H)
    36  school.edu.tw   nameserver = mail.school.edu.tw
    37  school.edu.tw   nameserver = mail.school.edu.tw
    38  mail.school.edu.tw      internet address = 172.16.1.250

第 5 行:
改變 default server 到新裝起來的 named 所在的 IP
第 9 行:
由 domain name 查 IP
第 16 行:
由 IP 反查 domain name
第 23,24 行
查詢 school.edu.tw 這個 domain 的一些記錄

在完成上述動作後, 可以確定 named 本身已正常啟動, 接著再透過把 default server 改為其它已知沒問題的 name server, 重覆上面的動作, 如果沒有問題的話, name server 應該已經沒問題了
 

BIND named 的除錯

1.named 在啟動或執行的時候, 透過系統的 syslog 機制, 會將一些訊息寫到 /var/log/messages 下

2.named 在執行的時候, 我們可以透過傳送一些 signal 給它, 讓其做一些額外的動作以方便進行除錯的動作, 傳送 signal 的方式是

    kill -signal_name pid_of_named

其中 pid_of_named 可以利用 ps -aux|grep named 輸出的第二個欄位取得

常用的 signal_name 有下列幾種

SIGHUP
讓 named 重讀 named.conf 與 zone file 內容

SIGINT
將目前 named 的 database 與其 cache 起來的資料放到 /var/tmp/named_dump.db 中

SIGUSR1
啟動除錯功能, 將 named 動作的過程寫到 /var/tmp/named.run 中, 而且每多送一個 SIGUSR signal 給 named, named.run 中的除錯訊息就越詳細, 透過這個命令, 可以對 name server 進行極為詳細的除錯

SIGUSR2
關閉除錯功能, 停止 named 對 /var/tmp/named.run 產生輸出

ps: named 進入 debug mode 後, /var/tmp/named.run 的資料可能會增長地很快, 一定要記得最後要用 SIGUSR2 把 debug mode 關閉