DNS 架設
一. 何謂 DNS?
在連線要求時, 我們通常都是使用主機網域名稱, 如 dns.jmjh.tnc.edu.tw
雖然使用 IP 也是可以的, 但是因為 IP 很難記(本身沒啥意義), 所以, 還是以網址名稱來連線居多.
不過, 電腦並不認得 dns.jmjh.tnc.edu.tw, 它只認得 IP, 因此, 必須有一部機器, 能夠將我們要求連線的網域名稱轉換成對應的 IP 位址(這樣的轉換, 稱為正解), 才能順利的連線.
提供這種服務的機制, 我們稱之為: 網域名稱系統 或 網域名稱服務(Domain Name System 或 Domain Name Service)簡稱為 DNS.
而提供這個服務的機器, 我們便稱它為一部網域名稱伺服器(Domain Name Server).
通常, 在申請網域及 IP 時, 必須有二部 DNS 正常運作, 才有資格向 InterNic 申請.
但對小網域而言, 大都使用變通的方法, 比如 www.ols3.com.tw 這部機器, 就是用一台主機二個 IP , 分別代表二台 DNS, 但其實只有一台主機而已. (因為財力不足嘛!!)
這台 DNS 伺服器, 除了回應查詢之外, 也記錄同一網路內的主機, 以供網際網路上其它主機的查詢, 而且也會將它知道的關於其它網域主機的資料快取下來, 俟一定有效期限之後, 才予以丟棄.
另外, 這台 DNS 伺服器, 通常也會提供另一個方向的服務,
也就是由 IP 反查某一台主機的網域名稱(這樣的轉換,
稱為反解).
近年來, 由交通大學發起的拒絕反解不正常的主機連線, 指的就是如果該網域的 DNS 在反解的功能不正確的話, 將拒絕其連線要求, . (詳情, 請參考: http://ns.nctu.edu.tw/ )
二. DNS 的架構
DNS 採階層式的架構, 在每一層的每個節點, 都有一個名稱, 而連同其上層的名稱全部加起來, 便構成此節點的網域名稱(domain), 而每一個節點, 必須負起管理該網域的責任(委任), 這個區域, 我們稱它為一個 zone.
(domain 和 zone 有時是很難區分的, 對於一個最下層的 doamin 而言, 它本身便是一個 zone; domain 包含其下層所有的網域, 但 zone 只包含自己管轄的責任區域, 不含委任出去的網域)
換言之, 如果把 DNS 視為一株反轉樹的話, 網域就是其中的一個子樹, 而 zone 則只是網域的一部份, 或等於該網域.
如: (例子在課堂上畫圖)
jmjh.tnc.edu.tw.
. (代表根DNS) -> tw -> tnc -> jmjh
三. 架設之前的準備
在架設之前, 最好, 將貴校的網路架構, 畫張簡圖出來, 可以幫您了解全盤.
(例子在課堂上畫圖)
四. 需要的軟體
我們使用 bind 4.9.x 或 bind 8.x.x 來架設.
安裝好 bind 之後, 其 daemon 程式名稱為 named.
五. 開始架設
先以 bind 4.9.x 為例, 末了再用轉換程式, 改為 bind 8.x.x 的設定.
需要那些檔案?
起動檔位於 /etc/named.boot 或 /etc/named.conf
named 的設定檔目錄, 通常放在 /var/named 中.
起動檔(Boot File)
named.boot
[root@s1 named]# cat /etc/named.boot ; ; jmjh nameserver config ; directory /var/named ; ; keyword 網域 設定檔名稱 ;--------- ----------------------- -------------- cache . named.ca primary 0.0.127.in-addr.arpa rev-127.0.0 primary jmjh.tnc.edu.tw db.jmjh primary 167.26.163.in-addr.arpa db.163.26.167
關鍵字說明:
欲將此 named.boot 轉成 8.x.x 起動檔的格式, 可下:
named-bootconf.pl named.boot > named.conf
named-bootconf.pl 在 /usr/doc/bind-8.2/named-bootconf/Grot/named-bootconf.pl
1. 正解設定檔: db.jmjh
$TTL 259200
@ IN SOA dns.jmjh.tnc.edu.tw. root.dns.jmjh.tnc.edu.tw. (
1999071106 ; Serial - 序號
86400 ; Refresh - 一天
1800 ; Retry - 以秒為單位
1728000 ; Expire - 20 天
259200 ); Minimum TTL - 3 天
;----------------------------------------------------------------------------
IN NS dns.jmjh.tnc.edu.tw.
dns IN A 163.26.167.1
jmjh.tnc.edu.tw. IN A 163.26.167.1
;
@ IN MX 0 mail.jmjh.tnc.edu.tw.
@ IN MX 10 s2.jmjh.tnc.edu.tw.
;
s1 IN CNAME dns.jmjh.tnc.edu.tw.
www IN CNAME dns.jmjh.tnc.edu.tw.
ftp IN CNAME dns.jmjh.tnc.edu.tw.
;-----------------------------------------------------------------
mail IN A 163.26.167.1
s2 IN A 163.26.167.2
s3 IN A 163.26.167.3
nt IN A 163.26.167.6
;
說明 :
DNS 的設定檔, 每一列都是一筆資源記錄(Resource Record), 簡稱 RR.
RR 的定義格式如下:
網域 ttl 類別 型態 該型態的資料值
其中 ttl 可以省略, 此時, 將使用 SOA 中 的 最小 TTL(Time To Live 存活時間), 如果資料值超過一列, 可以使用括號.
說明:
常見的型態有以下幾種:
若主機網域名稱最後沒有 . , 表示是相對的記法, 此時, bind 會自動幫它加上網域名稱,
比如: dns -> dns.jmjh.tnc.edu.tw.
若主機網域名稱最有以 . 結束, 表示是絕對的記法,
如 dns.jmjh.tnc.edu.tw.
若網域名稱省略, 表示和前一筆 RR 的網域名稱是同一個.
2. 反查設定檔
[nobody@cm1 named]$ cat db.163.26.167
@ IN SOA dns.jmjh.tnc.edu.tw. root.dns.jmjh.tnc.edu.tw. (
1999071100 ; Serial
86400 ; Refresh - 1 days
1800 ; Retry
1728000 ; Expire - 20 days
259200 ); Minimum TTL - 3 days
;----------------------------------------------------------------------------
IN NS dns.jmjh.tnc.edu.tw.
;
1 IN PTR dns.jmjh.tnc.edu.tw.
2 IN PTR s2.jmjh.tnc.edu.tw.
3 IN PTR s3.jmjh.tnc.edu.tw.
;
6 IN PTR nt.jmjh.tnc.edu.tw.
3. Loopback 反查設定檔: rev-127.0.0
@ IN SOA dns.jmjh.tnc.edu.tw. root.dns.jmjh.tnc.edu.tw. (
1999071100 ; Serial
86400 ; Refresh - 1 days
1800 ; Retry
1728000 ; Expire - 20 days
259200 ) ; Minimum TTL - 3 days
;----------------------------------------------------------------------------
IN NS dns.jmjh.tnc.edu.tw.
1 IN PTR localhost.
4. 根名稱伺服器位址設定檔 named.ca
; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache ." ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC registration services ; under anonymous FTP as ; file /domain/named.root ; on server FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ; under menu InterNIC Registration Services (NSI) ; submenu InterNIC Registration Archives ; file named.root ; ; last update: Aug 22, 1997 ; related version of root zone: 1997082200 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; ; housed in LINX, operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; housed in Japan, operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File
每次修改完之後, 記得:
如何測試 DNS 是否正常?
使用 nslookup
例:
[nobody@cm1 html]$ nslookup Default Server: dns.jmjh.tnc.edu.tw Address: 163.26.167.1 > nt Server: dns.jmjh.tnc.edu.tw Address: 163.26.167.1 Name: nt.jmjh.tnc.edu.tw Address: 163.26.167.6 > 163.26.167.2
Server: dns.jmjh.tnc.edu.tw Address: 163.26.167.1 Name: s2.jmjh.tnc.edu.tw Address: 163.26.167.2
> exit