|
論壇說明 | 標記討論區已讀 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-06-11, 08:24 PM | #1 |
榮譽會員
|
Windows 2000 上 DNS Client 快取 的困擾
如果您有上過網際網路的課程,您就應該知道一件事,那就是當您使用網頁瀏覽器去連結時,一定要鍵入對方的網址,或是由超連結(HyperLink)的方式連結到對方的網址上,而這些名稱在網際網路上是透過網域名稱伺服器(DNS)來完成名稱的解釋,能夠正確的指定到所要連結的IP位址上。
這種方式看似簡單,其實在伺服器端還有很大的學問,在網際網路的技術中,名稱解析伺服器為了能夠提供上萬甚至是上百萬、千萬的人可以同時上線查詢,所以提供了一個遞迴式(Round Robin)的查詢服務,什麼叫做遞迴式的查詢?就是同樣的一個名稱位址可以依序的查詢到不同的 IP 位址,請看以下的案例: 使用第一次 ping 查詢 edu.uuu.com.tw (註:您必須在win95,NT 4.0,Linux的環境下執行才算,在Windows 2000 上的的環境有不同的做法,請看完本文章) C:\>ping -n 2 edu.uuu.com.tw Pinging edu.uuu.com.tw [61.219.220.195] with 32 bytes of data: Reply from 61.219.220.195: bytes=32 time=100ms TTL=119 Reply from 61.219.220.195: bytes=32 time=90ms TTL=119 Ping statistics for 61.219.220.195: Packets: Sent = 2, Received = 2, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 90ms, Maximum = 100ms, Average = 95ms C:\> 以上 ping 後面所跟著的 -n 2的參數是做兩次檢查的回應,如果是在Linux的環境下請用 -c 2 的參數,其意義的相同的。所以您可以看到以上所作回應的 IP 位址是 61.219.220.195。 可以再執行一次,會得到以下的結果: C:\>ping -n 2 edu.uuu.com.tw Pinging edu.uuu.com.tw [61.219.220.196] with 32 bytes of data: Reply from 61.219.220.196: bytes=32 time=100ms TTL=119 Reply from 61.219.220.196: bytes=32 time=201ms TTL=119 Ping statistics for 61.219.220.196: Packets: Sent = 2, Received = 2, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 100ms, Maximum = 201ms, Average = 150ms C:\> 您有沒有注意到以上的結果,相同名稱的查詢卻查詢到另一個 IP 的位址 61.219.220.196,咦!為什麼兩次相同的指令卻產生兩個不同的結果呢?我告訴您,如果您繼續的執行下去還會出現四、五個不同的 IP 位址,一直要等到四、五個都查詢完畢以後才會又回到出現第一個所查詢的 IP 位址。 這就是所謂在名稱解析中的遞迴式查詢,這有什麼好處呢?答案是可以做均衡負載(Load Balance),因為再網際網路上成千上萬的使用者要伺服器提供服務,但在網際網路上的每一台伺服主機都有它服務數量的上限,如果所服務的數量超過了那個上線後,其回回應案的動作就會變得相當的遲緩,讓上網的使用者無法接受,所以如果有了這個均衡負載的功能,我們就可以同時使用多台伺服器來同時對網路上不同的使用者來提供服務,這就是均衡負載(Load Balance)。 當然今天我們要提的並不是網域名稱伺服器要如何來設定這個遞迴式(Round Robin)的查詢,而是告訴您在名稱查詢的用戶端會發生什麼問題? 我告訴您,當您依照我前述的方式在 Windows 2000 的環境中去執行的話(不管是 Windows 2000 的 Professional 或是 Server 或是未來 Windows 2002版本的操作系統 ),您會說一句話,那就是〔那耶阿ㄋㄟ〕,因為您不管怎麼查來查去都是查到同一個 IP 位址,然後您一定會說另一句話:〔老豬!您騙人〕。 這個很詭異的答案是在 Windows 2000的設計理念上出的問題,我們知道 Windows 2000是以查詢DNS的方式到 AD 的目錄服務中找到驗證伺服器在哪裡,為了要達到用最快速、最有效率的方式,讓用戶端能夠迅速的找到網域的驗證伺服主機?所以在Windows 2000的環境中,主動的在DNS用戶端的環境裡,加入了DNS快取(快取)的功能,所以當您第一次在找到了目的主機的IP位址以後,操作系統就會將所查詢到的名稱及IP位址記錄在本機的DNS快取的緩衝區中,所以下一次用戶端還需要再查詢時,就不需要到DNS伺服主機上來查詢,而直接使用本機DNS 快取中的資料即可,您可以練習以下的範例作為主要的參考。 C:\>ping www.uuu.com Pinging www.uuu.com [61.219.220.206] with 32 bytes of data: Reply from 61.219.220.206: bytes=32 time=590ms TTL=119 Reply from 61.219.220.206: bytes=32 time=200ms TTL=119 Reply from 61.219.220.206: bytes=32 time=711ms TTL=119 Reply from 61.219.220.206: bytes=32 time=831ms TTL=119 Ping statistics for 61.219.220.206: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 200ms, Maximum = 831ms, Average = 583ms C:\>ipconfig/displaydns Windows 2000 IP Configuration localhost. ------------------------------------------------------ Record Name . . . . . : localhost Record Type . . . . . : 1 Time To Live . . . . : 31012469 Data Length . . . . . : 4 Section . . . . . . . : Answer A (Host) Record . . . : 127.0.0.1 www.uuu.com. ------------------------------------------------------ Record Name . . . . . : www.uuu.com Record Type . . . . . : 1 Time To Live . . . . : 3580 Data Length . . . . . : 4 Section . . . . . . . : Answer A (Host) Record . . . : 61.219.220.206 1.0.0.127.in-addr.arpa. ------------------------------------------------------ Record Name . . . . . : 1.0.0.127.in-addr.arpa Record Type . . . . . : 12 Time To Live . . . . : 31012468 Data Length . . . . . : 4 Section . . . . . . . : Answer PTR Record . . . . . : localhost C:\> 以上我是在 Window 2000的環境中作 ping [url]www.uuu.com的動作,在執行完吆/url]^應的動作後,又執行的一個 ipconfig/displaydns 的指令,於是Windows 2000的操作系統便會將系統內 DNS 快取 中的資料顯示出來,所以您會看到有一筆 [url]www.uuu.com的名稱IP位吝/url]}的記錄,這就是Windows 2000在用戶端中所提供的 DNS快取功能,有了這項DNS快取功能,會讓您在每一次去查詢 DNS的時候都會回應到相同的一個IP位址。 我想當初Windows 2000設計這項功能的美意是在加速用戶端電腦的驗證連結,可是他們萬萬的也沒想到會影響到另外一項作業,那就是網頁瀏覽器的查詢,反而會因為此項原因都只會查詢某一台主機的IP位址,也讓許多的網路管理師丈二金剛摸不著腦袋,想著〔那耶阿ㄋㄟ〕,是不是我的DNS伺服器設定錯了,拚命的檢查自己所建立的名稱伺服器環境,可是還是不得其門而入。 要解決這項問題其實很簡單,那就是要想辦法將Windows 2000上的 DNS用戶端中的快取功能給取消掉,其取消的方式執行以下的指令: C:\>net stop dnscache DNS Client 服務正在停止. DNS Client 服務已經成功停止。 以上所執行的是 net stop dnscache,再按下 Enter 鍵後,Windows 2000會重新的設定 DNS Client 的服務將快取的功能給停止,所以在停止這項服務以後,您便可以依照最上 ping 的指令再作一次測試,便可以的到正確的遞迴查詢的結果。 不過最後我還是要整理幾點作為您是否要取消 DNS 用戶端查詢功能參考的依據: DNS用戶端快取的功能雖然會暫存一個所對應的IP位址,可是在查詢不到該IP上的服務時,依然會執行下一個IP位址的查詢,它不會因此只查詢一個IP位址(如果您的DNS伺服器上有建立遞迴性的記錄),但如果查不到要查第二的IP位址的記錄時會變得較慢。 所以,如果這項套用是在您企業對內的網路上,您不太需要調整DNS用戶端的環境,因為您必須保證您的驗證伺服器必須是存活的。 如果您用戶端的主機是主要對外查詢名稱使用的主機,您可以考慮將 DNS 用戶端的快取功能給停止。 如果您要重新的啟動DNS用戶端快取的功能,您可以再次執行以下的指令: C:\>net start dnscache DNS Client 服務正在啟動. DNS Client 服務已經啟動成功。 其他有關 DNS用戶端快取功能的指令有以下的幾個項目供您作參考: ipconfig/displaydns 檢視 DNS 用戶端快取中的資料內容 ipconfig/flushdns 清除DNS 用戶端快取中的資料內容 |
送花文章: 3,
|
主題工具 | |
顯示模式 | |
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
軟體 - USB碟整合「深山紅葉」啟動碟(光碟版)的方法: | psac | 應用軟體使用技術文件 | 9 | 2006-08-26 08:30 PM |
軟體 - Outpost 4.0新特性預告 | psac | 應用軟體使用技術文件 | 2 | 2006-07-06 08:14 PM |
作 Windows 2000/XP 自動化安裝光碟片 - 套用軟體安裝自動化 | psac | 作業系統操作技術文件 | 15 | 2006-06-06 11:04 AM |
Windows server 2003設置使用必備技巧 | sgpsdavid | 作業系統操作技術文件 | 5 | 2004-09-02 05:41 PM |
104種木馬的清除方法 | psac | 應用軟體使用技術文件 | 6 | 2003-08-03 03:56 PM |