DNS學習筆記
DNS學習筆記
DNS簡單介紹:
1.DNS:是一個由分層的dns伺服器實現的分散式資料庫,是一個允許主機查詢分散式資料庫的應用層協議
2. DNS伺服器:就相當於一個軟體程式(其實一個重要DNS伺服器是一個叢集),他一般部署在unix或者linux系統上,DNS協議是執行在UDP協議之上,使用的是53號埠
3. 獲取ip地址的過程:客戶端瀏覽器一般都整合了一個DNS客戶機,當使用者從瀏覽器的url位址列輸入地址的時候,dns客戶端主機就會獲取到該主機名,並將主機名傳送的DNS伺服器,DNS伺服器收到請求處理以後就會回答一個相應的回答,該回答中包含有傳送的主機名對應的IP地址,當瀏覽器拿到這個IP地址以後,就可以找到對應的web伺服器
4. DNS的缺點:增加了額外的延遲,增加了網路的負擔
5.DNS負載均衡機制:比如一個web伺服器的訪問量很大,就會將相同的Web伺服器部署在多個主機上,由於每一個主機的ip地址不一樣,那怎麼讓web客戶端(瀏覽器)知道該訪問哪一臺主機上的伺服器,這時就完全要靠DNS伺服器的負載均衡機制來解決。DNS伺服器中,一個主機名可能會對映到能訪問到web伺服器的很多ip地址(每個地址對應一個相同的web服務端,不是一個臺伺服器),當客戶端訪DNS伺服器的時候,DNS會將與請求的主機名的多個ip地址同時發給DNS客戶端,但是DNS雖然收到了很多ip都能訪問同一個網站,但是他一般會將排在第一的ip地址給瀏覽器使用;所以DNS通過控制返回的ip地址就可以實現負載均衡的目的;(郵件伺服器也是有很多的,也可採用這種機制的)
6.DNS伺服器種類:重要的DNS伺服器種類有4種:根DNS伺服器(全球有13個,每一個DNS伺服器都是重複的叢集,供安全使用),頂級域名DNS伺服器(有com,org,net,edu種類的DNS伺服器),權威DNS伺服器,本地伺服器
7.一個網址解析為IP的過程(忽略web快取):假設獲取www.map.baidu.com這個主機名的ip地址,DNS客戶端會將該url傳送到本地DNS伺服器,然後本地伺服器會向根DNS伺服器傳送請求,根DNS伺服器通過com字尾判斷該請求是要獲取com的頂級DNS伺服器,然後把com的頂級DNS伺服器ip發給本地DNS伺服器,本地DNS服務獲取到com的DNS伺服器ip地址之後,去訪問com的DNS伺服器,com的DNS伺服器發現了欄位baidu(其實是baidu.com欄位),然後com的DNS伺服器會將baidu.com的DNS伺服器(假設baidu.com是一個權威的DNS伺服器)的ip地址傳送給本地DNS伺服器(假設百度公司下面的很多應用都採用這個權威的DNS伺服器,因此百度權威DNS伺服器會儲存很多的本地的DNS伺服器的ip地址),客戶端本地伺服器去訪問baidu的權威DNS伺服器,百度的權威DNS伺服器向客戶端返回本地DNS伺服器的IP地址,最後本地本地DNS伺服器去訪問百度的本地DNS伺服器,本地伺服器返回一個www.map.baidu.com的ip地址,客戶端本地伺服器獲得www.map.baidu.com的ip地址以後,將給瀏覽器傳送回一個應答,應答中包含請求的主機名的ip地址,這樣瀏覽器就可以通過ip地址直接訪問對應的web伺服器。
8.權威DNS服務只是相對的,如果一個本地DNS伺服器存放了其他本地DNS伺服器的ip地址,他也可以說是其他本地DNS伺服器的權威伺服器
9.web快取:為了減少在網路中的傳輸,一般本地DNS伺服器都是有快取功能的,他會將之前訪問過的主機名與ip的對映儲存起來;以後就可以不用再去繞那麼多彎子了,同時本地DNS服務也是可以儲存com的DNS伺服器的ip,這樣就可以繞過根DNS伺服器了。
相關文章
- 學習筆記 - DNS協議筆記DNS協議
- Linux與DNS的學習筆記LinuxDNS筆記
- RHEL 5.4 RHCE253 DNS學習筆記DNS筆記
- RHCE7認證學習筆記34——DNS管理與配置筆記DNS
- numpy的學習筆記\pandas學習筆記筆記
- IT學習筆記筆記
- 學習筆記筆記
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- jQuery 學習筆記jQuery筆記
- react學習筆記React筆記
- 學習筆記(4.3)筆記
- 學習筆記(4.4)筆記
- 學習筆記(3.29)筆記
- 學習筆記(4.1)筆記
- AOP學習筆記筆記
- AspectJ學習筆記筆記
- 學習筆記(3.27)筆記
- 學習筆記(4.2)筆記
- golang 學習筆記Golang筆記
- Zookeeper學習筆記筆記
- 學習筆記(3.24)筆記
- 學習筆記(3.25)筆記
- 學習筆記(3.21)筆記
- GitHub學習筆記Github筆記
- jest 學習筆記筆記
- typescript 學習筆記TypeScript筆記
- Echarts學習筆記Echarts筆記
- js學習筆記JS筆記
- shell學習筆記筆記
- Dubbo 學習筆記筆記
- SVN 學習筆記筆記
- 笨笨學習筆記筆記
- vue學習筆記Vue筆記
- wepack學習筆記筆記