Debian 8 Jessie Bind 9 安裝

Posted by admin on 22 五月, 2015 15:54

Linux DNS Server 的安裝,首選當然是 BIND (Berkeley Internet Name Domain) 這個套件,BIND 由 ISC 機構開發維護多年,目前的版本設定方式已簡化不少,而且以學校現有需求,比起以往安裝設定更是容易許多。



【安裝環境】
作業系統:Debian 8.0
軟體版本:BIND 9.9.5
網域名稱:abcd.chc.edu.tw

【套件安裝】
目前版本的套件名稱為「bind9」,開始主要套件及相關程式安裝。

# apt-get update
# apt-get upgrade
# apt-get install bind9 dnsutils

安裝完可用 named -v 指令查詢安裝版本。

# named -v
BIND 9.9.5-9-Debian

【基本設定】
BIND 的設定檔 /etc/bind/named.conf,設定內容只有三行,暫時毋需變更…

# cat /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

以前常用的 named.conf 設定內容,現在分別放進這三個檔案裡了。而且設定檔裡也提醒我們,一般只需修改 named.conf.local,因此,named.conf.options 以及 named.conf.default-zones 都可先略過。而 named.conf.local 的內容也很簡單,加入兩段主要的網域名稱設定…

# vi /etc/bind/named.conf.local

zone "abcd.chc.edu.tw" {
    type master;
    file "/etc/bind/db.abcd.chc.edu.tw";
};

zone "114.23.163.in-addr.arpa" {
    type master;
    file "/etc/bind/db.163.23.114";
};

這些是正解及反解設定檔的路徑,檔案名稱可自訂,加上存放路徑可分別設為…
/etc/bind/db.abcd.chc.edu.tw 與 /etc/bind/db.163.23.114

如果架設備援 DNS 伺服器時,相關的 allow-transfer 與 also-notify 設定,也要指定 163.23.114.x 為 Slave DNS Server 網址,完整寫法如下…

zone "abcd.chc.edu.tw" {
    type master;
    file "/etc/bind/db.abcd.chc.edu.tw";
    allow-transfer  { 163.23.114.x; };
    also-notify { 163.23.114.x; };
};

zone "114.23.163.in-addr.arpa" {
    type master;
    file "/etc/bind/db.163.23.114";
    allow-transfer  { 163.23.114.x; };
    also-notify { 163.23.114.x; };
};

【正反解設定】
正反解的兩個設定檔的新增,可複製系統原有檔案作為範例,再將檔案中網域名稱或網址相關設定修改及新增,以符合網域名稱解析需求。

# cp /etc/bind/db.local /etc/bind/db.abcd.chc.edu.tw
# cp /etc/bind/db.127 /etc/bind/db.163.23.114

正解設定檔 db.abcd.chc.edu.tw 原有內容可保留,只需加入解析內容於檔案後面,如:

# vi /etc/bind/db.abcd.chc.edu.tw

@               IN      NS     dns.abcd.chc.edu.tw.
@               IN      A       163.23.114.x
dns             IN      A       163.23.114.x
www           IN      A       163.23.114.x
sfs              IN      A       163.23.114.x


使用 Google Apps 服務時,以網域名稱「mail.abcd.chc.edu.tw」為例,相關正解設定如:

mail            IN      MX      1       ASPMX.L.GOOGLE.COM.
mail            IN      MX      5       ALT1.ASPMX.L.GOOGLE.COM.
mail            IN      MX      5       ALT2.ASPMX.L.GOOGLE.COM.
mail            IN      MX     10       ASPMX2.GOOGLEMAIL.COM.
mail            IN      MX     10       ASPMX3.GOOGLEMAIL.COM.
mail            IN      MX     10       ASPMX4.GOOGLEMAIL.COM.
mail            IN      MX     10       ASPMX5.GOOGLEMAIL.COM.

反解部分因郵件伺服器委託代管後,即使省略也無大礙。想練習一下設定方法可加入網頁伺服器的反解設定,例如:

# vi /etc/bind/db.163.23.114

@       IN      NS      dns.abcd.chc.edu.tw.
123    IN      PTR    www.abcd.chc.edu.tw.
……

【IPv6 支援設定】
BIND 現有發行版本都已支援 IPv6,只需再自行加入網域名稱解析設定。而 DNS Server 的網路卡設定在「/etc/network/interfaces」這檔案裡,當然也要有 v6 位址的固定 IP 列入其中。以「正解」為例,「/etc/bind/db.abcd.chc.edu.tw」這個檔案裡,除了原有的 IPv4 正解設定以外,加上幾個主機的 IPv6 網址設定,如:

dns             IN      AAAA    2001:288:xxxx::2
www           IN      AAAA    2001:288:xxxx::3
……

【BIND 服務重新啟動】

# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

重新啟動後即使無明顯異狀,仍應查看系統登錄檔裡顯示的「named」相關訊息…

# cat /var/log/syslog |grep --color named

若無錯誤狀況,就可放心繼續進行測試。

【DNS 測試】
named-checkconf 與 named-checkzone 指令檢查設定…

# named-checkconf /etc/bind/named.conf.local
# named-checkconf -z
# named-checkzone abcd.chc.edu.tw /etc/bind/db.abcd.chc.edu.tw
# named-checkzone 114.23.163.in-addr.arpa /etc/bind/db.163.23.114

本機測試全都正常!

再到另一部電腦以常用的「nslookup」指令測試 DNS 伺服器,這部電腦同樣需有 IPv6 網路界面。Debian 系統如果沒有 nslookup 指令,需再用「apt-get install dnsutils」指令新增。

nslookup [-option] [FQDN] [server] 是 nslookup 指令的用法,以學校 DNS 伺服器 163.23.114.xxx 為查詢主機,查詢學校網頁伺服器:

# nslookup www.abcd.chc.edu.tw 163.23.114.xxx

Server:         163.23.114.xxx
Address:        163.23.114.xxx#53
Name:   www.abcd.chc.edu.tw
Address: 163.23.114.xxx

指定用 Hinet 的 DNS 伺服器 168.95.1.1 查詢,確認從學術網路以外的地方也能解析網域名稱,加上 IPv6 查詢模式的參數「-type=aaaa 」…

# nslookup -type=aaaa www.abcd.chc.edu.tw 168.95.1.1

Server:         168.95.1.1
Address:       168.95.1.1#53
Non-authoritative answer:
www.abcd.chc.edu.tw     has AAAA address 2001:288:xxxx::3
Authoritative answers can be found from:
abcd.chc.edu.tw nameserver = dns.abcd.chc.edu.tw.
dns.abcd.chc.edu.tw     internet address = 163.23.114.xxx
dns.abcd.chc.edu.tw     has AAAA address 2001:288:xxxx::2

DNS 的查詢也可用「dig」指令,以取得更多訊息:
dig [-option] [FQDN] [@server] 
改成這一串指令:

# dig www.abcd.chc.edu.tw @168.95.1.1 或
# dig -t aaaa www.abcd.chc.edu.tw @168.95.1.1

更多查詢項目如:

# dig abcd.chc.edu.tw @163.23.114.xxx
# dig www.abcd.chc.edu.tw @163.23.114.xxx
# dig +trace www.abcd.chc.edu.tw
# dig -x 163.23.114.xx @163.23.114.xxx
# dig aaaa www.abcd.chc.edu.tw @163.23.114.xxx
# dig -t mx ms1.abcd.chc.edu.tw @163.23.114.xxx

網路上很容易找到像 What's My DNS? 這樣的 DNS 檢測網站,也可試試這種圖形化界面的檢測方式。通過這些測試後,應該就沒問題了!IPv6 檢測部分,常用網站有 台灣 NGN IPv6移轉技術入口網 IPv6 站台測試行政院國家資訊通信發展推動小組網際網路通訊協定升級推動辦公室 等,或參閱 HiNet IPv6服務 網站訊息。

【設定備份】
有別於早期 Linux 版本的複雜程序,此次安裝設定的檔案數量也僅有修改一個、新增兩個,總共三個檔案:
/etc/bind/named.conf.local
/etc/bind/db.abcd.chc.edu.tw
/etc/bind/db.163.23.114

BIND 的設定備份就是將它們打包…

# tar czvf bind_backup.tgz /etc/bind/named.conf.local /etc/bind/db.abcd.chc.edu.tw /etc/bind/db.163.23.114

還原時解壓縮設定檔…

# cd /
# tar xzvf bind_backup.tgz
# /etc/init.d/bind9 restart

如此就能快速回復,這正是 BIND 勝過其他平台 DNS 軟體的方便特性。

【參考資料】
Internet Systems Consortium BIND
Bind 9 - Debian Wiki
Bind 9 Server Howto

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.