并不是這樣,DNS根服務器只會保存.com、.net、.org等頂級域的DNS服務器IP地址。
什么是DNS?
我們都知道,網站需要在服務器上運行,每臺服務器又對應著一個獨一無二的IP,IP就像是門牌號一樣,我們可以通過IP來找到服務器并訪問網站。
但是IP地址通常是一串類似于xxx.xxx.xxx.xxx格式的無規律無意義的字符,這對普通用戶來講很難記住,同時也不利于網站的推廣。
看到這,有人會說這不對呀,我們平常都是直接輸入域名就可以訪問網站了,根本不需要通過IP呀?其實這都是DNS的功勞。
DNS(Domain Name System),翻譯過來叫做域名系統,是整個互聯網的一項核心服務,它保存了所有的域名與IP的對應關系,正是因為DNS的存在,才使得我們可以通過域名來很方便的訪問網站。
舉個例子:
當我們在瀏覽器地址欄輸入www.baidu.com并按回車時,此時我們電腦其實并不知道www.baidu.com這個域名對應的服務器IP地址是什么,怎么辦?
向知道的人問呀!此時電腦會向DNS服務器發起一個查詢請求,意思就是說請告訴我www.baidu.com這個域名對應的IP地址是多少,DNS服務器找到對應的記錄后就會將IP返回給我們電腦,這時電腦就可以直接通過IP訪問到網站了,當然這只是大體的流程,這個例子其實只是想讓大家知道DNS的作用就是將域名解析成IP。
域名結構
再介紹DNS域名解析過程之前,先簡單介紹一下域名的結構。
還是以www.baidu.com為例:
怎么最后面多了個.?是的,你沒看錯,.其實是默認的根域名。在最早期,域名是必須以點號結尾的,當我們訪問www.baidu.com時必須輸入www.baidu.com.才行,只有這樣DNS服務器才能正確解析。后來人們發現,既然訪問所有域名都要多一個點,為了方便,這事就交給DNS服務器自動幫我們加上吧,所以現在我們就不需要手動在域名結尾加點了。
知道了根域名的存在,我們再來看看域名的結構:
一個域名從結構上主要可分為根域、頂級域、二級域、三級域(主機名)等幾個主要層次。根域默認為點號;頂級域常見的有國際型的如com、net、org等,代表國家和地區的如cn、uk、de等;二級域名是開放注冊的,每個人都可以注冊;三級域名,即主機名,域名擁有者可隨意進行設置,通常一個三級域名就對應了一臺主機服務器。
DNS域名解析過程
了解了域名的相關知識后,我們再來講講DNS域名解析的過程。
全世界的域名那么多,把所有域名和IP的對應信息都保存到一臺DNS服務器中,全世界每個人訪問網站都需要來查詢DNS記錄,這么大的查詢量再好的服務器也抗不住呀,怎么辦呢?事實上,DNS服務器是根據域名的層級進行分層查詢的。
這話怎么理解呢?我們還是以訪問www.baidu.com為例,由上面提到的域名結構知識我們可以知道,www.baidu.com實際上應該是www.baidu.com.才對,所以DNS域名解析流程如下:
1、首先查找根域.對應的DNS服務器的IP信息,因為DNS根服務器的IP地址都是公開的,每個人都可以獲取到。截止到2020年5月13號,DNS根服務器共有13組,共1091臺服務器實例組成。
2、找到根域的DNS服務器IP后,我們本地的電腦向根域DNS服務器發起查詢請求,詢問www.baidu.com對應的IP是多少,但是根域DNS服務只會保存下一級也就是頂級域的DNS服務器IP信息。根域DNS服務器發現本次查詢的域名屬于.com域,于是就會返回給我們管理.com域的DNS服務器IP地址。意思就是說我不知道www.baidu.com對應的IP是多少,但是它屬于.com域下,我給你.com域的DNS服務器IP,你去那里查詢吧。
3、收到返回的.com域的DNS服務器IP地址后,我們再次向.com域DNS服務器發起查詢,詢問www.baidu.com對應的IP是多少,但是.com域DNS服務只會保存下一級也就是二級域的DNS服務器IP信息。.com域DNS服務器發現本次查詢的域名屬于.baidu二級域,于是就會返回給我們管理.baidu域的DNS服務器IP地址。意思就是說我不知道www.baidu.com對應的IP是多少,但是它屬于.baidu域下,我給你.baidu域的DNS服務器IP,你去那里查詢吧。
4、收到返回的.baidu域的DNS服務器IP地址后,我們再次向.baidu域DNS服務器發起查詢,詢問www.baidu.com對應的IP是多少,這個時候.baidu域DNS服務器發現查詢的三三級域是www,而三級域的信息正是由.baidu域DNS服務器進行管理的,到這里我們也就最終查到了www.baidu.com對應的IP地址了。
總結
DNS是互聯網的一項核心服務,它保存了所有的域名與IP的對應關系,可以使我們更方便的訪問各種網站。
一個域名從結構上主要可分為根域、頂級域、二級域、三級域(主機名)等幾個主要層次。
DNS服務器是根據域名的層級進行分層查詢對應IP的,流程是首先向根域DNS服務器查詢頂級域所在的DNS服務器IP,接著向頂級域DNS服務器查詢二級域所在的DNS服務器IP,再根據域名層級依次向下進行遞歸查詢、最終找到域名對應的IP地址。