DNS—域名系統
前言:人們喜歡用便于記憶的主機名來標識主機,而路由器則喜歡定長的、有著層次結構的IP地址,為了折衷這些不同的偏好,我們需要一種能進行主機名到IP地址轉換的目錄服務,這就是域名系統DNS的主要任務,
DNS的定義
- DNS是一個由分層的DNS服務器實作的分布式資料庫
- 一個使得主機能夠查詢分布式資料庫的應用層協議(DNS協議運行在UDP之上)
DNS提供的服務
- 主機別名: 有著復雜主機名的主機可能一個或者多個別名,在有別名的情況下,有一個規范主機名,主機別名一般比規范主機名更加容易記憶,應用程式可以呼叫DNS來獲得主機別名對應的規范主機名以及主機的IP地址
- 郵件服務器別名: 類似于主機別名
- 負載分配: 繁忙的站點被冗余地分布在多臺服務器上,每臺服務器均運行在不同的端系統上,每個都有著不同的IP地址,在這種情況下,一個規范主機名對應著一個IP地址集合,DNS資料庫中存盤著這些IP地址,當客戶對映射到某地址集合的名字發出一個DNS請求時,該服務器用IP地址的整個集合來回應,但在每個回答中回圈這些地址次序,這樣,DNS就在這些冗余的服務器之間回圈地分配了負載,
DNS的作業機理
應用程式呼叫DNS客戶端—>用戶主機上的DNS客戶端向網路中發送一個DNS查詢報文—>用戶主機上的DNS客戶端接收到一個DNS回答報文—>這個映射結果被傳遞到呼叫DNS客戶端的應用程式
- 這是一個函式呼叫及回傳的程序!!!
- 所有的DNS請求和回答報文使用UDP資料報經53號埠發送
- 這個呼叫程序產生了額外的網路時延
DNS服務器的設計
此時DNS服務器對我們來說還是一個黑盒,我們只能知道它可以通過網路向DNS客戶端回傳一個主機名到IP地址的映射結果,接下來我們討論一下DNS服務器的設計理念及作業方式,
首先我們給出一個結論,DNS服務器是以樹狀結構組織的一個服務器群(分布式資料庫)
除了以上三種層次的DNS服務器,還有一種不包含在該層次結構中的稱為本地DNS服務器的DNS服務器,它起著代理的作用
查詢本地DNS服務器地址
舉例:
主機 cis.poly.edu 想知道主機 gaia.cs.umass.edu的IP地址
假設本地DNS服務器的IP為dns.poly.edu
假設gaia.cs.umass.edu的權威服務器名為dns.umass.edu
以上就是主機cis.poly.edu獲取主機gaia.cs.umass.eduIP地址的全程序,其中程序1是遞回查詢,因為dns.poly.edu以自己的名義獲得映射結果,最侄訓傳到應用程式,而程序2,4,6均是迭代查詢,就拿程序2來說,根服務器收到請求后,將向本地DNS服務器回傳負責edu的TLD服務器的IP地址串列,該本地 DNS務器則再次向這些 TLD 服務器之一發送查詢報文,4、6與二程序類似,
- 本例中共發送了8份DNS報文,為了減少由發送DNS報文產生的網路時延,我們引入了DNS快取技術(在一個請求鏈中,當某DNS服務器接收到一個回答時,它能將該回答中的資訊快取在本地存盤器中,由于主機名和IP地址的映射不是永久的,因此DNS在一段時間后丟棄快取資訊)
假設DNS服務器不是樹狀結構組織的服務器群,而就是一臺UNIX機器,會出現以下問題
- 單點故障:如果該服務器崩潰,那么整個網路都會癱瘓
- 通信容量:單個的DNS服務器必須承擔世界上所有的DNS查詢
- 遠距離的集中式資料庫:該服務器只能位于地球上的一個位置,有離的進的查詢,自然就有離得遠的查詢,離得遠的查詢可能還會經歷低速和擁塞的鏈路,這將帶來很大的時延
- 維護:記錄數目龐大,難以維護
DNS記錄
DNS資源記錄(RR)
(Name,Value,Type,TTL)TTL是該資源記錄的生存時間
- Type=A,Name–主機名,Value–IP地址
(relay1.bar.foo.com,145.37.93.126,A)- Type=CNAME,Name–主機別名,Value–規范主機名
(foo.com,relay1.bar.foo.com,CNAME)- Type=MX,Name–郵件服務器別名,Value–郵件服務器的規范主機名
(foo.com,mail.bar.foo.com,MX)- Type=NS,Name–域(foo.com),Value–知道如何獲得該域中主機地址的權威 DNS 服務器的主機名
(foo.com,dns.foo.com,NS)
注冊域名其實就是向DNS服務器群(分布式資料庫)插入DNS記錄!!!
DNS報文
查詢DNS記錄的工具-----nslookup程式

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333660.html
標籤:其他
上一篇:如何在分布式環境中搭建單點登錄系統| 第二篇:基于Oauth2.0開發SSO核心代碼
下一篇:滑動視窗協議(GBN, SR)




以上就是主機cis.poly.edu獲取主機gaia.cs.umass.eduIP地址的全程序,其中程序1是遞回查詢,因為dns.poly.edu以自己的名義獲得映射結果,最侄訓傳到應用程式,而程序2,4,6均是迭代查詢,就拿程序2來說,根服務器收到請求后,將向本地DNS服務器回傳負責edu的TLD服務器的IP地址串列,該本地 DNS務器則再次向這些 TLD 服務器之一發送查詢報文,4、6與二程序類似,
