• slider image
  • slider image
  • slider image
:::

DNS正反解設定

DNS正反解設定 / 2018-06-15 / 人氣: 1288

DNS(Domain Name Service:領域名稱服務)服務

 

壹、 前言

    DNSDomain Name Service領域名稱服務)可說是各類網際網路服務中最重要的一種 服務,它可將難以記憶的主機 IP 位址轉換成易於記憶的網域名稱。在虛擬網域中更需要 DNS Server 的存在,許多人在虛擬網域裡安裝 WWWFTP...等伺服主機後,發現從 Client 端連線 上主機的速度慢的可以,這就是尚未安裝 DNS  Server 所致,在本文中將以簡明、快捷的 方式介紹如何設定 DNS Server

 

貳、DN的基本概念

在架設 DNS 之前首先要有一個觀念,就是沒有 Domain  Name,網路仍然可以運作,因為網路上封包的傳送只要知道目的地的「IP Address」即可,而 Domain Name(領域名稱,或稱為:網域名稱)就是為了讓這些難記的數字 IP ,變換成較有意義的名稱。例 163.23.200.1為彰化縣教育網路中心 Web Server IP Address但是 IP Address 難記又無 意義。所以在架設領域名稱服務(Domain Name Service)伺服器之後,只要輸入 URL 位址 http://www.chc.edu.tw就可連上「163.23.200.1這部機器。相較之下,「www.chc.edu.tw」這個網域名稱就比「163.23.200.1」顯得有意義多了。

www.chc.edu.tw」的命名是由於彰化縣教育網路中心為台灣(tw)教育單位(edu下的一的教育網路中心,其縮寫為「chc,又因為此部主機是  Web  Server 的主機,故主機名稱定為「www。由此例可知 Domain Names 所採用的是階層式的架構,每個階層用「.」隔開。

其實 Domain Name 的結構就像目錄結構,由根目錄再往下分成次目錄。但是怎麼沒看到根領域呢?那是因為 Domain Name 最後省略掉了一個點「.,而這個最後的點「.」就代 表根領域。就像目錄路徑有分「絕對路徑」與「相對路徑」一樣,絕對領域名稱最後必須加上一個點「.,如www.chc.edu.tw.這樣一來在  Domain Name  階層中,就相當明確了。絕對領域名稱又稱為「完整領域名稱」,簡稱為 FQDNFully Qualified Domain Name)。

底下是 DNS 的結構樹,在下圖中央部分您可以看到主機「www.chc.edu.tw在結構樹中 的位置(由上而下的階層順序為:.tw.edu.chc.www。而在下圖左側不知您是否已注意到還有另外一個分支「.arpa.in-addr.xxx,這個分支是做反解用的結構樹分支,所謂反解就是 IP Address 轉換 Domain Name 的解析動作。這個反解的分支與其他分支相同,越大的單位就越上面,「www.chc.edu.tw IP Address 163.23.200.1 IP Address 的結構位置,可從反解結構樹中看出。注意「領域名稱」雖然由「.」以階層結構定義,在書寫上是以www.chc.edu.tw式呈現,由「領域名稱」對應「IP 位址」,必須定義在 DNS 裡所謂的領域「正解檔」中。而「IP 位址」對應「領域名稱1.200.23.163.in-addr.arpa」對應www.chc.edu.tw,必須定義在 DNS 裡所謂的領域「反解檔」中。

 

 

要請您特別留意的是,定義上,FQDN(如:www.chc.edu.tw.具有唯一性,在 Internet 上不能重複,但是一台主機卻可以擁有超過一個以上不同的 FQDN例如:彰化縣教育網路中心的主機「163.23.200.1就有多個 FQDN包括  「 proxy.chc.edu.tw.」、「dns.chc.edu.tw.」、等名稱,但是在其他電腦上找不到相同的 FQDN

事實上一個 FQDN 也可以由數個 IP 位址共用,例如彰化縣教育網路中心的 Proxy,其 FQDN 名稱為:proxy.chc.edu.tw這個網域名稱是由三台不同 IP 位址Proxy 主機所共用,這三台主機 IP 位址分別為:163.23.200.249163.23.200.250163.23.200.251當遠端發出查 proxy.chc.edu.tw 網域名稱時,透過 DNS 解析後首先對應到的 IP 位址是 163.23.200.249 其次是 163.23.200.250,而最後是 163.23.200.251,若 163.23.200.249 此部主機關機,則對應到 163.23.200.250。將數個 IP 對應到一個完整網域名稱,使用時應注意下列事項:

1.  盡量在同一領域內(DOMAIN)的鄰近 IP 位址。

2.  須提供流量相當大的服務,如:Proxy Server

3.  主機軟硬體結構及服務最好一致。

當您想連上 IBM 的網頁時,您可依據 Domain Name 的命名規則稍微猜一下大概就可以 連上主機:「http://www.ibm.com而不用記主機的 IP Address正是Domain Name 可貴的 地方,將「IP Address與「Domain Name對照起來,只要使用有意義的「Domain Name」就可以透過領域名稱服務(Domain Name Server  DNS伺服器自動換IP Addres」以方便網路封包的傳送,因為「Domain Name」是無法在封包傳送過程中派上用場的。

 

參、   DN伺服器的設定

    安裝好 DNS Server 後,就算是啟動 DNS 也不能正常運作,您必須撰寫 DNS 組態檔、本機正反解檔及領域正反解檔,由於所使用的 DNS 版本 BIND 9.2.0-8此,以一個 class c 以下的網域為例,最一般化 DNS 組態檔及正反解領域宣告檔必須要有四個檔案,在 Redhat 裡,內定 Name Server DNS 的簡稱)的組態檔為named.conf 固定放置在 /etc 目錄下,而其它領域宣告檔內定於 /etc 目錄下,相關的設定檔案如下所列的說明:

/etc/host.conf                 名稱解析的順序宣告檔

/etc/hosts                       主機名稱與 IP 對照檔

/etc/resolv.conf             名稱解析設定檔

/etc/named.conf           領域型態組態檔

 

一.      名稱解析的順序宣告檔 host.conf

主機名稱解析順序的設定檔 host.conf,其內容如下列:

order hosts,bind

上一行中的 order 是本機對名稱解析的順序設定,先到 hosts 這個檔案找名稱與 IP 的對照,若找不到,再到 bind 去找,意思就是到 Name Server 去查詢和尋找。

二.      主機名稱與 IP 的對照檔 hosts

以成功國小為例作說明,因成功國小的網域名稱是  cges.chc.edu.tw,所以,在此網域下的主機名稱,可設在 hosts 檔案內,以加快本網域內主機查詢的速度。 hosts 檔案的內容如下列:

#Do not remove the following line, or various

#programs

#that require network functionality will fail.

163.23.107.65 dns.cges.chc.edu.tw dns

163.23.107.66 mail.cges.chc.edu.tw mail

127.0.0.1 localhost.localdomain localhost

三.      名稱解析設定檔 resolv.conf

名稱解析設定檔  resolv.conf  其內容如下:

domain cges.chc.edu.tw

nameserver 163.23.107.65

nameserver 163.23.200.1

nameserver 168.95.1.1

    以成功國小為例作說明,因主機本身是 DNS Server 管轄 cges.chc.edu.tw 這個領域,所以才用 domain cges.chc.edu.tw 的設定,若本身不是 DNS Server 就用 search cges.chc.edu.tw 的設定。

查詢正、反解的順序,先由本身

nameserver 163.23.107.65 查詢起,若不能查詢,就 轉向縣網的 DNS 伺服器

nameserver 163.23.200.1 查詢,若還是不能查詢,則轉向中華電信公司的

nameserver 168.95.1.1 查詢。

 

四.      領域型態組態檔 named.conf

以成功國小為例作說明,因成功國小的網域名稱是 cges.chc.edu.tw 所以在此網域下 DNS Server 的設定檔是 named.conf,其內容如下:

;-----------------------------------底下是檔案內容的開始

options{

directory "/var/named";

forwarders {163.23.200.1;};

};

 

 

zone "." IN {

type hint;

file "named.ca";

};

 

 

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.localhost.rev";

allow-update { none; };

};

 

 

zone "cges.chc.edu.tw" IN {

type master;

file "named.cges";

allow-update { none; };

};

 

 

zone "64-127.107.23.163.in-addr.arpa" IN {

type master;

file "named.cges.rev";

allow-update { none; };

};

;-----------------------------------檔案內容結束

 

 

逐項說明如下:

options{

directory "/var/named";

forwarders {163.23.200.1;};

};

正解、反解、根目錄快取與 Loopback 相關設定檔放置在目錄 /var/named 這個目錄下。當本機查詢不到所需的資料,一般會轉從根目錄"."往下查,會很耗時間,為了節省查詢時間, 可轉向縣網 DNS Server 是向 163.23.200.1 直接查詢。

 

;-------------------------------------------

zone "." IN {

type hint;

file "named.ca";

};

根目錄 "." 快取(cache)的設定檔名為 named.ca,而此檔位於目錄 /var/named 這個目錄下。

 

;-------------------------------------------

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.localhost.rev";

allow-update { none; };

};

本機 Loopback 反解檔的名稱 named.localhost.rev 而此檔位於目錄 /var/named 這個目錄下。

 

;------------------------------------------

zone "cges.chc.edu.tw" IN {

type master;

file "named.cges";

allow-update { none; };

};

成功國小領域名稱 cges.chc.edu.tw 這個區域的正解檔名稱為 named.cges ,而此檔位於目錄 /var/named 這個目錄下。

 

;------------------------------------------------------------

zone "64-127.107.23.163.in-addr.arpa" IN {

type master;

file "named.cges.rev";

allow-update { none; };

};

 

;成功國小 ip 區段的反解區域 64-127.107.23.163.in-addr.arpa

;的反解檔名稱為 named.cges.rev,而此檔位於

;目錄 /var/named 這個目錄下。

 

;=======================說明結束。

 

 

五.      在目錄  /var/named  這個目錄下放置相關的設定檔如下:

 

;-------------------------------------------------------------------------------------

named.cges           正解檔

named.cges.rev             反解檔

named.localhost.rev 本機的Loopback的反解檔

named.title            正解檔、反解檔、本機Loopback反解檔檔案開頭共同的包含檔。

;-------------------------------------------------------------------------------------

 

 

 

;正解檔 named.cges 的內容:

$TTL 86400

$ORIGIN cges.chc.edu.tw.

$INCLUDE named.title

@ IN MX 5 mail.cges.chc.edu.tw.

@ IN MX 10 m1.cges.chc.edu.tw. localhost IN A 127.0.0.1

loopback IN CNAME localhost

dns IN A 163.23.107.65 mail IN A 163.23.107.66 www IN CNAME dns

ftp IN CNAME dns

m1 IN A 163.16.8.100

;若有其他的伺服器主機名稱可再增加設定上去。

 

;-------------------------------------------------------------------------------------

 

;反解檔 named.cges.rev 的內容:

$TTL 86400

$ORIGIN 64-127.107.23.163.in-addr.arpa.

$INCLUDE named.title

65 IN PTR dns.cges.chc.edu.tw.

65 IN PTR www.cges.chc.edu.tw.

65 IN PTR ftp.cgeschc.edu.tw.

66 IN PTR mail.cges.chc.edu.tw.

;若有其他的伺服器主機名稱的 ip 可再增加設定上去。

 

;-------------------------------------------------------------------------------------

 

;共同包含檔 named.title 的內容:

 

@     IN    SOA dns.cges.chc.edu.tw. admin.mail.cges.chc.edu.tw. (

            2002120401    ; serial

            3H           ; refresh  

            1H           ; retry

            1W           ; expiry

            1D           ; default_ttl

            )

IN    NS   dns.cges.chc.edu.tw.

 

;-------------------------------------------------------------------------------------

 

;named.localhost.rev  本機的Loopback的反解檔的內容:

 

$TTL 86400

$ORIGIN 0.0.127.in-addr.arpa.

$INCLUDE named.title

1      IN    PTR localhost.

 

;-------------------------------------------------------------------------------------

 

 

六.      四分之一  C  級網路 DNS 反解的說明:

 

(一). 本縣國中、小所分配到的 IP 範圍,從 163.23.66.0  163.23.119.255 總共有  54  C 級網路。

(二). 每個 C 級網路有 256  IP 分成四段,所以每段是四分之一個 C,它有  64(256/4=64)  IP,分配給國中或國小。這四段的 IP 範圍如下:第一段是  0~63 第二段是 64~127 第三 段是  128~191 第四段是 192~255

(三). 例如,163.23.66 這個 C 級網路分成四段,其範圍如下:

第一段的 IP 範圍是 163.23.66.0~163.23.66.63

第二段的 IP 範圍是 163.23.66.64~163.23.66.127

第三段的 IP 範圍是 163.23.66.128~163.23.66.191

第四段的 IP 範圍是 163.23.66.192~163.23.66.255

每一段的第一個 IP 是網路 IP,最後一個 IP 作廣播用除外,其餘的 IP 皆可使用。

 

(四). 第一段是以芙朝國小的反解檔 named.fces.rev 作範例。 反解檔 named.fces.rev 的內容如下:

;-----------------------------------------------

$TTL 86400

$ORIGIN 0-63.92.23.163.in-addr.arpa.

$INCLUDE named.title

1 IN PTR dns.fces.chc.edu.tw.

1 IN PTR www.fces.chc.edu.tw.

1 IN PTR ftp.fceschc.edu.tw.

2 IN PTR mail.fces.chc.edu.tw.

;---------------------------------------------------------------------------------

若有其他的伺服器主機名稱的 ip 可再增加設定上去。

 

(五). 第二段是以成功國小的反解檔 named.cges.rev 作範例。反解檔 named.cges.rev 的內容如下:

;---------------------------------------------------------

 

$TTL 86400

$ORIGIN 64-127.107.23.163.in-addr.arpa.

$INCLUDE named.title

65 IN PTR dns.cges.chc.edu.tw.

65 IN PTR www.cges.chc.edu.tw.

65 IN PTR ftp.cgeschc.edu.tw.

66 IN PTR mail.cges.chc.edu.tw.

;-----------------------------------------------------------

若有其他的伺服器主機名稱的 ip 可再增加設定上去。

 

(六). 第三段是以華南國小的反解檔 named.hnes.rev 作範例。反解檔 named.hnes.rev 的內容如下:

;----------------------------------------------

$TTL 86400

$ORIGIN 128-191.108.23.163.in-addr.arpa.

$INCLUDE named.title

129 IN PTR dns.hnes.chc.edu.tw.

129 IN PTR www.hnes.chc.edu.tw.

129 IN PTR ftp.hneschc.edu.tw.

130 IN PTR mail.hnes.chc.edu.tw.

;--------------------------------------------------

 

若有其他的伺服器主機名稱的 ip 可再增加設定上去。

 

(七). 第四段是以螺青國小的反解檔 named.rces.rev 作範例。 反解檔 named.rces.rev 的內容如下:

 

;------------------------------------------------------

 

$TTL 86400

$ORIGIN 192-255.99.23.163.in-addr.arpa.

$INCLUDE named.title

193 IN PTR dns.rces.chc.edu.tw.

193 IN PTR www.rces.chc.edu.tw.

193 IN PTR ftp.rceschc.edu.tw.

194 IN PTR mail.rces.chc.edu.tw.

;---------------------------------------------------------------------------------

若有其他的伺服器主機名稱的 ip 可再增加設定上去。

 

(八). 請各國中、小網管人員,先確認自己學校的網段,是屬於哪一段?然後根據自己所屬的網段,修改 DNS 反解的範例檔內容,使其內容符合貴校 DNS 反解的設定,就能正確啟動 DNS 反解功能,可用  nslookup 公用程式試查看看。

 

肆、 主、次要(Master and Slave)DNS

    一般而言,除非組織相當龐大才有必要使用多台 DNS,普通的機關、學校、組織其實只要一部 DNS 即可,不過為了 DNS 運作正常的考量,事實上是有必要架設兩台 DNS Server,一台為主要(masterDNS,另一台為次要(slaveDNS,當主要 DNS 當機或行程掛掉,次要 DNS 立刻可以擔負起領域名稱查詢服務,先決條件是您的上一層領域已為您註冊兩部 DNS,如同前述追蹤領域名稱時,各追蹤過程中您可看出每一領域節點,在上一層領域起碼 註冊兩部 DNS

    當您架設好次要 DNS 後,次要 DNS 會根據 refresh 值,每隔一段定義時間主動的向主要 DNS 索取各個正反解領域的最新名稱與 IP 的對應資料,假設目前的master DNS  dns.chc.edu.twslave DNS 放在 fortop.test.chc.edu.tw 這部主機,若要架設 slave DNS,只要依 照下列步驟進行即可:

 

一.       dns.chc.edu.tw 主機裡 /etc/named.conf 組態檔複製到  fortop.test.chc.edu.tw 主機裡的 /etc 目錄下。

 

二.       dns.chc.edu.tw 主機裡 /var/named/目錄下 named.ca 快取資料檔及  named.test.arpa 本機領域反解檔複製到 fortop.test.chc.edu.tw 主機裡  /var/named 目錄下

 

三.      修改 fortop.test.chc.edu.tw  主機裡  /etc named.conf 組態檔,如下所示:

 

options {

directory "/var/named";

};

 

zone "." {

type hint;

file "named.ca";

};

 

zone "test.chc.edu.tw"{

type slave;

file "named.test";

masters{ 192.168.1.10; };

};

 

zone "1.168.192.in-addr.arpa"{

type slave;

file "named.test.arpa";

masters{ 192.168.1.10; };

};

 

zone "cc.test.chc.edu.tw"{

type slave;

file "cc.test";

masters{ 192.168.1.10; };

};

 

zone "0.0.127.in-addr.arpa"{

type master;

file "named.localhost.arpa";

};

 

從上面列表中您可看出,除了 option 敘述、zone "."zone "0.0.127.in-addr.arpa"  不做任何 改變外,其餘需要做資料更新的正反解領域其 type 皆改為 slave,並且都多加了一道敘述 masters{ 192.168.1.10; };,有了這道敘述,slave DNS 才知道向哪部主要 DNS 索取更新資料。

  masters{}; 指令裡請輸入 IP 位址。

 

當您一啟動 fortop.test.chc.edu.tw 的次要 DNS 服務後,過了不久,您會發現在主要 DNS 裡的各個領域正反解檔,都被複製一份到 fortop.test.chc.edu.tw /var/named目錄下,備份的 正反解領域宣告檔其內容與正版的內容稍有不同,如次要 DNS  named.test 檔案內容為:

 

; BIND version named 8.2 Wed Mar 31 10:57:12 EST 1999

; BIND version root@porky.devel.redhat.com:/usr/src/bs/BUILD/bind-8.2/src/bin/named

; zone 'test.chc.edu.tw' last serial 1999032401

; from 192.168.1.10:53 using AXFR at Tue Sep 7 20:07:19 1999

$ORIGIN chc.edu.tw.

test 86400 IN SOA dns.chc.edu.tw. weitu.dns.chc.edu.tw. ( 1999090701 10800 3600 604800

86400 )

86400 IN NS dns.chc.edu.tw.

$ORIGIN test.chc.edu.tw.

asp 86400 IN A 192.168.1.15

news 86400 IN CNAME fortop.test.chc.edu.tw. dns 86400 IN A 192.168.1.10

book 86400 IN A 192.168.1.20 freebsd 86400 IN A 192.168.1.17 cc 86400 IN NS dns.chc.edu.tw. redhat 86400 IN A 192.168.1.10 fortop 86400 IN A 192.168.1.16 caldera 86400 IN A 192.168.1.18 localhost 86400 IN A 127.0.0.1

mail 86400 IN MX 10 dns.chc.edu.tw.

86400 IN CNAME dns.chc.edu.tw.

.....................................

您會發現在指令 IN  的前面多了一項資料  86400,這是依據 TTLTime To Live)資料存活值所做的設定,目的讓每一筆記錄能存留 86400 秒。

 

伍、    結語

DNS Server 的設定看起來似乎相當的複雜,事實上只要觀念清楚,應該可正確無誤的撰寫好組態與宣告檔。在實際應用上,是沒有必要為單位裡每台機器在 DNS Server 裡註冊領域名稱,通常只有為重要的伺服主機或工作站註冊領域名稱,如此才會讓您的 DNS Server 發揮的更有效能。