什麼是dns?
dns( domain name system)是「網域名稱系統」的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於tcp/ip網路,它所提供的服務是用來將主機名和網域名稱轉換為ip位址的工作。dns就是這樣的一位「翻譯官」,它的基本工作原理可用下圖來表示。
dns網域名稱稱
網域名稱系統作為乙個層次結構和分布式資料庫,包含各種型別的資料,包括主機名和網域名稱。dns資料庫中的名稱形成乙個分層樹狀結構稱為域命名空間。網域名稱包含單個標籤分隔點,例如:im.qq.com。
完全限定的網域名稱 (fqdn) 唯一地標識在 dns 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表。 下圖顯示與主機稱為 im 內 qq.com dns 樹的示例。 主機的 fqdn 是 im.qq.com。
dns 域的名稱層次結構
dns域命名空間的組織方式
按其功能命名空間中用來描述 dns 網域名稱稱的五個類別的介紹詳見下表中,以及與每個名稱型別的示例。
dns 和 internet 域
網際網路網域名稱系統由名稱序號產生器構負責維護分配由組織和國家/地區的頂級域在 internet 上進行管理。 這些網域名稱按照國際標準 3166。 一些很多現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的dns網域名稱稱如下圖:
資源記錄
dns 資料庫中包含的資源記錄 (rr)。 每個 rr 標識資料庫中的特定資源。我們在建立dns伺服器時,經常會用到soa,ns,a之類的記錄,在維護dns伺服器時,會用到mx,cname記錄。
常見的rr見下圖:
dns服務的工作過程
當 dns 客戶機需要查詢程式中使用的名稱時,它會查詢本地dns 伺服器來解析該名稱。
客戶機傳送的每條查詢訊息都包括3條資訊,以指定伺服器應回答的問題。
● 指定的 dns 網域名稱,表示為完全合格的網域名稱 (fqdn) 。
● 指定的查詢型別,它可根據型別指定資源記錄,或作為查詢操作的專門型別。
● dns網域名稱的指定類別。
dns 查詢的過程如下圖所示。
1、在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個**對映關係,如果有,就先呼叫這個ip位址對映,完成網域名稱解析。
2、如果hosts裡沒有這個網域名稱的對映,則查詢本地dns解析器快取,是否有這個**對映關係,如果有,直接返回,完成網域名稱解析。
3、如果hosts與本地dns解析器快取都沒有相應的**對映關係,首先會找tcp/ip引數中設定的首選dns伺服器,在此我們叫它本地dns伺服器,此伺服器收到查詢時,如果要查詢的網域名稱,包含在本地配置區域資源中,則返回解析結果給客戶機,完成網域名稱解析,此解析具有權威性。
4、如果要查詢的網域名稱,不由本地dns伺服器區域解析,但該伺服器已快取了此**對映關係,則呼叫這個ip位址對映,完成網域名稱解析,此解析不具有權威性。
5、如果本地dns伺服器本地區域檔案與快取解析都失效,則根據本地dns伺服器的設定(是否設定**器)進行查詢,如果未用
**模式,本地dns就把請求發至13臺根dns,根dns伺服器收到請求後會判斷這個網域名稱(.com)是誰來授權管理,並會返回乙個負責該頂級網域名稱伺服器的乙個ip。
本地dns伺服器收到ip資訊後,將會聯絡負責.com域的這台伺服器。這台負責.com域的伺服器收到請求後,如果自己無法解析,它就會找乙個管理.com域的下一級dns伺服器位址(qq.com)給本地dns伺服器。當本地dns伺服器收到這個位址後,就會找qq.com域伺服器,重複上面的動作,進行查詢,直至找到www.qq.com主機。
6、如果用的是**模式,此dns伺服器就會把請求**至上一級dns伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根dns或把轉請求轉至上上級,以此迴圈。不管是本地dns伺服器用是是**,還是根提示,最後都是把結果返回給本地dns伺服器,由此dns伺服器再返回給客戶機。
從客戶端到本地dns伺服器是屬於遞迴查詢,而dns伺服器之間就是的互動查詢就是迭代查詢。
附錄:本地dns配置**與未配置**資料報分析
新建一dns,具體怎麼建我這裡就不再描述了
1、dns伺服器不設**
在192.168.145.228伺服器上安裝上wireshark軟體,並開啟它,設定資料報為udp過濾,在192.168.145.12客戶機上用nslookup命令查詢一下www.sohu.com,馬上可以看到本地dns伺服器直接查全球13臺根域中的某幾台,然後一步步解析,通過遞代的方式,直到找到www.sohu.com對應的ip為220.181.118.87。
本地dns伺服器得到www.sohu.com的ip後,它把這個ip返回給192.168.145.12客戶機,完成解析。
2、dns伺服器設定**
因www.sohu.com網域名稱在第一步的驗證中使用過,有快取,為了不受上步實驗干擾,我們在客戶機上192.168.145.12上nslookup www.baidu.com。從圖上看,本地dns把請求**至192.168.133.10伺服器,133.10伺服器把得到的ip返回給本地dns,然後本地dns再把ip告訴dns客戶機,完成解析。
菜鳥東哥
Linux 系統DNS解析原理
dns 網域名稱的解析,也稱a記錄,cdn伺服器 配置檔案位置 vi etc resolv.conf dns就像乙個倒掛的樹,定點是點.www.baidu.com www.baidu.com.實際上有乙個點的 根伺服器 edu com 頂級網域名稱,根伺服器,共13個 org.net.cn baid...
DNS解析原理
使用者訪問 流程框架 第一步 客戶端使用者從瀏覽器輸入www.baidu.com 後回車,系統會查詢本地hosts檔案及dns快取資訊,查詢是否存在 對應的ip解析記錄。如果有就直接獲取到ip位址,然後訪問 一般第一次請求時,dns快取是沒有解析記錄的 第二步 如果客戶端沒有dns快取或hosts沒...
DNS解析原理
2 如果hosts裡沒有這個網域名稱的對映,則查詢本地dns解析器快取,是否有這個 對映關係,如果有,直接返回,完成網域名稱解析。3 如果hosts與本地dns解析器快取都沒有相應的 對映關係,首先會找tcp ip引數中設定的首選dns伺服器,在此我們叫它本地dns伺服器,此伺服器收到查詢時,如果要...