DNS服務器的原理


DNS服務器的原理

DNS (Domain Name System) 域名系統的簡寫
它是一種基於tcp/upd的服務,同時監聽在TCP和UPD的53號端口。剛開始,網絡剛誕生的時候,只有很少的計算機接入網絡,而隨着個人PC的發展,網絡成爆炸性增長,單純的IP地址很難記憶,所有有了DNS服務,它可以將ip對應爲容易記憶的英文字符,也就是我們現在使用的網址。全球有13臺根服務器,而亞洲只有一臺位於日本。
爲了規範化地址的使用,出現了國際名稱地址分配機構,它將域名劃分爲幾個等級(簡單說明)
                                 .         根DNS服務器用符號點表示     
         .com            .net             .org              .cn              .tw        一級域名


ibm.com                                                                                               二級域名


所以我們通常的網址例如www.ibm.com其實是www.ibm.com. 最後面的一個點指向根服務器。

(一)DNS服務器其實就是存放域名和IP對應的數據庫文件,那麼它的查詢類型有哪些?分爲兩種
1. 遞歸查詢
2. 迭代查詢

遞歸查詢,如果A查詢不到ibm.com,服務器A會向下一個服務器B查詢,直到找到答案返回
迭代查詢,如果A沒有ibm.com,但是知道B有,就發送給PC,讓它去找B

我們的電腦在域名解析時一般採用兩種結合的方式,前半段遞歸(本地),後半段迭代(非本地)

(二)DNS服務器的解析是雙向的:
NAME----->ip :  正向解析,根據主機名查找到對應的IP
ip------>FQDN: 反響解析,根據ip查找到對應的域名

DNS服務器裏記錄這些解析的信息主要通過一些記錄類型來實現:
FQDN --->  IP :  A         A表示對應的是IP地址
IP -----> FQDN :   PTR   (pointer)       表示對應的是域名
DOMAIN ----->SERVER :  NS       (Name Server)     域名服務器的名字
DOMAIN------> MTA   : MX (Mail eXchanger)     記錄郵箱地址,郵件交換器
aliase-----> jerry   :   CNAME       解析一個別名的正式名稱    
SOA (Start Of Authority)   一般標明一個域名的主域名服務器

(三)DNS服務器類型:
本地從服務器
本地主服務器

主服務器----輔助名稱服務器
一般來講,從服務是隔一段時間和其他服務器同步,但是它也有通知的責任,只要它的數據發生變化,它就會通知其他從服務器,不管其他從服務器是否變化都會和它同步


(四)什麼是域,區域
DNS的解析需要定義一個域,而這個域下有兩個子區域,他們都用來名稱解析,名稱解析分爲兩類,一個是正向,一個是反向,需要分別定義:
正向需要一個單獨的數據文件

反向需要一個單獨的數據文件

所以說區域是物理概念,它和物理文件一一對應。而域是邏輯概念,它指名了一處“地方”。

# 一個域包含了一個正向區域和反向區域,但是區域裏也可以開闢出域,.com裏有ibm.com域和區域彼此間沒有對應關係,並非一定只有兩個區域,如果一個域裏面劃分出多個域,就不止有兩個區域


區域傳送類型
     axfr    完全區域傳送-------->傳送區域內的所有解析信息
     ixfr     部分區域傳送-------->只傳輸變化的內容

如果有一個域名新增或者移過來,那麼這個信息的修改是有主服務器來做的,而從服務器每隔一段時間會和主服務器同步信息或者說傳送信息,這種傳送叫區域傳送

(五)DNS服務器響應客戶端請求解析流程

                                                                

請求-----> 本地的/etc/hosts                                             # 如果host文件裏有解析,那麼返回host文件的解析結果,沒有下一步        

----> 本地DNS緩存                                                           # 查找本地的DNS緩存,如果有,返回結果,沒有下一步

----> 找第一臺dns服務器 ---->查找緩存                        # 查找自己定義的第一個DNS服務器,DNS服務器查找緩存,如果有,返回結果,如有沒有,下一步

----> 看看是不是自己負責的域-------> 返回結果           # 第二個DNS正好負責改域,返回結果
                                       ↓             是                                   
                                    不是                                                # 第二個自己定義的DNS ,沒有結果,直接去找根服務器再一步一步往下級域名找
                                       ↓

                            找根DNS服務器                                    

# 通過根服務器一步一步往下找的答案返回爲權威答案,而緩存返回的都是非權威答案 

說明:                         
/etc/host 可以實現域名重定向,因爲它被優先使用

緩存名稱服務器的目的是爲了: 加速,節約帶寬 ,它不負責管理區域


**轉發器: 僅僅幫用戶的請求轉發的其他服務器上,實現內外防火牆之間DNS服務器轉發數據













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章