麻煩老師了~
* 思考與練習:
1) 請好好理解 DNS 之 delegation ,
並以你所能理解的語言(不一定要非常精確),
說說如下概念:
name space :記憶各網域與ip對照的空間
FQDN :Fully Qualified Domain Name,
例:通常一個網址為xxx.yyy.zzz
但是FQDN要表示成xxx.yyy.zzz.(多一點)
dabase tree:如同我們的系統的目錄樹一樣,
最上層為.(root domain),而第二層的zone就為org、com、net、tw、jp....
而第二層底下又會有各種不同的分類。
Name Server:記憶ip與網址的對照,當我們打入網址
,Name Server會將它轉換成IP,連線到目的端。
2) 請畫圖說明
www.abc.com 的授權結構: (真的不知道怎麼插圖)
第一,由.(root)授權給com管理.com這個網域
第二,再由com,授權給abc管理.abc.com這個網域
而在.abc.com裡就可以找到www.abc.com.
請畫圖說明 1.2.3.4 這個 IP 的反解授權結構:
第一,由.(root)授權給arpa管理.arpa這個網域
第二,由arpa授權給in-addr管理.in-addr.arpa網域
第三,由in-addr.arpa授權給1. in-addr.arpa管理. 1. in-addr.arpa的網域
第四,由1. in-addr.arpa授權給2. 1. in-addr.arpa管理.2. 1. in-addr.arpa的網域
第五,由2. 1. in-addr.arpa授權給3.2. 1. in-addr.arpa管理.3.2. 1. in-addr.arpa的網域
第六,在3.2. 1. in-addr.arpa找到4. 3.2. 1. in-addr.arpa
3) 請問在 query 過程中,如下三者有何不同(不一定要非常精確)?
client application:每台電腦都有很多的application,?
resolver :發出request給nameserver
name server :將查尋的資料回傳給resolver,再到client
4) 能否描述一個 dns query 的具體流程?
最好能畫圖說明其中的步驟:
(以
www.abc.com 為例)
在client裡有resolver(它會參考/etc/resolve.conf),它會發出一個request去所設定的
nameserver ,nameserver會去查尋自已的cache或db,若有(
www.abc.com),即可馬上回覆給client端。
若沒有,則到.(root)去問,當然root會說沒有,因為它授權給com了,所以請去問它,然後nameserver
再發出一個request去問com.,com.也說它不知道,因為已經受權給abc了,所以請去問它,然後nameserver
再去問abc.com.,這時候就找到在abc.com.這個zone裡面,即可給它一個回覆。最後,nameserver會將剛才查
尋的過程記錄下來,放於cache裡面,若待會有人要查,即可馬上回覆,但是通常只記憶一天而已。
並結合習題 2 說明 forward 與 reverse query 的異同:
forward(正解):由domain去對應到ip
reverse query(反解):由ip去對應到domain
5) 根據習題 4 的流程,以你所能理解的語言(不一定要非常精確),
說明一下 root zone 及 cache 的重要性;
1、有root zone才可以找到任一個目的地,沒有它什麼也找不到,
2、在cache裡面,會記錄搜尋的資料,因此下次搜尋相同的資料時,
就不用再到root zone裡一個一個問,減少搜尋的時間。
6) 請問在 Linux 系統上負責 DNS 服務的 package 與 daemon 叫甚麼名字?
package: bind、cacheing
daemon: named
請問它的設定檔路逕在哪裡?
路逕: /etc/named/named.conf
請問該設定檔的註解符號可用哪兩種方式(舊版)?
方式1: //
方式2: /* */
你還記得老師提到的在該設定檔中,新手最常犯的錯誤是甚麼嗎?
錯誤: 漏點
7) 請問設定檔中的 options 項目裡,
directory 是設定甚麼的?
作用: 指定db存放的資料夾
預設值: /var/named
那,在 zone 項目裡,
file 是設定甚麼的?
作用: 正反解放置的目錄
還有,root zone 與其他 zone 所用的 type 有何差別:
說明: root 是type hint(指定root主機)
其它的都是type master(表授權過的網域)

請問在 /var/named 中的 Resource Record 資料檔裡,
註解符號是甚麼?
註解: ;
請問設定行有縮排跟沒縮排差在哪裡?
說明: ?
9) 請問 RR 設定中, @ 的意思是甚麼?
說明: 如同本目錄一樣,當你位址為xxx時,它會自動補上@的值,
若為xxx.的話,就不會再加
請問 @ 與 $ORIGIN 的關係如何?
說明: $ORIGIN的值就是@
請問在 RR 的記錄名稱上,有小數點結尾跟沒有,
差別在哪裡?
說明: 沒有小數點,則系統會自動幫你加上$ORIGIN
有小數點的,表是FQDN
10) 假設我們需要設定的 DNS 有如下要求:
zone1: test.cxm
zone2: 100.168.192.in-addr.arpa
name server: ns1.test.cxm
admin email: root@ns1.test.cxm
DNS RR 資料如下
192.168.100.1 對應 ns1.test.cxm
192.168.100.2 對應 pc2.test.com 別名 ftp.test.cxm
192.168.100.3 對應 pc3.test.com 別名
www.test.cxm 192.168.100.4 對應 pc4.test.com 別名 mail.test.cxm
192.168.100.5 對應 pc5.test.com 別名 proxy.test.cxm
test.cxm 的 MX 10 是 pc4.test.cxm
請您以實作方式將完整的 DNS 設定出來。
(過程中還可能包括 root.hints 檔案的取得)
實作:
11) 一旦 named 設定完畢,請問你如何將設定生效?
方法: service named restart
在 named 重新執行後,你如何確定執行結果沒有錯誤?
方法: grep named /var/log/message
又,你在 client 端可用甚麼方法來驗證設定?
(包括需要修改的檔案及可用的命令):
方法:可修改/etc/resolve.conf裡面,加入設定好的dns server,看能不能上網
再用traceroute去try一個外面的ip,看看是否有經過我們所設的dns server