# 版權宣告: 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 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