DNS总结
一、DNS
(1)簡介
域名系統(英文:Domain Name System,縮寫:DNS)是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便地訪問互聯網。
DNS 協議也是應用層的協議,DNS 使用客戶-服務器模式運行在通信的端系統之間,在通信的端系統之間通過下面的端到端運輸協議來傳送 DNS 報文。
DNS使用TCP和UDP端口53。當前,對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
(2)DNS服務器
1、本地域名服務器LDNS
每個電腦里面都設置了本地DNS服務器(簡稱LDNS)地址,需要的時候,就向LDNS發出請求,LDNS在網上問權威域名服務器(簡稱權威DNS)得到答案。
2、 權威域名服務器
負責對請求作出權威的回答。權威DNS中存儲著記錄,最常見的3種:A記錄(記錄某域名和其IP的對應),NS記錄(記錄某域名和負責解析該域的權威DNS),CNAME記錄(負責記錄某域名及其別名)。權威能直接回答的,就回A記錄;需要其他權威DNS回答的,就回NS記錄,然后LDNS再去找其他權威DNS問;如果該記錄是別名類型的,就回CNAME,LDNS就會再去解析別名。
3、頂級域名服務器(Top-Level Domain, TLD)
對于每個頂級域名比如 com、org、net、edu 和 gov 和所有的國家級域名 uk、fr、ca 和 jp 都有 TLD 服務器或服務器集群。TDL 服務器提供了權威 DNS 服務器的 IP 地址。
4、根域名服務器
全球只有13臺(這13臺IPv4根域名服務器名字分別為“A”至“M”),1個為主根服務器在美國,由美國互聯網機構Network Solutions運作。其余12個均為輔根服務器,其中9個在美國,2個在歐洲(位于英國和瑞典),1個在亞洲(位于日本)。
13 臺根服務器無法應對全球互聯網用戶的查詢請求,使用IP任播技術為這13臺服務器部署了上千臺鏡像服務器,其中我國境內有F、I、J、K、L服務器的鏡像。
二、?DNS工作原理
(1)DNS 工作概述
1、分布式、層次數據庫
首先分布式設計首先解決的問題就是 DNS 服務器的擴展性問題,因此 DNS 使用了大量的 DNS 服務器,它們的組織模式一般是層次方式,并且分布在全世界范圍內。沒有一臺 DNS 服務器能夠擁有因特網上所有主機的映射。相反,這些映射分布在所有的 DNS 服務器上。
2、DNS 層次結構
根 DNS 服務器 、頂級域 DNS 服務器、權威 DNS 服務器
(2)DNS 查詢步驟
通常情況下 DNS 會將查找的信息緩存在瀏覽器或者計算機本地中,如果有相同的請求到來時,就不再會進行 DNS 查找,而會直接返回結果。
通常情況下,DNS 的查找會經歷下面這些步驟
1)用戶在瀏覽器中輸入網址 www.example.com 并點擊回車后,查詢會進入網絡,并且由 DNS 解析器進行接收。
2)DNS 解析器會向根域名發起查詢請求,要求返回頂級域名的地址。
3)根 DNS 服務器會注意到請求地址的前綴并向 DNS 解析器返回 com 的頂級域名服務器(TLD) 的 IP 地址列表。
4)然后,DNS 解析器會向 TLD 服務器發送查詢報文TLD 服務器接收請求后,會根據域名的地址把權威 DNS 服務器的 IP 地址返回給 DNS 解析器。
5)最后,DNS 解析器將查詢直接發送到權威 DNS 服務器權威 DNS 服務器將 IP 地址返回給 DNS 解析器DNS 解析器將會使用 IP 地址響應 Web 瀏覽器
1、DNS 解析器
DNS 解析器進行 DNS 查詢的主機和軟件叫做 DNS 解析器,用戶所使用的工作站和個人電腦都屬于解析器。一個解析器要至少注冊一個以上域名服務器的 IP 地址。DNS 解析器是 DNS 查找的第一站,其負責與發出初始請求的客戶端打交道。解析器啟動查詢序列,最終使 URL 轉換為必要的 IP 地址。
DNS 遞歸查詢和 DNS 遞歸解析器不同,該查詢是指向需要解析該查詢的 DNS 解析器發出請求。DNS 遞歸解析器是一種計算機,其接受遞歸查詢并通過發出必要的請求來處理響應。
2、DNS 查詢類型
DNS 查找中會出現兩種類型的查詢。
1)遞歸查詢
在遞歸查詢中,DNS 客戶端要求 DNS 服務器(一般為 DNS 遞歸解析器)將使用所請求的資源記錄響應客戶端,或者如果解析器無法找到該記錄,則返回錯誤消息。
2)迭代查詢
在迭代查詢中,如果所查詢的 DNS 服務器與查詢名稱不匹配,則其將返回對較低級別域名空間具有權威性的 DNS 服務器的引用。然后,DNS 客戶端將對引用地址進行查詢。此過程繼續使用查詢鏈中的其他 DNS 服務器,直至發生錯誤或超時為止。
(3)DNS 緩存
DNS 緩存(DNS caching) 有時也叫做 DNS 解析器緩存,它是由操作系統維護的臨時數據庫,它包含有最近的網站和其他 Internet 域的訪問記錄。也就是說, DNS 緩存只是計算機為了滿足快速的響應速度而把已加載過的資源緩存起來,再次訪問時可以直接快速引用的一項技術和手段。
1、DNS 緩存的工作流程
在瀏覽器向外部發出請求之前,計算機會攔截每個請求并在 DNS 緩存數據庫中查找域名,該數據庫包含有最近的域名列表,以及 DNS 首次發出請求時 DNS 為它們計算的地址。
2、DNS 緩存方式
DNS 數據可緩存到各種不同的位置上,每個位置均將存儲 DNS 記錄,它的生存時間由 TTL(DNS 字段) 來決定。
1)瀏覽器緩存
現如今的 Web 瀏覽器設計默認將 DNS 記錄緩存一段時間。因為越靠近 Web 瀏覽器進行 DNS 緩存,為檢查緩存并向 IP 地址發出請求的次數就越少。發出對 DNS 記錄的請求時,瀏覽器緩存是針對所請求的記錄而檢查的第一個位置。
2)操作系統內核緩存
在瀏覽器緩存查詢后,會進行操作系統級 DNS 解析器的查詢,操作系統級 DNS 解析器是 DNS 查詢離開你的計算機前的第二站,也是本地查詢的最后一個步驟。
三、DNS 記錄
?DNS 分布式數據庫的所有 DNS 服務器存儲了資源記錄(Resource Record, RR),RR 提供了主機名到 IP 地址的映射。每個 DNS 回答報文中會包含一條或多條資源記錄。RR 記錄用于回復客戶端查詢。
資源記錄是一個包含了下列字段的 4 元組
(Name, Value, Type, TTL) RR 會有不同的類型,下面是不同類型的 RR 匯總表DNS 有兩種報文,一種是查詢報文,一種是響應報文,并且這兩種報文有著相同的格式
四、DNS 安全
幾乎所有的網絡請求都會經過 DNS 查詢,而且 DNS 和許多其他的 Internet 協議一樣,系統設計時并未考慮到安全性,并且存在一些設計限制,這為 DNS 攻擊創造了機會。
(1)DNS 攻擊
1、 Dos 攻擊
這種攻擊的主要形式是使重要的 DNS 服務器比如 TLD 服務器或者根域名服務器過載,從而無法響應權威服務器的請求,使 DNS 查詢不起作用。
2、 DNS 欺騙
通過改變 DNS 資源內容,比如偽裝一個官方的 DNS 服務器,回復假的資源記錄,從而導致主機在嘗試與另一臺機器連接時,連接至錯誤的 IP 地址。
3、DNS 隧道
這種攻擊使用其他網絡協議通過 DNS 查詢和響應建立隧道。攻擊者可以使用 SSH、TCP 或者 HTTP 將惡意軟件或者被盜信息傳遞到 DNS 查詢中,這種方式使防火墻無法檢測到,從而形成 DNS 攻擊。
4、 DNS 劫持
在 DNS 劫持中,攻擊者將查詢重定向到其他域名服務器。這可以通過惡意軟件或未經授權的 DNS 服務器修改來完成。盡管結果類似于 DNS 欺騙,但這是完全不同的攻擊,因為它的目標是名稱服務器上網站的 DNS 記錄,而不是解析程序的緩存。
5、DDoS 攻擊
也叫做分布式拒絕服務帶寬洪泛攻擊,這種攻擊形式相當于是 Dos 攻擊的升級版
(2)防御 DNS
防御 DNS 威脅的最廣為人知的方法之一就是采用 DNSSEC 協議。
1、DNSSEC
DNSSEC 又叫做 DNS 安全擴展,DNSSEC 通過對數據進行數字簽名來保護其有效性,從而防止受到攻擊。它是由 IETF 提供的一系列 DNS 安全認證的機制。DNSSEC 不會對數據進行加密,它只會驗證你所訪問的站點地址是否有效。
2、DNS 防火墻
有一些攻擊是針對服務器進行的,這就需要 DNS 防火墻的登場了,DNS 防火墻是一種可以為 DNS 服務器提供許多安全和性能服務的工具。DNS 防火墻位于用戶的 DNS 解析器和他們嘗試訪問的網站或服務的權威名稱服務器之間。
防火墻提供 限速訪問,以關閉試圖淹沒服務器的攻擊者。如果服務器確實由于攻擊或任何其他原因而導致停機,則 DNS 防火墻可以通過提供來自緩存的 DNS 響應來使操作員的站點或服務正常運行。
除了上述兩種防御手段外,本身 DNS 區域的運營商就會采取進步一措施保護 DNS 服務器,比如配置 DNS 基礎架構,來防止 DDoS 攻擊。
五、問題
(1)全世界有多少根DNS?
13個,其中10個在美國,英國和瑞典各1個,日本1個。
有被問到中國大陸有沒有根DNS。回答亞洲有一臺,中國有F-L根鏡像。
(2)根DNS的名字和IP都是什么?
在這個網址:
https://www.internic.net/domain/named.root
打開可以看到,里面有13個根的名字和IP,其名字從A.root-servers.net到M.root-servers.net。
A開頭那個簡稱A根,是主根,其他12個(B、C、D、E、F、G、H、I、J、K、L、M)是輔根。
(3)為什么域名解析用UDP協議
因為UDP快啊!UDP的DNS協議只要一個請求、一個應答就好了。而使用基于TCP的DNS協議要三次握手、發送數據以及應答、四次揮手。但是UDP協議傳輸內容不能超過512字節。不過客戶端向DNS服務器查詢域名,一般返回的內容都不超過512字節,用UDP傳輸即可。
(4)為什么區域傳送用TCP協議
因為TCP協議可靠性好啊!你要從主DNS上復制內容啊,你用不可靠的UDP? 因為TCP協議傳輸的內容大啊,你用最大只能傳512字節的UDP協議?萬一同步的數據大于512字節,你怎么辦?
總結
- 上一篇: 核桃怎么开 核桃打开的方法
- 下一篇: 如何备份系统 备份系统的方法