在任何現在的TCP/IP網絡中,最重要的構成之一就是DNS服務器。DNS服務器可以完成的事情很多,例如把一個互聯網URL解析成IP地址;解析本地網絡中的主機名稱;提供Windows活動目錄所依賴的基礎架構。因此,部署一個DNS服務器並不是一件非常簡單的事情。
為了幫助一些新手朋友更好的了解DNS服務器,本文和大家討論一些部署DNS服務器的經驗和常識,介紹DNS服務器可以勝任的角色,以及DNS服務器在網絡中應該部署的位置,還有,對於你的網絡來說,應該部署多少DNS服務器才是最佳選擇。
你需要多少DNS服務器?
一般來說,對於一些大型網絡,僅僅依靠一個DNS服務器來滿足名稱解析的需要,不是一個最佳的方式。那麼到底多少個DNS服務器才能滿足你的需要呢?涉及到的因素可能很多,讓我們從DNS服務器的能力開始說起。
即時你的DNS服務器是一台中等配置的服務器,它能處理的名稱解析請求也是驚人的。舉個例子來說,以前在一篇老的微軟文章中看到過,把安裝在一台Pentium III 700MHz的計算機上Windows Server 2003作為一台專門的DNS服務器,它能夠每秒處理一萬多個名稱解析。如果微軟的這個數據正確的話,你可以根據你的網絡中的名稱解析的數量,來估算一下你需要的DNS服務器數量。
除非你工作在一個大型公司,當你看到這個數字的時候,可能會想你的DNS服務器可能永遠不會達到這個負載,那麼是不是部署一台DNS服務器就足夠了呢?
有很多理由可以說明,部署一個單一的DNS服務器是一個很差的想法。我將在文章中介紹這些不同的理由。其中最具說服力的一個理由就是容錯的問題。如果你的網絡中只有一個DNS服務器,而一旦這個DNS服務器出了問題,那麼你的網絡將停止正常運行。因此,出於容錯的目的,你將至少需要部署兩台DNS服務器。
DNS服務器角色
容錯只是需要部署多DNS服務器的不同理由之一;一個DNS服務器可以完成多個不同的任務。公司通常根據這些DNS服務器所行使的角色,來決定是否要部署多台DNS服務器。或者,從性能上來說,一台DNS服務器可以完美的同時勝任多個角色,但是從安全角度來講,讓一個DNS服務器同時做很多其他事情顯然不是一個好想法,尤其是這個DNS服務器要被曝露在外部的話,更加不安全。即使不考慮安全方面的問題,讓一個DNS服務器干兩樣工作顯然也會影響這個服務器的性能。
在下面的部分,我將介紹一個DNS服務器可以擔任的不同角色,以及擔任這些角色對DNS的影響。
提供互聯網接入
從技術上來說,一個DNS服務器本身並不提供互聯網接入服務。但是,它使你的網絡中的用戶可以訪問互聯網。我相信大家應該知道,每一個網站都對應一個相應的IP地址。為了訪問一個網站,計算機必須知道這個站點的IP地址。因此,每一個訪問網站的計算機都需要進行一個DNS查詢來獲得被請求網站的IP地址。
如果你只是想為你的網絡中的用戶提供互聯網接入,那麼從技術上來講,你並不需要部署一個DNS服務器,通常情況下,你的網絡服務提供商都有自己的DNS服務器,你可以使用它們。你只需要在網絡屬性中TCP/IP配置中,在首選DNS中輸入你的網絡提供商的DNS服務器地址就可以了。
盡管網絡接入商提供了DNS服務器供用戶使用,從而要想實現網絡訪問並不一定需要部署一個本地的DNS服務器,但是很多公司還是選擇部署一個本地DNS服務器,好處是擁有一個本地DNS服務器可以節省帶寬資源,因為它可以緩存已經解析過的地址。
舉個例子來說,假若你的網絡中的某個人需要訪問Google的網址www.google.com。他在浏覽器中輸入這個網址後,浏覽器到DNS服務器上去解析google.com的域名。你的DNS服務器然後將這個查詢往上提交到你的網絡接入商的DNS服務器。網絡接入商的DNS服務器將解析後的信息發回給本地DNS服務器,再返回給最初發出請求的浏覽器。
這個過程聽起來似乎有些低效,但是你的DNS服務器現在知道了Google網站的IP地址。當另一個用戶試圖訪問Google網站的時候,本地DNS服務器已經知道到了這個IP地址,因此它不再將請求轉發給你網絡接入商的DNS服務器。你可以部署一個緩存DNS,不用必須登記你的DNS服務器的IP地址。事實,從安全角度來看,這也是最佳選擇,你可以使用一個私有地址,從而不允許該服務器被公網上的計算機訪問。
通過一個已經緩存了IP地址的DNS服務器,使得域名解析的過程變得更加高效,所需的時間更少,因為整個解析過程在本地就可以完成,而且你也節省了帶寬資源。
活動目錄的基礎
如果你正在打算部署一個使用活動目錄的Windows網絡,那麼你別無選擇,至少安裝一台DNS服務器,因為活動目錄(Active Directory)缺了DNS服務器就不會正常運行。正如我前面所解釋的,DNS是一個非常重要的服務,因此你最後部署多台DNS服務器以實現容錯。
在一個活動目錄環境中,DNS服務器被用來幫助查找域控制器。活動目錄要求你使用的DNS服務器支持DRV記錄,因此,在Windows Server 2003中包含的DNS服務可以滿足這個要求。
活動目錄要求DNS服務器來定位域控制器;網絡中的活動目錄中的計算機通常也使用DNS服務來解析網絡主機的名稱。Windows 2000以前版本的Windows使用NetBIOS名,那麼它們能夠使用WINS作為它們主要的名稱解析方法。現在,WINS已經幾乎不被使用,大多數公司使用NDS作為解析網絡主機名稱的方法。---http://www.bianceng.cn
如果你發現自己必須去部署一個DNS,因為你使用的是活動目錄網絡,那麼你會很高興的知道,你將自動享受緩存DNS所帶來的好處,這一點我們在前面已經介紹過。在一個活動目錄網絡中,你不能使用網絡接入商的DNS服務器來解析你本地網絡上的主機名,所以你需要一個在本地網絡中的DNS服務器,這個網絡中的所有主機的網絡配置中的首選DNS服務器都要指向這個DNS服務器。
這種配置存在一個問題,假若網絡主機指向了一個本地DNS服務器,而不是一個網絡接入商的DNS服務器,那麼沒有辦法來解析網絡域名。不過,你可以把你的網絡接入商的DNS服務器作為一個轉發地址增加到你的本地DNS服務器中。這樣,你就創建了一個存儲轉發DNS,它既可以滿足支持活動目錄的需要,有可以在你的本地網絡中解析名稱。
架設互聯網域
另一種需要DNS服務器的情況是托管一個互聯網域。通常情況下當一個公司擁有一個互聯網域名的時候,它們實際上可以架設一個使用這個域名的網站,但是他們也可以架設一個Web服務器或其他類型的互聯網訪問資源。為了簡單起見,在本文中我們假定公司想要架設它們自己的網站。
正如我前面所解釋的,每一個網站都有一個IP地址。當一個用戶決定訪問這個網站的時候,他們會輸入網站的網址,但是浏覽器必須通過DNS查詢來獲得這個網站的IP地址。
這就意味著,假如你想架設一個自己的網站的話,你將需要讓一個公眾可以訪問的DNS服務器,其中包含你要架設網站的服務器的IP地址。而且,在你登記注冊你的域名的時候,DNS服務器需要已經准備好,因為注冊的地方會要求你提供DNS服務器的IP地址,作為這個域的權威DNS。你可以選擇在以後修改這個DNS服務器的IP地址,但是通常需要24-48小時才能生效。
當你考慮將這個DNS服務器作為你的互聯網的權威DNS的時候,要記住這個DNS服務器不一定必須是你的網絡的一部分。事實上,大多數網絡接入商會允許你使用他們的DNS服務器作為你的域名的權威DNS。當你把你的網站托管在網絡接入商的時候,這個服務通常是免費的。
根據你的網絡接入商提供的服務的等級,最好的辦法是讓它們來維護與你的網站相關的DNS記錄。這樣可以讓你不用自己去維護DNS服務器,而且具有一定的安全性。很重要的一點是注意查看你的網絡接入商的服務等級協議,因為這個DNS服務器需要24*7運行。
讓你的網絡接入商管理你的DNS記錄的另一個好處是,這樣可以節省你的額互聯網帶寬資源。如果你自己架設自己的DNS服務器,遞歸式DNS查詢會消耗大量的帶寬,這可能會沖擊你的路由器並消耗你的帶寬。
當然,也有一個缺點,如果將DNS記錄交給網絡接入商來維護,當需要修改網站服務器的地址的時候,維護起來沒有自己直接在在自己的DNS服務器上修改那麼方便。
部署位置對網絡性能的影響
在上面我們已經討論了一些DNS服務器的常見應用,以及出於容錯目的應采取部署多DNS服務器的方法。還有一個很重要的事情,當你在網絡中部署DNS服務器的時候,要考慮性能。
舉個例子來說,盡管在前面我們提到,即時一個非常舊的DNS服務器從原理來說也可以每秒處理高達10000次名稱解析的任務。擁有一個可以處理如此大數量名稱解析的服務器是非常不錯,但是你必須考慮它對你的網絡其他部分的影響。舉個例子來說,架設你有一個由五個網段組成的網絡,你將兩台DNS服務器(互為容錯)放在其中一個網段內。
那麼你會面臨這種情況,所有其他網段內的網絡計算機都會執行跨網段的DNS查詢,這有可能會加重路由器的負擔,或者阻塞DNS服務器所在的網段。因此,在你選擇DNS服務器的數量和安裝位置的時候,要盡可能的減少DNS查詢對網絡的影響。
如果你的網絡跨越一個或多個廣域網連接,那麼我推薦你在每一個廣域網內放一個DNS服務器,這樣可以防止DNS查詢阻塞廣域網連接。如果你在部署一個活動目錄網絡環境,那麼你可以創建一個活動目錄綜合區。你可以把主DNS服務器防止總部,而將輔DNS服務器防止分支機構,這樣也可以減少區域之間的數據流量,當然,在分支機構的計算機需要在網絡配置中將DNS設為離它們最近的DNS服務器。
綜述
我們可以看到,如何將DNS服務器分布在你的企業中是一個很重要的工作,為了實現更好的效果,你應該考慮DNS服務器所需要擔任的角色,另外安全和性能也不容忽視。