LinuxDNS原理-配置詳解_第1頁
LinuxDNS原理-配置詳解_第2頁
LinuxDNS原理-配置詳解_第3頁
LinuxDNS原理-配置詳解_第4頁
LinuxDNS原理-配置詳解_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、這是來自鳥哥的 Linux 私房菜(bbb:/.tw/)請大家不要再次轉載DNS 服務器我們知道計算機網(wǎng)絡系統(tǒng)只認識所謂的 IP ,但是,您可能記得住網(wǎng)絡上面所有主機的 IP 嗎? 就鳥哥來說,連自己的主機的 IP 都記不起來了,怎么可能連其他的主機 IP 都記的住! 因為,人腦對于數(shù)字組成的 IP 的記憶實在是.不怎么樣。 但是,相對來說,人們對于由文字所組成的主機名那可以容易記憶的多了 所以,才會發(fā)展出可以經(jīng)由主機名( hostname )對應到計算機 IP 的一個模式,這樣我們就可以輕輕松松的記住主機名即可,計算機 IP 那就交給 Domain Name

2、 System ( DNS )去搞定吧!那個 DNS 系統(tǒng)是由柏克萊大學發(fā)展的 bind 這個套件( Berkeley Internet Name Domain )所提供的啦!基本上,DNS 最主要的工作就是將 Hostname 對應到 IP 這個功能了,不過,要架設一個成功的 DNS 主機的話,還得要對于 DNS 的運作很清楚才行?。》駝t架設的不對,還反而會造成大家的問題喔!這個章節(jié)當中, 要學會的數(shù)據(jù)其實還蠻多的,需要了解:什么是正解、什么是反解、什么是 Zone、客戶端 ( Client ) 是經(jīng)由什么咚咚來查詢得到 IP 的呢?!以及 DNS 的授權問題等等。 哇!趕快清一清腦門,要好

3、好的用功啰! _ 1. 本章的行前準備工作2. 甚么是 DNS :2.1 什么是 Domain Name System2.2 DNS 的查詢過程2.3 關于授權的意義2.4 網(wǎng)站代管還是自己設定 DNS2.5 正解與反解的 Zone 意義3. DNS 服務器的套件、種類與 cache only 主機設定:3.1 架設 DNS 所需要的套件3.2 BIND 的默認路徑設定與 chroot, /etc/sysconfig/named3.3 DNS 的 master/slave 架構3.3 單純的 cache-only 與 forwarding DNS 主機設定4. DNS Master 服務器機的

4、詳細設定4.1 一個簡單案例說明4.2 /etc/named.conf 配置文件4.3 最上層 DNS (root) 數(shù)據(jù)庫檔案的設定4.4 正解數(shù)據(jù)庫檔案的設定: 領域 RR, master/slave RR, 領域解析 NS, 正解標志4.5 反解數(shù)據(jù)庫檔案的設定: 反解 RR4.6 DNS 的啟動與觀察4.7 數(shù)據(jù)庫的更新4.8 測試5. Master/Slave 架構的詳細設定5.1 master DNS 權限的開放5.2 slave DNS 的設定6. Client 端的設定:6.1 相關配置文件: /etc/hosts, /etc/resolv.conf, /etc/nsswitc

5、h.conf6.2 DNS 的查詢指令: host, nslookup, dig6.3 Domain 的信息查詢: whois7. DNS 服務器的進階設定:7.1 子域授權問題7.2 架設一個合法授權的 DNS 主機7.3 LAME Server 的問題7.4 利用 RNDC 指令管理 DNS 服務器7.5 架設動態(tài) DNS 主機:讓你成為 ISP 啦!8. 重點回顧9. 課后練習10.參考數(shù)據(jù)11.針對本文的建議:bbb://viewtopic.php?p=115692本章的行前準備工作人類的腦袋對于數(shù)字畢竟不比文字來的敏感,偏偏計算機的世界僅認識 0/1

6、而已。 為了將兩者兜在一起于是有了主機名與 IP 的對應啊而這個對應的協(xié)定就是 DNS 了。 學習 DNS 你必需要對網(wǎng)絡有一定的概念,尤其是主機名的說明喔!· 了解網(wǎng)絡基礎,防火墻與關閉 SELinux 模塊等等。 · 由于你可能會手動修改 /etc/init.d/named ,所以 shell script 也要了解! 什么是 DNS目前的 Internet 世界最常用的還是所謂的 TCP/IP 協(xié)議,其中 IP 協(xié)定為第四版的 IPv4 。 不過,這個 IPv4 是由 32 個位 (32 bits) 所組成,為了人腦已經(jīng)轉成四組十進制的數(shù)字了, 例如 123.234.

7、56.78 這樣的格式。當我們利用 Internet 傳送數(shù)據(jù)的時候, 就需要這個 IP ,否則數(shù)據(jù)怎么知道要被送到哪里去?Tips:傳送數(shù)據(jù)的方法有很多,不見得全部都是透過 IPv4 這個協(xié)議,例如在 LAN 里面常用的 NetBIOS 就是一例。 不過,在這里,我們不討論其他的傳輸方法,專門探討 IPv4 這個協(xié)議喔! 然而人腦對于 IP 這種數(shù)字的玩意兒,記憶力實在是不怎么樣。但是如上所說, 當我們需要數(shù)據(jù)傳輸時,又很需要對方的 IP ,怎么辦?為了應付這個問題, 早期的朋友想到一個方法,那就是利用某些特定的檔案將主機名與 IP 作一個對應, 讓主機名與 IP 有關連性,如此一來,我們就

8、可以透過主機名來取得該主機的 IP 了! 真是個好主意,因為人類對于名字的記憶力可就好多了! _y??上У氖牵摲椒ㄟ€是有缺憾的,那就是主機名與 IP 的對應無法自動于所有的計算機內(nèi)更新, 且要加入該對應僅能向 INTERNIC 注冊,若 IP 數(shù)量太多時,該檔案會大到不象話,也就不利于主機同步化了。 而為了填補這個缺憾,柏克萊大學發(fā)展出另外一套階層式管理主機名對應 IP 的系統(tǒng), 我們稱他為 Berkeley Internet Name Domain, BIND ,這個系統(tǒng)可就優(yōu)秀的多了 透過階層式管理,可以輕松的進行維護的工作太棒了! 這也是目前全世界使用最廣泛的領域名系統(tǒng)(Domain

9、Name System, DNS)哩 透過 DNS ,我們不需要知道主機的 IP ,只要知道該主機的名稱,就能夠輕易的連上該主機了!Tips:在底下的說明當中,我們有時會提到 DNS 有時會提到 BIND ,這有什么不同? 由上面的說明里面,您可以了解到, DNS 是一種因特網(wǎng)的通訊協(xié)議名稱, 至于 Bind 則是提供這個 DNS 服務的套件這樣您了解了嗎?! 那么要立刻來架設 DNS 主機嗎?當然不是如同上面說的,因特網(wǎng)上面, 數(shù)據(jù)的傳輸最重要的就是得要知道對方的 IP,如此才能達成聯(lián)機。因此, 架設 DNS 就必須要了解整體因特網(wǎng)的領域名架構,否則,一旦 DNS 架設錯誤, 可能會造成您所

10、管轄的主機無法正確的在 Internet 上頭傳輸數(shù)據(jù)的問題!所以,要設定 DNS 之前,您必須要就領域名系統(tǒng)里面慣用的 FQDN、Hostname 與 IP 的查詢流程, 正解與反解、合法授權的 DNS 主機之意義,以及 Zone 等等的知識作一個認識才行! 這可是很重要的,不要輕忽他了!Tips:事實上,由于 IPv4 的 IP 數(shù)量已經(jīng)不足了,為了應付未來的網(wǎng)絡架構而開發(fā)了 IPv6 出來。 但是 IPv6 的數(shù)字數(shù)量是比 IPv4 要多出好多好多的!可想象的到的是,那時 DNS 可就更重要了!_ 什么是 Domain Name System:DNS 的全名是 Domain name s

11、ystem , 中文譯名為領域名系統(tǒng), 這個咚咚的用途是什么哇!為什么我們的計算機或者是 Internet 一定需要他 (尤其是以 WWW 的方式來上網(wǎng)時) ?呵呵! 他最大的用途就是造福懶惰與記憶性薄弱的人類 哈哈!沒錯!為什么說他是造福人類呢?且聽鳥哥娓娓道來:· /etc/hosts 的歷史:如同前面以及網(wǎng)絡基礎章節(jié)當中談到的,IPv4 的 IP 是由 32bits 所組成,轉成十進制的話則是四組 0-255 的數(shù)字所組成的。 由于不容易記憶,因此就有了主機名與 IP 對應的想法出來。也就是說, 只要輸入一個計算機的名字而我們的系統(tǒng)就會自動的將這個名字轉成計算機了解的 IP !

12、嘿嘿!如此一來,我要記得名字總是比 IP 容易的多了!依據(jù)這個想法而有了 /etc/hosts 這個檔案!例如,只要您輸入 ping -c 5 localhost 您的 Linux 馬上可以印出 這個 IP , Why ?您去看一下 /etc/hosts 就知道為什么了!所以啰,只要將您常常上網(wǎng)的網(wǎng)址對應的 IP 寫到這個 /etc/hosts 底下,您的 IP 搜尋速度就會快上很多Tips:再次強調,在您的私有網(wǎng)域內(nèi)部,最好將所有的 IP 都寫入這個檔案中啦! · DNS 的歷史:早期(大約2030年前)的計算機可是貴重物資,一般人是可望而不可及的,因為計算機數(shù)

13、量太少, 所以使用 /etc/hosts 來記憶這些 IP 與名稱的對應還尚可應付。但是在現(xiàn)代, Internet 上面這么多主機,并且常常會突然的噗通又多出一部主機來服務, 那么我們總不能一個一個的將他輸入在 /etc/hosts 里面吧?對呀!真不聰明! 而且也無法立刻讓全世界的計算機都同步更新他們自己的 /etc/hosts 檔案??! 所以后來的這個時候就有所謂的領域名解析系統(tǒng), DNS出現(xiàn)啦!DNS 服務利用類似樹狀目錄的型態(tài),將主機名的管理分配在不同層級的 DNS 服務器當中,經(jīng)由分層管理,所以每一部主機記憶的信息就不會很多, 而且若有 IP 異動時也相當容易修改!那么這個 DNS

14、的功能您知道了嗎?對啦!就是將計算機主機的名稱轉譯成 IP 就是了!當然啰,他的額外功能還很多!總之,他的最大功能就是 讓有意義的,人類較容易記憶的主機名(英文字母),轉譯成為計算機所熟悉的 IP 位置! 舉個例子來說好了,奇摩雅虎的網(wǎng)站的 IP 是 2 ,所以您可以在您的瀏覽器上面輸入 bbb:/2 來連上奇摩雅虎! 不過,我想沒有幾個人能夠將這個 IP 背的起來的吧?反之,我們卻都知道奇摩雅虎的網(wǎng)址為 tw.yahooaaa ,那么您只要輸入 bbb:/tw.yahooaaa 就可以連上該主機啦!很容易記憶吧!· Fully Qua

15、lified Domain Name ( FQDN )在提到名稱與 IP 的解析流程之前,我們還必需來討論一下什么是 domain name 與 host name?也就是領域名與主機名。 在討論這個主題之前,我們來聊一聊比較生活化的話題:· 網(wǎng)絡世界其實有很多人自稱為鳥哥的,包括敝人在下小生我啦!那么你怎么知道此鳥哥非彼鳥哥呢? 這個時候你可以利用每個鳥哥的所在地來作為區(qū)分啊,比如說臺南的鳥哥與臺北的鳥哥等。 那萬一臺南還有兩個人自稱鳥哥怎么辦?沒關系,你還可以依照鄉(xiāng)鎮(zhèn)來區(qū)分呢!比如說臺南北區(qū)的鳥哥及臺南中區(qū)的鳥哥。 如果將這個咚咚列出來,就有點像這樣: · 是否就可以分

16、辨他的不同點了呢?呵呵!沒錯!就是這樣!· 另外一個例子可以使用電話號碼來看,假如高雄有個 1234567 而臺南也有個 1234567 ,那么(1)您在高雄直接撥接 1234567 時,他會直接掛入高雄的 1234567 電話中, (2)但如果您要撥到臺南去,就得加入(06)這個區(qū)碼才行!我們就是使用區(qū)碼來做為辨識之用的! 是否還不清楚鳥哥要說什么?我們常常會發(fā)現(xiàn)主機名都是 www 的網(wǎng)站,例如 aaagov.tw, , 等等,那么我們怎么知道這些 www 名稱的主機在不同的地方呢?就需要給他領域名啰!也就是 gov.tw, , 等等的不同,所以即使您的主機名相同,但是只要不是在同

17、一個領域內(nèi), 那么就可以被接受啰!基本上,我們知道 DNS 是有層級之分的,那么每個層級的 Hostname 與 Domain name 可是不一樣的咚咚鳥哥使用我們的主機來加以說明,如下圖所示:圖一、分層次的 DNS 架構 ( Hostname 與 Domain name )在上面的例子當中,由上向下數(shù)的第二層里面,那個 .tw 是 domain name ,而 com, edu, gov 則是主機的名稱,而在這個主機的名稱之管理下,還有其他更小網(wǎng)域的主機, 所以在第三層的時候,基本上,那個 edu.tw 就變成了 domain name 了!而成大與中山的 ncku, nsysu 則成為了

18、 hostname 啰!呵呵!以此類推,最后得到我們的主機那個 aerosol 是主機名,而 domain name 是由 .tw 那個名字所決定的!自然,我們的主機就是讓管理 .tw 這個 domain name 的 DNS 服務器所管理的啰!這樣是否了解了 domain name 與 hostname 的不同了呢? DNS 的查詢過程:接下來我們要談一談,那么 DNS 的 (1)架構是怎樣? (2)查詢原理是怎樣?總是要先知道架構才能知道如何查詢的吶!所以底下我們先來介紹一下整體的架構。· DNS 的架構:圖二、DNS 層階概念示意圖上

19、面就是一個簡單的 DNS 階層架構啰,在整個 DNS 系統(tǒng)的最上方一定是 . (小數(shù)點) 這個 root 的 DNS 主機,他底下管理的就只有 com, edu, gov, mil, org 與以國家為分類的第二層的主機名了!這兩者稱為 Top Level Domains (TLDs) 喔!· 一般最上層領域名 (Generic TLDs):例如 aaa, .org, .gov 等等; · 國碼最上層領域名 (Country code TLDs):例如 .tw, .uk, .jp 等 例如臺灣地區(qū)最上層的領域名是以 .tw 為開頭,管理這個領域名的這部機器的 IP 是在臺灣

20、,但是他的記錄則是記錄在 . (root)那部機器里面的!還有其他的國家的最上層如 bbb 指的是大陸, .de 指的是德國一樣!那么每個國家之下記錄的主要的下層有哪些領域呢? 呵呵!主要就是有這六大類:名稱代表意義com公司、行號、企業(yè)org組織、機構edu教育單位gov 政府單位 net 網(wǎng)絡、通訊 mil 軍事單位 其實最早之前在 . (root)之下只有這六大類的 domain name ,但是網(wǎng)絡成長的速度太快了,因此后來又多出這些以國碼來分的 domain name ,如此一來,在該國家之內(nèi),只要向該國家申請 domain name 即可,不需要再到最上層去申請啰!也因此,在這些國

21、碼之下,還是有這六大類的 domain name 為主的哩!當然啦,在目前,由于因特網(wǎng)持續(xù)的發(fā)燒,說實在的 domain name 實在是有點不太夠用,所以又有相當多的領域名被設計出來,例如目前臺灣 ISP 提供的 .idv.tw 的個人網(wǎng)站啦!好了,再強調一次, DNS 系統(tǒng)是以所謂的階層式的管理,所以,請注意喔!那個 .tw 只記錄底下那一層的這數(shù)個主要的 domain 的主機而已!至于例如 edu.tw 底下還有個 .tw 這部機器,那就直接授權交給 edu.tw 那部機器去管理了!也就是說 每個上一層的 DNS 主機,所記錄的信息,其實只有其下一層的主機名而已! 至于再

22、下一層,則直接授權給下層的某部主機來管理啰!呵呵!所以您就應該會知道 DNS 到底是如何管理的吧! _ 會這樣設定的原因不是沒有道理的! 這樣設計的好處就是:每部機器管理的只有下一層的 hostname 對應 IP 而已,所以減少了管理上的困擾!而下層 Client 端如果有問題,只要詢問上一層的 DNS server 即可!不需要跨越上層,除錯上面也會比較簡單呢!· DNS 的搜尋流程:剛剛說過 DNS 是以類似樹狀目錄 的型態(tài)來進行名稱的管理的!所以每一部 DNS 主機都僅管理下一層 DNS 主機的名稱轉譯而已, 至于下層的下層,則授權給下層的 DNS 主機來管理啦!這樣說好像很

23、繞口,好吧!我們就以下圖來說一說原理啰:圖三、DNS 主機查詢流程示意圖首先,當您在瀏覽器的網(wǎng)址列輸入 bbb:/.tw 時,您的計算機就會依據(jù)相關設定( 在 Linux 底下就是利用 /etc/resolv.conf 這個檔案 ) 所提供的 DNS 的 IP 去進行聯(lián)機查詢,好了,由于目前最常見的 DNS 主機就屬 Hinet 的 這個 DNS 了,所以我們就拿他來做例子吧!嗯!這個時候, hinet 的這部主機會這樣工作:1. 先查看本身有沒有紀錄:剛剛說過啦,由于 DNS 是層階式的架構,任何一部 DNS 都僅記錄下一層里面的主

24、機名對應的 IP 而已,由于 hinet 并非學術網(wǎng)絡里面的主機,所以自然也就沒有辦法直接提供給 client 端關于 .tw 這部機器的 IP 了,所以啦,一般而言,這個時候 就會向最頂層,也就是 . (root) 的主機查詢 .tw 這部機器的位置;2. 向最頂層 ( root )查詢:由于 沒有紀錄我們主機的 IP ,這個時候他就會向最頂層的 . (root) 這部主機來查詢 . (root) 的下一層,也就是 .tw 這部機器的數(shù)據(jù)了!這個時候, . (root) 就會告訴 說嘿!您

25、要查 .tw 這個網(wǎng)域的管理者呀?我這里有 .tw 這個網(wǎng)域的管理的主機之 IP 信息,您可以直接去找他!;3. 向第二層查詢: 接著又到 .tw 去查詢,而該部機器管理的又僅有 .edu.tw, aaa.tw, gov.tw. 那幾部主機,經(jīng)過比對后發(fā)現(xiàn)我們要的是 .edu.tw 的網(wǎng)域,所以這個時候 .tw 又告訴 說:您要去管理 .edu.tw 這個網(wǎng)域的主機那里查詢,我有他的 IP ??;4. 向下層持續(xù)查詢:好了,一步一步下來, .edu.tw 可以查到管理 ..tw 的主機 IP ; ..tw 可以查到管理 .

26、.tw 的主機 IP ,而最后我們 .tw 就可在管理 ..tw 網(wǎng)域的那部主機的設定紀錄當中查詢到啦!5. 記錄暫存內(nèi)存:查到了 IP 之后,這部 的 DNS 機器總不會在下次有人查詢 .tw 的時候再跑一次這樣的流程吧!粉遠粉累的吶!而且也很耗系統(tǒng)的資源與網(wǎng)絡的帶寬,所以呢, 這個 DNS 很聰明的會先記錄一份 .tw 對應 IP 的信息在自己的暫存內(nèi)存當中,以方便下一次又有人對同一個主機名

27、的要求之查詢!最后則將結果回報給 client 端!當然啦,那個記憶在 cache 當中的數(shù)據(jù),其實是有時間性的,當過了 DNS 設定記憶的時間(通??赡苁?24 小時),那么該記錄就會被釋放喔! 由這樣的分層負責您發(fā)現(xiàn)了什么?嗯!那就是:· 當一個合法的 DNS 主機里面的設定修改了之后,來自世界各地任何一個 DNS 的要求,都會正確無誤的顯示正確的主機名對應 IP 的信息,因為他們會一層一層的尋找下來,所以,要找您的主機名對應的 IP 就一定得要透過您的上層 DNS 主機的紀錄才行!所以只要您的主機名字是經(jīng)過上層合法的 DNS主機的設定的,那么就可以在 Internet 上面被查

28、詢到啦!呵呵!很簡單維護吧,機動性也很高。 · 在主機的暫存內(nèi)存記錄當中,由于是有時間性的,所以當您的主機名在 DNS 當中被修改了之后,但是由于之前的舊信息還記憶在其他的 DNS 主機的暫存內(nèi)存里面,所以啦,可能在別人以非您的 DNS 主機來查詢您的主機名時,就會得到先前的舊信息,這個時間差不多可能是 10 分鐘到 2 天左右,這也是為什么我們常說當您修改了一個 domain name 之后,可能要 2 3 天后才能全面的啟用的緣故啦!· 每一部可以記錄主機名與 IP 對應的 DNS 服務器都可以隨意更動他自己的數(shù)據(jù)庫對應, 因此主機名與域名在各個主機底下都不相同。舉例來

29、說, idv.tw 是僅有臺灣才有這個 idv 的網(wǎng)域 因為這個 idv 是由 .tw 所管理的,所以只要臺灣 .tw 維護小組同意,就能夠建立該網(wǎng)域喔! 好啦!既然 DNS 這么棒,然后我們又需要架站,所以需要一個主機的名稱,因此, 那么我們需要架設 DNS 了嗎?當然不是,為什么呢? 剛剛鳥哥提到了很多次的合法的字眼,因為他就牽涉到授權的問題了! 我們在前面的申請合法的主機名當中也提到, 只要主機名合法即可,不見得需要架設 DNS 的啦!· DNS 使用的 port number :好了,既然 DNS 系統(tǒng)使用的是網(wǎng)絡的查詢,那么自然需要有開 Listen 的 port 啰 (

30、監(jiān)聽的埠號 )!沒錯!很合理!那么 DNS 使用的是那一個 port 呢?那就是 53 這個 port 啦!您可以到您的 Linux 底下的 /etc/services 這個檔案看看!搜尋一下 domain 這個關鍵詞,就可以查到 53 這個 port 啦!但是這里需要跟大家報告的是,通常, DNS 查詢的時候,是以 udp 這個較快速的數(shù)據(jù)傳輸協(xié)議 (protocol) 來查詢的,但是萬一沒有辦法查詢到完整的信息時,就會再次的以 TCP 這個協(xié)定來重新查詢的!所以啟動 DNS 的 daemon (就是 named 啦) 時,會同時啟動 TCP 及 udp 的 53 這個 port numbe

31、r 喔!關于授權的意義:很多朋友都認為 架設 DNS 可以設定主機的名稱,而我要架站需要主機有名字,因此一定需要架設 DNS ,只要有 DNS,我的主機就可以有名字了! 是這樣嗎?當然不是!這是錯誤的觀念!怎么說呢?從上面圖三的圖示當中,您應該不難發(fā)現(xiàn),當我要搜尋 .tw 主機時,就需要向管理 ..tw 這個網(wǎng)域的那部機器查詢才行,而要查詢 ..tw 則需要在 ..tw 上面詢問才可以!這是因為上層 DNS 主機 ..tw 已經(jīng)將 ..tw 這個網(wǎng)域的管理權

32、"授權" 給 .tw 這部機器,當有人要查詢 ..tw 這個網(wǎng)域的主機 IP 時, ..tw 將會把查詢的任務直接轉給 .tw 去管理了!從此, ..tw 這個網(wǎng)域的管理主機,將不會再接管 .tw 這個網(wǎng)域的名稱管理! 是否很像人類社會的授權的概念?也就是說,當您老板充分的授權給您某項工作的時候,從此, 要進行該項工作的任何人,從老板那邊知道您才是真正有權的人之后,都必須要向您請示一樣! _!所以啰,如果您要架設 DNS ,而且是可

33、以連上 Internet 上面的 DNS 時,您就必須要透過上層 DNS 主機的授權才行!這是很重要的觀念喔!等一下我們在底下會介紹一個如何架設一個 經(jīng)過合法授權的 DNS 主機哩!其實,如果將上面的話改換成: 我要架站,所以我要讓我的主機有一個合法的名字! 那樣就合理了!怎么說呢?因為我可以請上層 DNS 幫我設定主機名對應 IP 就可以啦!如此一來,要找我的 hostname 對應 IP 的人,都可以直接在我的上層 DNS 里面找到,根本不需要透過我的 Linux 主機吶!例如鳥哥研究室的 .tw 就可以在 .tw 這

34、部管理 DNS 的 server 上面找到不必親自來我的 .tw 上面找!也就是說,藉由 DNS 系統(tǒng)最大的功能主機名轉譯成 IP 這個動作,那么您只要向任何一個合法的 DNS 主機申請一個主機名, hostname 給您的 Linux 主機,讓大家都可以藉由該 DNS 主機來查詢到您的 Linux 之 IP ,就可以使用該主機名來架站啦!就是這么簡單!好了,那么您就應該知道了,要讓您的主機名對應 IP 且讓 Internet 上面的計算機都可以查詢的到,就需要: 1. 上層 DNS 的授權讓您設定 DNS 主機,或者是; 2. 直接請上層 DNS 主機來

35、幫您設定! 這兩種模式。舉例來說,鳥哥的 Linux 教學網(wǎng)站主機名為 ,鳥哥是向上層 .org 的 ISP 注冊了 的領域名,但鳥哥申請的是自己管理 DNS 服務器,所以我網(wǎng)站的數(shù)據(jù)庫放在哪里呢?圖四、授權與數(shù)據(jù)庫的差異看到了嗎? 是向上層 ISP 注冊的,而 ISP 則是提供授權給鳥哥 (NS 的標志), 至于鳥哥的 則是直接記錄在鳥哥的 DNS 服務器上面。所以,萬一鳥哥的 DNS 服務器掛點, 那么雖然 ISP 有紀錄 這一部主機的 IP ,但是大家都無法查

36、到 的 IP 喔! 為什么呢?瞧一瞧圖三啊!因為授權的關系嘛!對于 NS 及 A 標志不熟沒關系, 后面就會立刻講到這個咚咚啰!那么哪種模式比較好呢?這沒有一定的答案, 底下我們來談一談,您比較適合哪一種模式的設定呢?網(wǎng)站代管還是自己設定 DNS:如果您曾經(jīng)申請過 domain name 的話,例如向 Hinet 或 Seednet 等臺灣各大主要 ISP 申請 domain name 的話,應該都會知道有兩種主要的模式,就是剛剛上頭提到的 DNS 授權,或者是直接交給 ISP 來管理。交給 ISP 管理的, 就可以稱作是域名代管啦!當然啦,如果您是學校單位的話,或

37、者是企業(yè)內(nèi)部的小單位,那么就得請您向上層 DNS 主機的負責人要求啰!無論如何,您只能有兩個選擇就是了,要不就是請他幫忙您設定好 hostname 對應 IP ,要嘛就是請他直接將某個 domain name 段授權給您做為 DNS 的主要管理網(wǎng)域。那么我怎么知道那個方式對我比較好呢?請注意,由于 DNS 架設之后,會多出一個監(jiān)聽的 port ,所以理論上,是比較不安全的!因此,能不設當然就不要設定比較好啰!所以,這里的建議如下:· 需要架設 DNS 的時機:· 您所負責需要連上 Internet 的主機數(shù)量龐大:例如您一個人負責整個公司十幾部的網(wǎng)絡 Server ,而這些

38、 Server 都是掛載您的公司網(wǎng)域之下的。這個時候想要不架設 DNS 也粉難啦! · 您可能需要時常修改您 Server 的名字,或者是您的 Server 有隨時增加的可能性與變動性; · 不需要架設 DNS 的時機:· 網(wǎng)絡主機數(shù)量很少:例如家里或公司只有需要一部 mail server 時; · 您可以直接請上層 DNS 主機管理員幫您設定好 Hostname 的對應時; · 您對于 DNS 的認知不足時,如果架設反而容易造成網(wǎng)絡不通的情況; · 架設 DNS 的費用很高時! 正解與反解的 Zone 意義:講了這許多,還得再提一

39、提關于正解、反解與 Zone 的問題才行??!· 什么是正解與反解?我們在前頭的開宗明義當中就提到啦, DNS 系統(tǒng)本來最主要的功能就是在轉譯 hostname 與 IP 啰,由于計算機在網(wǎng)絡上面其實認識的只是 IP 啦,所以,一般來說,我們稱由 hostname 去尋找出 IP 的程序稱為 正解 , 至于由 IP 去查詢得到 hostname 那就被稱為反解了!正反解的設定情況是差異性很大的!怎么說呢?· 正解:在正解的情況之下,我們可以透過主機分層設定的方式來查詢 (例如前面的圖三),而因為是 Hostname 對應 IP ,所以即使在不同網(wǎng)段的 IP ,仍然可以寫在同一

40、個 domain 之中!例如鳥哥的主機是在學校里面 (140.116.xxx.xxx),但是鳥哥申請的是 vbird.idv.tw 這個 domain 的名稱,而很多朋友則是以 ISP 提供的 IP (例如 61.xxx.xxx.xxx) 來進行 *.idv.tw 的申請的!呵呵!那么一來,我的 vbird.idv.tw 就與大家的 *.idv.tw 在同一個 domain 的設定當中啰,但是這些主機卻是在不同的網(wǎng)域之中喔 (140.116.xxx.xxx 不會跟 61.xxx.xxx.xxx 在同一個網(wǎng)段中吧! _) !所以啰,任何一部 DNS 都可以將您的 IP 寫入他們的正解當中啰!&#

41、183; 反解:但是反之則不行!怎么說呢?因為當初 IP 規(guī)劃分配的時候,就必需要一個區(qū)域一個區(qū)域的劃分的,所以當然不可能同一個網(wǎng)段的 IP 在不同的地方出現(xiàn)吧!因為這涉及到 TCP/IP 的協(xié)議與 router 的架構因此,同一個 IP 網(wǎng)段的反解就真的得要透過上層 IP 網(wǎng)域的 DNS 服務器設定才行了!所以由 IP 反查 hostname 的話,大部分的情況下就需要向直屬的上層 IP 網(wǎng)域申請了! 舉個例子來說:我想要自己的領域名的名字,所以我可以去外面的 ISP 申請注冊一個合法的名字來架設我的 DNS !從此之后,別人就可以經(jīng)過我的 DNS 正解查詢得到我的主機 IP。但是如果要由

42、IP 反查回 hostname 的話,我就一定必需要請管理我主機所在網(wǎng)域的上層的 DNS 管理員來設定才行!這也是目前比較麻煩的地方,因為正解您可以自行設定, 但是反解則必需要請上層的管理員設定!如果是向 ISP 申請的 IP ,那就得向 ISP 申請反解名稱改換,這個部分通常很麻煩· 什么是 Zone ?知道正反解之后,再來要來知道一下,什么又是 Zone (區(qū)域) 呢?說的簡單一點的話,一個正解或反解的設定就是一個 zone ,例如我要規(guī)范 vbird.idv.tw 這個 domain 的設定內(nèi)容,那么他就是一個 zone !通常,一個配置文件就是一個 zone ! 如果以鳥哥的

43、 vbird.idv.tw 這個例子來說,配合上面的 圖三 來說明, 那鳥哥的 vbird.idv.tw 那部主機里面至少需要知道 . (root) 以及鳥哥自身的設定, 所以,這個 domain 的 DNS 配置文件里面,必需要有:· hint( root ) 的設定; · vbird.idv.tw 這個 domain 的正解設定; · localhost 的正解設定(非必要); · localhost 的反解設定(非必要)。 那么我就有四個 zone 了!如果以我們系館的 DNS 主機 .tw 來說的話,他至少要有:

44、· hint(root); · .tw 正解; · .tw 反解以及 ; · localhost 正解; · localhost 反解。 等五個 zone 的定義啰!嘿!您會發(fā)現(xiàn),我沒有 vbird.idv.tw 這個 domain 的反解設定為什么呢?請參考上面的說明吧!因為反解需要要求 IP 協(xié)議的上層來設定才行!并且,需要特別留意的是,每一個 zone 都有一個配置文件,而規(guī)定這些配置文件檔名的,就交給 /etc/named.conf 這個參數(shù)檔來設定!Tips:在新版的 Linux distr

45、ibution 當中,為了安全性的考慮, 所以將這個檔案放置在 /var/named/chroot 當中喔!需要特別注意! 也就是說, DNS server 使用的 bind 這個套件中,他的主要參數(shù)檔是 /etc/named.conf ,而這個檔案當中就是記錄了每一個 zone 的配置文件檔名!實際上,主機名與 IP 的對應就是記錄在各個 zone 的配置文件內(nèi)· 正反解一定要成套嗎?好了,正反解需不需要成套產(chǎn)生,在這里不用多說明了吧? _!請注意喔,在很多的情況下,尤其是目前好多莫名其妙的領域名產(chǎn)生出來, 所以,常常會只有正解的設定需求而已。不過也不需要太過擔心啦, 因為通常在反

46、查的情況中,如果您是使用目前臺灣地區(qū)最流行的 ADSL 上網(wǎng)的話,那么 ISP 早就已經(jīng)幫您設定好反解了!例如:1這個 seednet 的浮動式 IP 反查的結果會得到 11. 這樣的主機名!所以在一般我們自行申請領域名的時候,您只要擔心正解的設定即可! 不然的話,反正反解的授權根本也不會開放給您,您自己設定得很高興也沒有用呀! _Tips:事實上,需要正反解成對的大概僅有 mail server 才需要吧!由于目前網(wǎng)絡帶寬老是被垃圾、廣告郵件占光, 所以 Internet 的社會對于合法的 mail server 規(guī)定也就

47、越來越嚴格。如果您想要架設 mail server 時, 最好具有固定 IP ,這樣才能向你的 ISP 要求設定反解喔!以 hinet 為例的反解申請:bbb:/ DNS 服務器的套件、種類與 cache only 主機設定:談完了一些基礎概念后,接下來讓我們來聊一聊,那如何設定好 DNS 服務器??? 這當然就得由套件安裝談起啦!趕緊來玩一玩吧!架設 DNS 所需要的套件:終于廢話都說完了!相信您大概也有點累的吧?鳥哥是蠻累的啦,因為手臂、 肩頸酸痛的毛病頗嚴重.咦!講這個干嘛? _ 好啦,我們終于要來安裝 DNS 所需要的套件了!還記得前面提過的,我們要使用的 DNS 就是使用柏克萊大學發(fā)展

48、出來的 BIND (Berkeley Internet Name Domain, BIND) 這個套件啦!那么怎么知道您安裝了沒?還記得 基礎篇 里面的 RPM 嗎?對啦!就是使用 RPM 來檢驗啰:萬一沒裝怎么辦?嗄!還問我趕快將您的原版光盤拿出來,然后將他安裝上去先不會安裝? 請自行拿出鳥哥的 Linux 私房菜 - 基礎學習篇去觀察一下 RPM 的用法吧! 當然啦,更好的作法就是利用 yum install bind 即可??!此外,那個 bind-chroot 是干嘛用的?所謂的 chroot 代表的是 change to root 的意思, 那個 root 代表的是根目錄。早期的 bi

49、nd 默認將程序啟動在 /var/named 當中,但是該程序可以在根目錄到處轉移, 因此若 bind 的程序有問題時,則該程序會造成整個系統(tǒng)的危害。為避免這個問題, 所以我們將某個目錄指定為 bind 程序的根目錄,由于是根目錄, 所以 bind 便不能離開該目錄!所以如果該程序被攻擊,了不起也是在某個特定目錄底下搞破壞而已。 CentOS 默認將 bind 鎖在 /var/named/chroot 目錄中喔! _BIND 的默認路徑設定與 chroot好了,現(xiàn)在我們知道 BIND 這個 DNS 服務器的設定需要有· 本身的配置文件:主要規(guī)范主機的設定、zone file 的所在、

50、權限的設定等; · 數(shù)據(jù)庫檔案:記錄主機名與 IP 對應的等。 其中 BIND 的配置文件為 /etc/named.conf ,而在這個檔案里面可以規(guī)范 zone file 的完整檔名喔! 也就是說,你的 zone file 其實是由 /etc/named.conf 所指定的,所以 zone file 檔名可以隨便取啦! 只要 /etc/named.conf 內(nèi)規(guī)范為正確即可。一般來說, CentOS 的默認目錄是這樣的:· /etc/named.conf :這就是我們的配置文件啦! · /etc/sysconfig/named :是否啟動 chroot 及額外的

51、參數(shù),就由這個檔案控制; · /var/named/ :數(shù)據(jù)庫檔案默認放置在這個目錄 · /var/run/named :named 這支程序執(zhí)行時默認放置 pid-file 在此目錄內(nèi)。 不過,為了系統(tǒng)的安全性考慮,一般來說目前各主要 distributions 都已經(jīng)自動的將你的 bind 相關程序給他 chroot 了! 那你如何知道你 chroot 所指定的目錄在哪里呢?就是上面提到的那個 /etc/sysconfig/named 啦! 你可以先查閱一下:事實上里面有意義的就只有上面這一行,意思是說:我要將 named 給他 chroot ,并且變更的根目錄為 /v

52、ar/named/chroot 喔!由于根目錄已經(jīng)被變更到 /var/named/chroot 了,但 bind 的相關程序是需要 /etc, /var/named, /var/run . 等目錄的,所以實際上咱們 bind 的相關程序所需要的所有數(shù)據(jù)會是在:· /var/named/chroot/etc/named.conf · /var/named/chroot/var/named/zone_file1 · /var/named/chroot/var/named/zone_file. · /var/named/chroot/var/run/named

53、/. 哇!真是好麻煩不過,不要太擔心!因為新版本的 distributions 通常幫您作好一些連結對應了! 舉例來說,你依舊可以使用 /etc/named.conf 來設定你的 DNS ,為什么呢?因為 CentOS 主動的幫你將 /var/named/chroot/etc/named.conf 連結到 /etc/named.conf 啰! 另外,絕大部分默認的 zone file 數(shù)據(jù)庫檔案也都主動的幫你做好連結了!請自行進入 /var/named 去 ls 一下吧! _Tips:事實上, /etc/sysconfig/named 是由 /etc/init.d/named 啟動時所讀入的,

54、 所以你也可以直接修改 /etc/init.d/named 這個 script 哩! 另外你需要注意到的是 /var/run/named/ 這個目錄是要讓 bind 的程序 (named) 寫入用的, 所以他的權限必需要讓 named 這個使用者可以寫入才行!這個可重要的很!· BIND 的升級:必須請大家注意的是,這個 DNS 的 53 port 其實也不是個很安全的咚咚,所以呢,非必要,其實是不太建議啟用 DNS 的啦!不過,如果真的要安裝的話,那么請隨時注意您的 Linux distribution 是否有定時的公告的漏洞修補套件呢?這個真的很重要,因為鳥哥很久很久以前,就是被

55、這個 port 53 給種植了一個蠕蟲,真是討厭的很! _另外,舊版的使用者使用新的 9.x 版以后的 BIND 時,由于主動幫你設定好 chroot , 你可能一開始會不太適應,不過,不建議你拿掉 chroot 的功能!畢竟 DNS 的 port 53 是需要 root 身份啟動的, 具有一定的危險性,所以,給他 chroot 畢竟是比較妥當啦!您說是吧!DNS 的 master/slave 架構在 DNS 的設定上面,基本上,您必須要已經(jīng)很清楚 zone 是什么了,否則很難繼續(xù)設定喔!會搞的一塌糊涂的無論如何,您一定要知道的是, bind 的配置文件,就是 /etc/named.conf。

56、 不過,由于 chroot 的關系,這個檔案也可能會在 /var/named/chroot/etc/ 當中, 另外,針對 DNS server 的類型大致上可以分為三類,分別是:· Master:這種類型的 DNS 本身含有領域名的配置文件 (就是有 Zone 啦!), 這個配置文件就是設定正解或者是反解的Database啰!所以他本身是具有提供 Internet 查詢所需的數(shù)據(jù)喔!例如我可以在我的主機上面設定提供 vbird.idv.tw 這個網(wǎng)域,那么我的主機就是 master 類型的主機啦!· Slave:假設你的 DNS 服務器總共管理 50 部主機的 IP 與主機

57、名的對應好了, 同時假設你只有一部 DNS 服務器時,那么萬一由于網(wǎng)絡問題或者是主機的軟、硬件問題,導致這個服務終止了, 想一想,你那 50 部主機的 hostname 與 IP 的對應還能不能找的到?是吧! 所以,一般來說, DNS 系統(tǒng)通常會建議您至少要有兩部主機提供 DNS 的服務不過,如果您有四部 DNS 主機提供這樣的名稱解析服務, 而且這四部是互相為備援的,也就是說,這四部主機的內(nèi)容其實是一模一樣的, 那么如果您要更動一個 IP 與名稱的對應時,就必須要手動去修訂四部主機的內(nèi)容, 這樣會不會很麻煩啊?!這個時候就有 slave 類型的 DNS 主機出現(xiàn)了!不過,slave主機必須要與 master 主機相互搭配喔! 以上面的案例來說明,如果我必須要有四部主機提供 DNS 服務,且四部內(nèi)容相同, 那么我只要指定一部主機為 Master ,其他三部為該 Master 的 Slave 主機, 那么當要修改一部名稱對應時,我只要手動更改 master 那部機器的配置文件,然后, 重新啟動 BIND 這個服務后,呵呵!其他三部 slave 就會自動的被通知更新了! 這樣一來,在維護上面可就輕松寫意的多了Tips:如果您設定 Master/Slave 架構時,您的 Master 主機必須要限制 只有某些特定 IP 的主機能夠取得您 Ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論