DNS 理論

DNS and Bindweb


DNS是什麼?能夠作什麼用?
數據庫


DNS(Domain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。瀏覽器

DNS應用層協議 53/udp, 53/tcp緩存




你知道www.magedu.com.這三個字段包含什麼意思?  bash


 . 是根域   .com 是表示商業組織頂級域  .magedu 是一個咱們申請的使用的二級域  www是咱們的主機名。而整個www.magedu.com.叫作FQDN,叫作徹底限定域名,就是主機名了。 服務器

    你在想爲何我在瀏覽器裏輸一個入主機名,就能夠訪問遠程的主機呢?以下介紹網絡




你知道你的主機是如何利用dns訪問互聯網的嗎?dom



注:一、本地主機首先會本地的host文件訪問的主機名對應的ip,tcp

    二、若是麼有查找本地dns緩存,(DNS Local Cache分佈式

    三、若是尚未就去向該網絡裏的dns服務器發起遞歸請求,(DNS  Server (recursion)

    四、dns服務器以迭代查詢的方式去查找主機名對應的ip地址返回給client。

以上就是一次完整的查詢請求通過的流程:

Client --> hosts文件 --> DNS Local Cache --> DNS  Server (recursion) --> 





DNS查詢類型:

遞歸查詢:發送一次請求等待對方答案

迭代查詢:屢次請求獲得答案


DNS名稱解析方式:

FQDN --> IP:正向解析

IP --> 名稱:反向解析

注意:兩者的名稱空間,非爲同一個空間,即非爲同一棵樹;所以,也不是同一個解析庫;


舉例:

域:magedu.com.

www.magedu.com.(主機名)  1.1.1.1  (ip)

ftp.magedu.com.  2.2.2.2

注:在magedu.com.下面有www.magedu.com.和ftp.magedu.com.主機,分別對應着1.1.1.1 和2.2.2.2



DNS服務器類型:

         主名稱服務器;

         輔助名稱服務器;

         緩存名稱服務器;




各自是如何工做的?

主名稱服務器;

      本身負責解析的域:直接查詢數據庫並返回答案;

      不是本身負責解析域:Server Cache --> iteration(迭代)

      主DNS服務器:維護所負責解析的域數據庫的那臺服務器;讀寫操做都可進行;


 輔助名稱服務器;

從DNS服務器:從主DNS服務器那裏或其它的從DNS服務器那裏「複製」一份解析庫;但只能進行讀操做;


主輔如何數據同步?

「複製」操做的實施方式:

序列號:serial, 也便是數據庫的版本號;主服務器數據庫內容發生變化時,其版本號遞增;

刷新時間間隔:refresh, 從服務器每多久到主服務器檢查序列號更新情況;

重試時間間隔:retry, 從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;

過時時長:expire,從服務器始終聯繫不到主服務器時,多久以後放棄從主服務器同步數據;中止提供服務;

否認答案的緩存時長:




場景:有時候數據同步有時間間隔,如何當主服務器有更新了,從服務器就立刻更新數據?

主服務器」通知「從服務器隨時更新數據;

區域傳送:

全量傳送:axfr, 傳送整個數據庫;

增量傳送:ixfr, 僅傳送變量的數據;





區域(zone)和域(domain):

magedu.com域:

FQDN --> IP

正向解析庫;區域

IP --> FQDN

反向解析庫;區域



每個解析庫文件都要有SOA

SOA是作什麼的?

用來講明一個區域內部主從服務器之間如何同步數據,以及誰是主dns。

必備:SOA:Start Of Authority,起始受權記錄; 一個區域解析庫有且只能有一個SOA記錄,並且必須放在第一條;




區域數據庫文件裏定義了dns解析須要的數據。每條數據也有其資源類型

是用來講明當前資源扮演什麼角色


NS:Name Service,域名服務器;一個區域解析庫能夠有多個NS記錄;其中一個爲主的;

A: Address, 地址記錄,FQDN --> IPv4;

AAAA:地址記錄, FQDN --> IPv6;

CNAME:Canonical Name,別名記錄;

PTR:Pointer,IP --> FQDN

MX:Mail eXchanger,郵件交換器;

     優先級:0-99,數字越小優先級越高;



SOA資源記錄的定義格式:

        語法:name  [TTL] INRR_TYPE  value


name: 當前區域的名字;例如」mageud.com.」,或者「2.3.4.in-addr.arpa.」;


value:有多部分組成

    (1) 當前區域的區域名稱(也可使用主DNS服務器名稱);

    (2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,通常使用點號來替代;

    (3) (主從服務協調屬性的定義以及否認答案的TTL)

例如:

   magedu.com.  86400   IN   SOA      magedu.com. admin.magedu.com.  (

                               2017010801; serial  注:從服務器檢查更新數據時的版本號

                               2H ; refresh     注:從服務器檢查更新的時間間隔

                               10M ; retry     注:從服務器請求沒有響應後的重試時間<refresh

                               1W; expire    注:過時時間到了後,從dns服務器將中止服務

                               1D; negative answer ttl 注:否認答案的緩存時長 

                                    )


注意:一個區域能夠有多個ns記錄; 

例如:

    magedu.com. 86400 IN NS  ns1.magedu.com.

    magedu.com. 86400 IN NS  ns2.magedu.com.




MX類型的資源記錄條目如何寫?


name: 當前區域的區域名稱

value:當前區域某郵件交換器的主機名;

注意:MX記錄能夠有多個;但每一個記錄的value以前應該有一個數字表示其優先級;

例如:

    magedu.com. IN MX 10  mx1.magedu.com.

    magedu.com. IN MX 20  mx2.magedu.com.





A的類型資源記錄條目如何寫?


name:某FQDN,例如www.magedu.com.

value:某IPv4地址;

例如:

    www.magedu.com.    IN     A    1.1.1.1

    www.magedu.com.    IN     A    1.1.1.2

    bbs.magedu.com.    IN     A    1.1.1.1



PTR類型資源記錄條目如何寫?


name:IP地址,有特定格式,IP反過來寫,並且加特定後綴;例如1.2.3.4的記錄應該寫爲4.3.2.1.in-addr.arpa.;

value:FQND

例如:

    4.3.2.1.in-addr.arpa.  IN  PTRwww.magedu.com.



CNAME類型資源記錄條目如何寫?

name:FQDN格式的別名;

value:FQDN格式的正式名字;

例如:

    web.magedu.com.  IN  CNAME  www.magedu.com.

注意:
(1) TTL能夠從全局繼承;
(2) @表示當前區域的名稱;
(3) 相鄰的兩條記錄其name相同時,後面的可省略;
(4) 對於正向區域來講,各MX,NS等類型的記錄的value爲FQDN,此FQDN應該有一個A記錄;
相關文章
相關標籤/搜索