一、DNS的原理
我們知道電腦網路系統只認識所謂的 IP(如:140.128.55.2),
但是您可能記得住網路上面所有主機的 IP 嗎?
因為這四組數字是沒有什麼規則與意義的!!
因此為了讓人類方便記憶,才會發展出可以經由主機名稱( hostname )對應到電腦 IP 的一個模式,
這樣我們就可以輕輕鬆鬆的記住主機名稱即可,
電腦 IP 那就交給 Domain Name System ( DNS )去搞定吧!!
DNS tree架構圖


二、如何運用Linux內建之Bind來管理DNS
在linux rpm的安裝之下,預設主設定檔是在/etc/named.conf,但是相關記錄路徑在/var/named之中。
但在centos5的版本之中(是/var/named/chroot/之下的)
先確認bind是否安裝了,如果沒有就透過yum來安裝
#yum install bind*
yum1
yum1
安裝完成後先試著啟動bind
#/etc/rc.d/init.d/named start
但是會出現錯誤,主要是因為named.conf設定還沒有產生,可以手動產生或是在webmin上來處理亦可,完成後就可以正常啟動了!!
yum1
yum1
yum1

預設啟動可以在後面路徑執行:/etc/rc.d/init.d/named start(stop、restart)
通常只需要修改幾個地方即可完成設定:
/var/named/chroot/etc/named.conf(DNS設定及路徑檔)
zone "xxx.tc.edu.tw" {
type master;
file "/var/named/xxx.tc.edu.tw.hosts";
allow-update { none; };
};
zone "xxx.128.140.in-addr.arpa" {
type master;
file "/var/named/140.128.xxx.rev";
allow-update { none; };
};

/var/named/chroot/var/named/xxx.tc.edu.tw.hosts(正解檔跟上面紅字相同)
$TTL 38400
xxx.tc.edu.tw. IN SOA dns.xxx.tc.edu.tw. root.mail.xxx.tc.edu.tw. (
1094554582 ;更新的序號,每次更新後必須比前次數值增大,通常可以用修改日期來設定
10800 ;多久進行更新一次
3600 ;多久主機主動進行確認,以便再更新一次
604800 ;超過多久時間主機都主動進行確認就放棄了
38400 ) ;最前面ttl沒有設定,就以此值為ttl之值
//設定正解有幾種型態NS、A、CNAME、MX等…
xxx.tc.edu.tw. IN NS dns.xxx.tc.edu.tw. ;NS 表示 name server 的意思
dns.xxx.tc.edu.tw. IN A 140.128.xxx.1 ;A 表示一般正解的意思
mail.xxx.tc.edu.tw. IN CNAME dns.xxx.tc.edu.tw. ;同一個IP有兩個以上正解時設定
xxx.tc.edu.tw. IN MX 10 mail.xxx.tc.edu.tw. ;此網域中mail優先處理主機設定

/var/named/chroot/var/named/140.128.xxx.rev(反解檔跟上面紫字相同)
$TTL 38400
xxx.128.140.in-addr.arpa. IN SOA dns.xxx.tc.edu.tw. root.mail.xxx.tc.edu.tw. (
1094554582 ;更新的序號,每次更新後必須比前次數值增大,通常可以用修改日期來設定
10800 ;多久進行更新一次
3600 ;多久主機主動進行確認,以便再更新一次
604800 ;超過多久時間主機都主動進行確認就放棄了
38400 ) ;最前面ttl沒有設定,就以此值為ttl之值
;設定反解有幾種型態NS、PTR等…
xxx.128.140.in-addr.arpa. IN NS dns.xxx.tc.edu.tw. ;NS 表示 name server 的意思
1.128.140.in-addr.arpa. IN PTR dns.xxx.tc.edu.tw. ;PTR 表示一般反解的意思

設定完成後需要重新啟動dns服務
$/etc/rc.d/init.d/named restart (如果沒有出現任何錯誤訊息就ok了!!)

三、如何透過Webmin來設定簡易的DNS
在WEBMIN可以從「伺服器」->「BIND 8 DNS 伺服器」中去設定。

進入後畫面發現在bind的真正版本都已經9.X版了。

進入後畫面如下,並先建立一個新的主控區域(Master)。

選擇正解與反解兩項分別設定,並分別輸入網域名稱或IP網段,管理者電子郵件,完成後按下確定。

在本身網域中,各台主機的DNS和IP對應就是透過A記錄來查詢。

分別輸入主機 名稱 和 IP ,好了按確定。

在此網段中主要負責網域名稱的主機,是由此設定。

輸入此網域名稱和主要負責的主機名,在此以本機名稱為主。

如果一台主機有兩個或以上的名稱,就可以透過CN(別名),來作設定。

先輸入別名的名稱,後面是和那台主機相同。

在webmin0.83以上,反解大都會自行更新,不過大家還是可以自已檢查一下,確認好後,再按下「套用變更」就可以正常。



不是一個class C的反解
1. 學校網段為前半個 ClassC,即IP最後一碼由.0~.127
zone 0/25.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_0_25.rev"; }
2. 學校網段為後半個 ClassC,即IP最後一碼由.128~.255
zone 128/25.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_128_25.rev"; }
3. 學校網段為第一段1/4個 ClassC,即IP最後一碼由.0~.63
zone 0/26.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_0_26.rev"; }
4. 學校網段為第二段1/4個 ClassC,即IP最後一碼由.64~.127
zone 64/26.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_64_26.rev"; }
5. 學校網段為第三段1/4個 ClassC,即IP最後一碼由.128~.191
zone 128/26.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_128_26.rev"; }
6. 學校網段為第四段1/4個 ClassC,即IP最後一碼由.192~.255
zone 192/26.xxx.17.163.in-addr.arpa {
type master;
file "163_17_xxx_192_26.rev"; }
例:反解內容設定IP:163.17.xxx.0 ~ .127,領域名稱:abc.tcc.edu.tw
檔名:163_17_xxx_0_25.rev
------------------163_17_xxx_0_25.rev檔案內容---------------------
$TTL 259200 ; Time-To-Live = 3 days
@ IN SOA dns.abc.tcc.edu.tw. root.abc.tcc.edu.tw. (
2008101301
86400
1800
604800
3600 )
IN NS dns.abc.tcc.edu.tw.
$ORIGIN 0/25.xxx.17.163.in-addr.arpa.
1 IN PTR dns.abc.tcc.edu.tw.
2 IN PTR www.abc.tcc.edu.tw.
3 IN PTR mail.abc.tcc.edu.tw.
設定後重啟named服務即可。



DNS測試及管理
查詢方式:nslookup、dig(出現的資料過多,反而不易解讀)
nslookup進入後輸入正解和反解資料

但是在nslookup之下,除了常用的輸入網址(www.xx.com.tw)進行正解或是輸入ip(192.168.xx.xx)進行反解外,還可以在型態上作調整,以便進一步了解相關設定

 server 168.95.1.1 ##將dns查尋工作交給另一台dns主機,如hinet的dns,168.95.1.1 set type=soa ##查詢此台dns主機的dns設定檔是否有設定錯誤 set type=ns ##查詢某網域的由那一台dns負責管理的 set type=a ##提供正解查詢一般任何網址轉為ip set type=mx ##提供mail轉換的mx記錄 #nslookup >set type=ns 查詢反解的ns或是soa時,就需要輸入完整的ip名稱(xx.128.140.in-addr.arpa.) 
#dig @ns1.tcrc.edu.tw (要透過的dns主機) www.nchu.edu.tw (要查詢的主機)

#dig xxx.tceb.edu.tw ns (a, soa, mx, any等…)
Last modified: Tuesday, 6 September 2011, 7:54 PM