DNS域名系統

【本文導航】
DNS域名系統
DNS域名系統
DNS解析類型
DNS查詢類型
DNS服務器類型
資源記錄
   SOA記錄
   NS記錄
   MX記錄
   A記錄與泛域名
   PTR記錄
   CNAME記錄
   AAAA記錄
子域
區域傳送

 

DNS【域名系統】:

    DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP。

DNS【域名結構】:

    【域名】是由點號". "將各級域的名稱(lables)隔開組成(如www.www58058.com)。各lables由“數字”“字母”“-”其中的一種或多種組成。各lable長度應該在63個字符之內, 而且總長度應該不超過25563個字符,且域名最多不能超過127層。
    一個【全域名】(FQDN),即完整的完全合格域名,是指主機名加上全路徑,全路徑中列出了序列中所有域成員。

DNS域名系統01.png

    常見域:
    根域:用“.”表示;
    頂級域(一級域):常見頂級域有com、edu、mil、gov、net、org、int等;
    二級域:如178linux、google等;
    三級域:如www、bbs等;
    全球范圍內對互聯網通用頂級域名(gTLD)以及國家和地區頂級域名(ccTLD)系統的管理、以及根服務器系統,由CANN(互聯網名稱與數字地址分配機構)負責管理。

DNS【解析類型】:

    根據DNS的查詢類型非為正向解析與反向解析
    通過主機名,查詢得到該主機名對應的IP地址的過程叫做【正向解析】(FQDN –> IP)。
    反過來,如果是通過主機IP查詢得到域名的過程叫【反向解析】(IP –> FQDN),反向解析的作用為服務器的身份驗證,一般用在郵箱系統上面。
    正反向解析是兩個不同的名稱空間,是兩棵不同的解析樹,理論上不能運行在同一服務上(現在技術允許,只需配置不同查詢數據庫)。
  DNS一次完整的查詢請求流程:
    客戶端 –>hosts文件 –>本地DNS服務器緩存–> DNS 服務器遞歸 (recursion) –> 服務器緩存 –> 迭代(iteration) –> 根–> 頂級域名DNS–>二級域名DNS… 

DNS解析.png

DNS【查詢類型】:

    【遞歸查詢】是最常見的查詢方式,域名服務器將代替提出請求的客戶機(下級DNS服務器)進行域名查詢,若域名服務器不能直接回答,則域名服務器會在域各樹中的各分支的上下進行遞歸查詢,最終將返回查詢結果給客戶機,在域名服務器查詢期間,客戶機將完全處于等待狀態。即上圖右邊部分客服機向DNS服務器查詢的過程。
    【迭代查詢】又稱重指引,當服務器使用迭代查詢時能使其他服務器返回一個最佳的查詢點提示或主機地址,若此最佳的查詢點中包含需要查詢的主機地址,則返回主機地址信息,若此時服務器不能夠直接查詢到主機地址,則是按照提示的指引依次查詢,直到服務器給出的提示中包含所需要查詢的主機地址為止,一般每次指引都會更靠近根服務器(向上),查尋到根域名服務器后,則會再次根據提示向下查找。即上圖左邊部分DNS服務器幫忙客服機查詢的過程。

DNS【服務器類型】:

    【主DNS服務器】:用來管理和維護所負責解析的域內解析庫的服務器,正常情況下,一個域只有一個主DNS服務器。
    【從DNS服務器】:從主服務器或從服務器“復制”(區域傳輸)解析,主要起到分流作用,從服務器可以有多個。
    【緩存DNS服務器】(轉發器):本身不提供DNS解析,僅提供DNS信息查詢和緩存操作。

【資源記錄】

    區域解析庫由多個資源記錄組成(Resource Record, RR),主要類型有A, AAAA, PTR, SOA, NS, CNAME, MX。

DNS域名系統03.png
                  (linux.com.區域的部分資源記錄文件)

    SOA: Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄,必須位于解析庫的第一條記錄;
    A:——internet Address,將FQDN映射為IP
    AAAA:—將FQDN映射為IP IPv6
    PTR:—-PoinTeR,將IP映射為FQDN
    NS:—–Name Server,專用于標明當前區域的DNS服務器
    CNAME:–Canonical Name,別名記錄
    MX:—–Mail eXchanger,郵件交換器

  資源記錄【語法】: name  [TTL]  IN  RR_type  value

    (1) TTL可從全局繼承;
    (2) @可用于引用當前區域的名字;
    (3) 同一個名字可以通過多條記錄定義多個不同的值,此時DNS服務器會以輪詢方式響應;
    (4) 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義,此僅表示通過多個不同的名字可以找到同一個主機; 

  【SOA記錄】

    name: 當前區域的名字,也可簡寫為@,例如“linux.com”
    value: 有多部分組成
   (1) 當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;
   (2) 當前區域管理員的郵箱地址;地址中不能使用@符號,用“.”替換例如jev.linux.com.
   (3) 主從服務區域傳輸相關定義以及否定的答案的統一的TTL
  例如:

DNS域名系統04.png

    linux.com  86400  IN  SOA  dns1.linux.com.  jev.linux.com. (
          2    ;serial number,序列號,十進制數字,不能超過10位,通常使用日期
          86400 ;refresh time,刷新時間,每隔多久跟主服務器同步檢查一次
          3600  ;retry time,重試時間,應該小于refresh time
          604800;expire time,過期時間
          7200 ;negat answer ttl,否定答案的TTL值
          )

  【NS記錄】

    name: 當前區域的名字
    value: 當前區域的某DNS服務器的名字,例如ns.magedu.com.
    注意:一個區域可以有多個NS記錄;

  例如:

    linux.com.  86400  IN  NS  dns1
    linux.com.  NS  dns2

    注意:
    (1)相鄰的兩個資源記錄的name相同時,后續的可省略;
    (2)對NS記錄而言,任何一個ns記錄后面的服務器名字,都應該在后續有一個A記錄;

 【MX記錄】

    name: 當前區域的名字;
    value: 當前區域的某郵件服務器(smtp服務器)的主機名;
    一個區域內, MX記錄可有多個;但每個記錄的value之前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高;

  例如:

    linux.com.  86400  IN  MX  0  mailsrv1
    linux.com.  MX  8  mailsrv2

    注意:對MX記錄而言,任何一個MX記錄后面的服務器名字,都應該在后續有一個A記錄; 

  【A記錄】泛域名

    name: 某主機的FQDN,例如www.magedu.com.
    value: 主機名對應主機的IP地址;

  例如:

    www.linux.com.  86400  IN  A  1.1.1.1
    bbs.linux.com.   A  2.2.2.2
    mx.linux.com.  A  3.3.3.3

    如果有多條,且域名與IP存在一定對應關系,可以通過下面方式寫A記錄:

    $GENERATE  1-254  HOST$  A  1.2.3.$

    即:HOST1  A  1.2.3.1、HOST2  A  1.2.3.2  . . . HOST254  A  1.2.3.254
    避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址:

    *.linux.com.  A  1.1.1.1

    即:只要用戶輸入的后綴是.linu.com.,不管前面是什么,都解析為1.1.1.1 

  【PTR記錄】

DNS域名系統05.png

    name: IP,有特定格式,把IP地址反過來寫, 1.2.3.4,要寫作4.3.2.1;而有特定后綴: in-addr.arpa.,所以完整寫法為: 4.3.2.1.in-addr.arpa.
    value: FQDN

  例如:

    4.3.2.1.in-addr.arpa.  86400  IN   PTR   www.linux.com.

    如1.2為網絡地址,可簡寫成:

    4.3  86400  IN   PTR  www.linux.com.

    注意:網絡地址及后綴可省略;主機地址依然需要反著寫;  

  【CNAME】別名記錄
    name: 別名的FQDN
    value: 真正名字的FQDN
  例如:

    www.linux.com.  86400  IN   CNAME  websrv

  【AAAA記錄】
    name: FQDN
    value: IPv6
  例如

    www.linux.com.  86400  IN  AAAA  fe80::20c:29ff:fe29:b0bf

 【子域】

    子域授權:每個域的名稱服務器,都是通過其上級名稱服務器在解析庫進行授權;如:
    根域對com子域的授權

DNS域名系統06.png

    com域對linux.com子域的授權

DNS域名系統07.png

 區域傳送】

  輔助DNS服務器跟主服務器從主DNS服務器或其他輔助DNS服務器請求傳輸數據的過程;分為完全區域傳送、增量區域傳送;完全區域傳送(AXFR),即每次同步傳送區域所有數據;增量區域傳送(IXFR),即每次只傳送區域中改變的部分數據。

【相關鏈接】:DNS域名解析系統搭建

 

 

 

 

 

 

 

 

 

原創文章,作者:Jev Tse,如若轉載,請注明出處:http://www.www58058.com/64885

(1)
Jev TseJev Tse
上一篇 2016-12-26 21:05
下一篇 2016-12-26 22:26

相關推薦

  • python第二周

    #python數據結構(list) ## 分類 數值型:int、float、complex、bool 序列對象:字符串 str ? 列表 ?list ? 元組 ?tuple 鍵值對: 集合 set ? 字典 dict   ## 數字的處理函數 math.e ?math.pi: 自如常數和π round(): ?四舍六入五去偶 floor(): ?取…

    Linux干貨 2017-09-23
  • Ansible playbook

    目錄 1.1        playbook簡介… 1 1.2        Playbook使用場景… 1 1.3      &nbs…

    Linux干貨 2015-12-06
  • lamp的搭建

    方法一編譯安裝amp:   1.系統環境:CentOS 6,7       CentOS6:apr,apr-util的版本為1.3.9,不適合httpd-2.4    CentOS7:apr,apr-util的版本為1.4+2.開發環境需要安裝:    Developm…

    Linux干貨 2016-10-16
  • 軟件包管理

    一、軟件運行環境     API: Application Programming Interface         POSIX: Portable OS     程序源代碼 –>…

    Linux干貨 2016-08-22
  • Linux Bash腳本編程練習

    馬哥教育網絡班23期+第九周課堂練習 Linux Bash腳本編程練習 練習 1.寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell (即用戶的shell不是/sbin/nologin) 分別統計這2類用戶的個數,通過字符串比較來實現 腳本: 測試結果:  。。。 2.寫一個腳本 (1)獲取當前主機的主機名 保存于hostname…

    Linux干貨 2016-11-28
  • 任務計劃配置

        任務計劃:         linux任務計劃,周期任務執行         未來的某個時間點執行一次任務:at,batch:系統自行選擇空閑時間去執行此處指定的任務 &n…

    Linux干貨 2016-09-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-27 15:18

    條理清晰,知識點全面,很優秀的文章,標題有問題哦,DNS,nds?細心點哦

欧美性久久久久