導語:如果昨天下午(1月21日)你想上網刷刷微博看看視頻,那有點費事。幾乎全中國的大網站都上不去了。實際上,這并不是因為你家的網絡有什么毛病。看一下新聞就會知道,是國內互聯網根域名服務器出現了問題,導致域名都被指向了一個錯誤的IP地址,進而影響到這些域名的訪問。這具體是怎么回事?為什么根域名服務器的問題會有這么大的影響,這個服務器是何方神圣?
如果昨天下午(1月21日)你想上網刷刷微博看看視頻,那有點費事。幾乎全中國的大網站都上不去或者上著上著就“頁面錯誤”了。實際上,這并不是因為你家的網絡有什么毛病。看一下新聞就會知道,是國內互聯網根域名服務器出現了問題,導致域名都被指向了一個錯誤的IP地址,進而影響到這些域名的訪問。等等,為什么根域名服務器的問題會有這么大的影響,這個服務器是何方神圣?
要弄清這個問題,我們首先要知道域名解析服務(DNS)是如何工作的。一開始的時候,互聯網上并不存在域名這種簡單快捷的訪問途徑。想要訪問千里之外的一個網站或者是一臺服務器,使用的都是IP地址,也就是類似于65.49.2.178這樣的一串數字。IP地址就像生活中的電話號碼,可以精確地定位到某個特定的機器或服務。但是用著用著,人們就覺得實在是太不方便了。就像電話號碼很難記住一樣,想要靠腦袋記住大量網站的IP簡直是天方夜譚。所以,DNS就承擔起了“電話查號臺”的工作,負責幫我們將簡單好記的域名轉化為正確的IP地址,免去了記憶“電話號碼”的煩惱。只要我們知道DNS服務器的IP地址,就能查到其它所有網站的IP地址。所以我們在瀏覽器里輸入域名的時候,訪問的其實還是IP地址,只不過瀏覽器幫我們從DNS上查到了正確的IP地址,而我們平時卻不知道這個過程。
但是所有人都去同一臺DNS服務器上面查詢,也會出現問題。想像一下,有成千上萬的人同時向一個電話查號臺打電話查詢,會出現什么情況呢?少部分人打通了電話,而大多數則一直占線,查不到想要的電話號碼。同時,全世界的電話號碼都存在一個電話查號臺里,查電話的過程也會非常緩慢。為了解決這兩個問題,DNS做了這樣兩件事:首先,搭建許多DNS服務器,使它們構成樹狀結構。在查詢的時候從根域名服務器開始,一層一層地查下去。其次,為每個區域分配一臺本地域名服務器,由這臺服務器負責向根域名服務器查詢,由于本地域名服務器可以緩存,這也可以極大地減輕根服務器的負擔。
所以,我們只需要知道本地域名服務器的IP地址,并給本地域名服務器“打電話”查詢。在正常訪問某個域名的時候,如果本地域名服務器恰好沒有緩存,過程會是這樣的:
小王給本地域名服務器“打電話”:你好,我想查詢一下http://www.baidu.com對應的“電話號碼”。
本地域名服務器接線員:請稍候。
接線員查詢了手頭的記錄,發現沒有http://www.baidu.com的IP地址,于是給根域名服務器“打電話”。
本地域名服務器接線員:根域名服務器你好,我想查一下http://www.baidu.com對應的“電話號碼”。
根域名服務器接線員查閱了一下手頭的記錄:我手頭沒有具體的“電話號碼”,但是我知道.com域名服務器上可以找到。我可以給你.com域名服務器的“電話號碼”。
本地域名服務器接線員拿到.com域名服務器的“電話號碼”,繼續給它打電話。
本地域名服務器接線員:.com域名服務器你好,我想查一下http://www.baidu.com對應的“電話號碼”。
.com域名服務器的接線員在手頭的記錄上依舊找不到具體的“電話號碼”,于是告訴本地域名服務器接線員,baidu.com域名服務器上可以查到這個電話。
本地域名服務器接線員第三次撥通電話:baidu.com域名服務器你好,我想查一下http://www.baidu.com對應的“電話號碼”。
baidu.com域名服務器接線員發現手里有這個域名對應的記錄,就將http://www.baidu.com的正確“電話號碼”告訴了本地域名服務器接線員。
最后,本地域名服務器接線員把這個正確的“電話號碼”記到自己的本子上,再告知小王,才算完成了這次查詢。
當下一次另一個用戶小李給本地域名服務器“打電話”查詢http://www.baidu.com的“電話號碼”時,本地域名服務器接線員會發現自己手里的本子上已經有了上次小王查詢時留下的記錄。這次他就不需要興師動眾地給根域名服務器“打電話”了,只需要將自己本子上記錄的“電話號碼”告訴小李,就可以完成查詢。當然,如果小李和小王的查詢之間隔了很長時間,為了防止http://www.baidu.com的“電話號碼”發生改變,本子上的這條記錄會被當作無效記錄,接線員還是會去向根域名服務器重新查詢。
在了解了DNS的工作原理之后,為什么根域名服務器會有這么大的影響就顯而易見了。即使有本地域名服務器的存在,歸根結底,域名和IP地址的對應關系還是從根域名服務器提供的,本地域名服務器只起到一個緩存的作用。所以,一旦根域名服務器出現錯誤,所有想要解析域名的用戶,最終拿到的都會是一個錯誤的IP地址。既然查號臺告訴我們的是一個錯誤的電話,我們自然就打不通了。
昨天的這次事故,原因還不得而知。有可能是DNS服務器的內部故障,也有可能是由黑客攻擊導致。但無論原因如何,DNS服務器對于整個互聯網的重要程度已經顯而易見,如何保護根域名服務器不受攻擊,也會成為安全專家在今后需要特別重視的一個話題。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!