# 版權宣告: 1999 Copyright OLS3 All rights reserved.
# 作者: OLS3 (臥龍小三)
# 本講義僅供台南縣 87 學年度網路管理進階研習班上課之用.
# 學員可保存一份自用, 供日後網管時參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
DNS 架設
一. 何謂 DNS?
在連線要求時, 我們通常都是使用主機網域名稱, 如 dns.jmjh.tnc.edu.tw
雖然使用 IP 也是可以的, 但是因為 IP 很難記(本身沒啥意義), 所以, 還是以網址名稱來連線居多.
不過, 電腦並不認得 dns.jmjh.tnc.edu.tw, 它只認得 IP, 因此, 必須有一部機器, 能夠將我們要求連線的網域名稱轉換成對應的 IP 位址(這樣的轉換, 稱為正解), 才能順利的連線.
提供這種服務的機制, 我們稱之為網域名稱服務(Domain Name Service 或 Domain Name System), 簡稱為 DNS.
而提供這個服務的機器, 我們便稱它為一部網域名稱伺服器(Domain Name Server).
通常, 在申請網域及 IP 時, 必須有二部 DNS 正常運作, 才有資格向 InterNic 申請.
但對小網域而言, 大都使用變通的方法, 比如 www.ols3.com 這部機器, 就是用一台主機二個 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 的設定.
需要那些檔案?
起動檔: named.boot (4.9.x) 或 named.conf (8.x.x)
zone 資料檔: db.jmjh
反查資料檔: db.163.26.167
local 反查檔: rev-127.0.0
cache 檔: named.ca
起動檔位於 /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
關鍵字說明:
directory : 指定 bind 的設定檔目錄位置, 在這裡, 是設定在 /var/named 中
primary : 定義一個主要名稱伺服器的設定檔
cache : 定義根網域伺服器的設定檔
secondary : 定義一個次要名稱伺服器的設定檔
欲將此 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 存活時間), 如果資料值超過一列, 可以使用括號.
說明:
@ : 代表預設的網域, 在此指的是 jmjh.tnc.edu.tw
IN : Internet 類別
常見的型態有以下幾種:
SOA : Start of Authority 型態, 用來描述一個 zone 授權的開始.
SOA 的資料值, 格式如下:
(Secondary Secondary Secondary) (Other server cache)
主要名稱伺服器 聯絡人email 序號 更新時間 再試時間 過期期限 最小存活時間
其中聯絡人的 email 原本如 root@jmjh.tnc.edu.tw 中的 @ 應改為 . , 因為 @ 這個符號對 bind 而言,另有其它用途.
NS 代表 Name Server 型態
MX 代表 Mail Exchange 型態(郵件交換伺服器), 其資料格的格式如下:
優先權值 郵件主機
其中,優先權值的數字越小, 表示其優先程度越高
整體的格式是:
網域 IN MX 優先權值數字 郵件主機網域名稱
例:
IN MX 0 mail.jmjh.tnc.edu.tw.
A 代表 Address 型態
CNAME 代表別名型態
PTR 代表反查 IP 的指標型態(POINTER)
若主機網域名稱最後沒有 . , 表示是相對的記法, 此時, 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
每次修改完之後, 記得:
增加序號的值之後, 才存檔.
要重新啟動 named, 下:
kill -HUP named 的PID編號
或
/etc/rc.d/init.d/named restart
或
ndc restart
如何測試 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.2Server: dns.jmjh.tnc.edu.tw
Address: 163.26.167.1
Name: s2.jmjh.tnc.edu.tw
Address: 163.26.167.2
> exit
(http://www.fanqiang.com)
進入【UNIX論壇】
|