天天看點

6.1 DNSDNS簡介域名的結構域名伺服器域名的解析過程

文章目錄

  • DNS簡介
    • 域名解析的要點
  • 域名的結構
    • 頂級域名的分類
    • 新頂級域名(New gTLD)
    • 國家頂級域名下的二級域名
  • 域名伺服器
    • 域名伺服器分類
      • 根域名伺服器(root name server)
      • 頂級域名伺服器(即TLD伺服器)
      • 權限域名伺服器
      • 本地域名伺服器(local name server)
  • 域名的解析過程

DNS簡介

  • 英文:``Domain Name System`
  • 域名系統DNS能夠把網際網路上的主機名字轉換為IP位址
  • 從理論上講,整個網際網路可以隻使用一個域名伺服器,使它裝入網際網路上所有的主機名,并回答所有對IP位址的查詢。然而這種做法并不可取。因為網際網路規模很大,這樣的域名伺服器肯定會因過負荷而無法正常工作,而且一旦域名伺服器出現故障,整個網際網路就會癱瘓。是以,早在1983年網際網路就開始采用

    層次樹狀結構

    的命名方法,并使用

    分布式的

    域名系統DNS。DNS的網際網路标準是RFC 1034,1035
  • DNS使大多數名字都在本地進行解析(resolve),

    僅少量解析需要在網際網路上通信

    ,是以DNS系統的效率很高

域名解析的要點

  • 域名到IP位址的解析過程的要點如下:
  • 當某一個應用程序需要把主機名解析為IP位址時,該應用程序就調用

    解析程式

    (resolver),并成為DNS的一個客戶,把待解析的域名放在DNS請求封包中,以UDP使用者資料報方式發給本地域名伺服器(

    使用UDP是為了減少開銷

    )。本地域名伺服器在查找域名後,把對應的IP位址放在回答封包中傳回。應用程序獲得目的主機的IP位址後即可進行通信
  • 若本地域名伺服器不能回答該請求,則此域名伺服器就暫時成為DNS中的另一個客戶,并向其他域名伺服器發出查詢請求。這種過程直至找到能夠回答該請求的域名伺服器為止

域名的結構

  • mail.cctv.com
  • com是頂級域名,标号cctv是二級域名,标号mail是三級域名

頂級域名的分類

據2012年5月的統計[W-IANA-root],現在頂級域名

TLD(Top Level Domain)

已有326個。原先的頂級域名共分為三大類:

  1. 國家

    頂級域名nTLD:采用ISO 3166的規定。如:cn表示中國,us表示美國,uk表示英國,等等。國家頂級域名又常記為ccTLD(cc表示國家代碼country-code)。到2012年5月為止,國家頂級域名總數已達296個。
  2. 通用

    頂級域名gTLD:到2006年12月為止,通用頂級域名的總數已經達到20個。最先确定的通用頂級域名有7個,即: com(公司企業),net(網絡服務機構),

    org(非營利性組織)

    ,int(國際組織),edu(美國專用的教育機構),gov(美國的政府部門),mil表示(美國的軍事部門)。
    1. 以後又陸續增加了13個通用頂級域名:aero(航空運輸企業),asia(亞太地區),biz(公司和企業),cat(使用加泰隆人的語言和文化團體),coop(合作團體),info(各種情況),jobs(人力資源管理者),mobi(移動産品與服務的使用者和提供者),museum(博物館),name(個人),pro(有證書的專業人員),tel(Telnic股份有限公司),travel(旅遊業)。
  3. 基礎結構域名(infrastructure domain):這種頂級域名隻有一個,即

    arpa

    ,用于

    反向域名解析

    ,是以又稱為

    反向域名

新頂級域名(New gTLD)

  • 值得注意的是,ICANN于2011年6月20日在新加坡會議上正式準許新頂級域名(New gTLD),是以任何公司、機構都有權向ICANN申請新的頂級域。新頂級域名的字尾特點,使企業域名具有了顯著的、強烈的标志特征。是以,新頂級域名被認為是真正的企業網絡商标。新頂級域名是企業品牌戰略發展的重要内容,其申請費很高(18萬美元),并且在2013年開始啟用。目前已有一些由兩個漢字組成的中文的頂級域名出現了,例如,商城、公司、新聞等。到2016年,在ICANN注冊的中文頂級域名已有60個[W-IANA-root]

國家頂級域名下的二級域名

  • 在國家頂級域名下注冊的二級域名均由該國家自行确定。例如,頂級域名為jp的日本,将其教育和企業機構的二級域名定為ac和co,而不用edu和com。
  • 我國把二級域名劃分為“類别域名”和“行政區域名”兩大類。
    • “類别域名”共7個,分别為:ac(科研機構),com(工、商、金融等企業),edu(中國的教育機構),gov(中國的政府機構),mil(中國的國防機構),net(提供網際網路絡服務的機構),org(非營利性的組織)。
    • 行政區域名”共34個,适用于我國的各省、自治區、直轄市。例如:bj(北京市),js(江蘇省),等等。

域名伺服器

  • 一個伺服器所負責管轄的(或有權限的)範圍叫做

    (zone)
  • 每一個區設定相應的

    權限域名伺服器

    (authoritative name server),用來儲存該區中的所有主機的域名到IP位址的映射
  • 總之,DNS伺服器的管轄範圍不是以“域”為機關,而是以“區”為機關。區是DNS伺服器實際管轄的範圍。區是“域”的子集。
  • 為了提高域名伺服器的可靠性,DNS域名伺服器都把資料複制到幾個域名伺服器來儲存,其中的一個是主域名伺服器(master name server),其他的是輔助域名伺服器(secondary name server)。當主域名伺服器出故障時,輔助域名伺服器可以保證DNS的查詢工作不會中斷。主域名伺服器定期把資料複制到輔助域名伺服器中,而

    更改資料隻能在主域名伺服器

    中進行。這樣就保證了資料的一緻性。
    6.1 DNSDNS簡介域名的結構域名伺服器域名的解析過程

域名伺服器分類

根域名伺服器(root name server)

  • 根域名伺服器是最高層次的域名伺服器,也是最重要的域名伺服器。所有的根域名伺服器都知道所有的

    頂級域名伺服器

    的域名和IP位址。根域名伺服器是最重要的域名伺服器,因為不管是哪一個本地域名伺服器,若要對網際網路上任何一個域名進行解析(即轉換為IP位址),隻要自己無法解析,就

    首先要求助于根域名伺服器

    。假定所有的根域名伺服器都癱瘓了,那麼整個網際網路中的DNS系統就無法工作
  • 據統計,到2016年2月,全世界已經在588個地點(地點數值還在不斷增加)安裝了根域名伺服器,但這麼多的根域名伺服器卻隻使用13個不同IP位址的域名,即a.rootservers.net,b.rootservers.net,…,m.rootservers.net。每個域名下的根域名伺服器由專門的公司或美國政府的某個部門負責營運
  • 但請注意,雖然網際網路的根域名伺服器總共隻有13個域名,但這不表明根域名伺服器是由13台機器所組成(如果僅僅依靠這13台機器,根本不可能為全世界的網際網路使用者提供令人滿意的服務)。實際上,在網際網路中是由13套裝置(13 installations)構成這13組根域名伺服器[W-ROOT]。每一套裝置在很多地點安裝根域名伺服器(也可稱為鏡像根伺服器),但都使用同一個域名。負責營運根域名伺服器的公司大多在美國,但所有的根域名伺服器卻分布在全世界
  • 為了提供更可靠的服務,在每一個地點的根域名伺服器往往由多台機器組成(為了安全起見,有些根域名伺服器的具體地點還是保密的)。現在世界上大部分DNS域名伺服器,都能就近找到一個根域名伺服器查詢IP位址(現在這些根域名伺服器都已增加了IPv6位址)。為了友善,人們常用從A到M的前13個英文字母中的一個,來表示某組根域名伺服器
  • 必須指出,目前根域名伺服器的分布仍然是很不均衡的。例如,在北美,平均每375萬個網民就可以分攤到一個根域名伺服器,而在亞洲,平均超過2千萬個網民才分攤到一個根域名伺服器,這樣就會使亞洲的網民上網速度明顯地低于北美的。
  • 需要注意的是,在許多情況下,根域名伺服器

    并不直接把待查詢的域名轉換成IP位址

    (根域名伺服器也沒有存放這種資訊),而是告訴本地域名伺服器

    下一步應當找哪一個頂級域名伺服器

    進行查詢

頂級域名伺服器(即TLD伺服器)

  • 這些域名伺服器負責管理

    在該頂級域名伺服器注冊的所有二級域名

    。當收到DNS查詢請求時,就給出相應的回答(可能是最後的結果,也可能是下一步應當找的域名伺服器的IP位址)。

權限域名伺服器

  • 這就是前面已經講過的負責

    一個區

    的域名伺服器。當一個權限域名伺服器還不能給出最後的查詢回答時,就會告訴發出查詢請求的DNS客戶,下一步應當找哪一個權限域名伺服器。

本地域名伺服器(local name server)

  • 本地域名伺服器

    并不屬于域名伺服器層次結構

    ,但它對域名系統非常重要。當一台主機發出DNS查詢請求時,這個查詢請求封包就

    發送給本地域名伺服器

  • 每一個網際網路服務提供者ISP,或一個大學,甚至一個大學裡的系,都可以擁有一個本地域名伺服器,這種域名伺服器有時也稱為

    預設域名伺服器

  • 當計算機使用Windows 7作業系統時,打開“控制台”,然後依次選擇“網絡和Internet”→“網絡和共享中心”→“檢視網絡狀态和任務”→“無線網絡連接配接”(假定采用家庭網絡)→“屬性”→“Internet協定版本4”→“屬性”等項目,就可以看見首選DNS伺服器和備用DNS伺服器的IP位址。這裡的DNS伺服器指的就是本地域名伺服器。本地域名伺服器離使用者較近,

    一般不超過幾個路由器的距離

    。當所要查詢的主機也屬于同一個本地ISP時,該本地域名伺服器立即就能将所查詢的主機名轉換為它的IP位址,而不需要再去詢問其他的域名伺服器。

域名的解析過程

  • 主機向本地域名伺服器的查詢一般都是采用

    遞歸查詢

    (recursive query)。所謂遞歸查詢就是:如果主機所詢問的本地域名伺服器不知道被查詢域名的IP位址,那麼本地域名伺服器就以DNS客戶的身份,向其他根域名伺服器繼續發出查詢請求封包(即替該主機繼續查詢),而不是讓該主機自己進行下一步的查詢。是以,遞歸查詢傳回的查詢結果或者是所要查詢的IP位址,或者是報錯,表示無法查詢到所需的IP位址。
  • 本地域名伺服器向根域名伺服器的查詢通常是采用

    疊代查詢

    (iterative query)。疊代查詢的特點是這樣的:當根域名伺服器收到本地域名伺服器發出的疊代查詢請求封包時,要麼給出所要查詢的IP位址,要麼告訴本地域名伺服器:“你下一步應當向哪一個域名伺服器進行查詢”。然後讓本地域名伺服器進行後續的查詢(而不是替本地域名伺服器進行後續的查詢)。根域名伺服器通常是把自己知道的頂級域名伺服器的IP位址告訴本地域名伺服器,讓本地域名伺服器再向頂級域名伺服器查詢。頂級域名伺服器在收到本地域名伺服器的查詢請求後,要麼給出所要查詢的IP位址,要麼告訴本地域名伺服器下一步應當向哪一個權限域名伺服器進行查詢,本地域名伺服器就這樣進行疊代查詢。最後,知道了所要解析的域名的IP位址,然後把這個結果傳回給發起查詢的主機。當然,本地域名伺服器也可以采用遞歸查詢,這取決于最初的查詢請求封包的設定是要求使用哪一種查詢方式。
  • 為了提高DNS查詢效率,并減輕根域名伺服器的負荷和減少網際網路上的DNS查詢封包數量,在域名伺服器中廣泛地使用了

    高速緩存

    (有時也稱為高速緩存域名伺服器)。高速緩存用來存放

    最近查詢過的域名

    以及

    從何處獲得域名映射資訊

    的記錄。
  • 由于名字到位址的綁定并不經常改變,為保持高速緩存中的内容正确,域名伺服器應為每項内容

    設定計時器

    并處理超過合理時間的項(例如,每個項目隻存放兩天)。當域名伺服器已從緩存中删去某項資訊後又被請求查詢該項資訊,就必須重新到授權管理該項的域名伺服器擷取綁定資訊。當權限域名伺服器回答一個查詢請求時,在響應中都指明綁定有效存在的時間值。

    增加此時間值可減少網絡開銷,而減少此時間值可提高域名轉換的準确性

  • 不但在本地域名伺服器中需要高速緩存,在主機中也很需要。許多

    主機在啟動時從本地域名伺服器下載下傳名字和位址的全部資料庫

    ,維護存放自己最近使用的域名的高速緩存,并且隻在從緩存中找不到名字時才使用域名伺服器。

繼續閱讀