DNS原理詳解

1、DNS概述

  domain name service  區域名稱服務或者domain named system 區域名稱系統,是互聯網最基礎的服務,分爲正向域名解析(將域名解析爲IP地址)和反向域名解析(將IP地址解析爲域名)兩部分。

2、bind

  bind(Berkeley Internet Name Domain)是當今應用最廣泛的 DNS服務器軟件,由加州大學柏克利學院開發。已經成爲事實上的業界標準。

3、DNS工作原理


   DNS系統的原理圖,類似於一個倒掛樹結構,頂端是分佈在全球的13臺根服務器,負責返回給查詢者TLD頂級域名服務器地址;TLD是按頂級域名com,net,org,net等劃分,負責管理、登記和返回對應頂級域名下的地址。

   當用戶發對某個域名發起請求後,客戶機首先查找本地HOST文件是否有對應條目,沒有則查找本地緩存是否有對應條目,仍然沒有,則向本地網絡配置的DNS服務器發起遞歸查詢(此DNS服務器通常爲網絡運營商提供,在網絡中扮演DNS緩存服務器角色,爲方便區分,後文稱之爲“電信DNS”),電信DNS收到請求後,查找本地緩存條目,緩存沒有,則開始發起迭代查詢。

   迭代查詢過程: 首先電信DNS向根服務器發起查詢請求,要服務器返回對應的TLD(頂級域名服務器)地址, 電信DNS再向所返回的TLD地址發起查詢,TLD服務器返回在TLD上已登記的查詢域NS服務器地址。電信DNS再次向查詢域的NS服務器發起查詢,NS服務器返回權威答案;電信DNS將權威答案返回給客戶機;一次查詢結束。

dns.png

4、bind版本

    Centos 6 yum自帶9.8.2

    Centos 6 yum自帶9.9.4

5、bind安裝

bind 安裝包爲Bind, bind-utils , bind-libs

bind 爲主程序安裝包

bind-utils 爲相關工具

bind-libs爲庫文件

直接使用yum install即可

6、bind服務啓動

bind服務啓動後監聽在tpc和udp的53端口

rndc: remote name domain controller,與bind安裝在同一主機,且只能通過127.0.0.1來連接named進程;提供輔助性的管理功能;臨聽在TCP的953端口

centos6使用service bind start 啓動服務

7、bind配置文件詳解

   a、主配置文件

     主配置文件包括:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

     1)、named.con 主要對bind服務的相關配置,包括option, logging和zone三部分,named.conf使用c++風格,每一行結尾要以; 結尾,所有{}的前後都要空格

       option 部分:

listen-on port 53 { 127.0.0.1; };                                    //ipv4監聽地址,默認只監聽本機,需要改爲外網網卡地址

listen-on-v6 port 53 { ::1; };                                    //ipv6臨聽地址

directory       "/var/named";                                  //工作目錄

dump-file       "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { any; };                                     /允許爲哪些地址作解析

recursion yes;                                             //是否開啓遞歸查詢

dnssec-enable yes;                                          //是否開啓dnssec

logging部分,主要定義日誌相關

zone部分,定義區域,通常默認會自帶 根區域;但通常自定義區域不會放在named.conf文件中,而是採用了include "/etc/named.rfc1912.zones“,將自定義區域載入

    2)、named.rfc1912.zones

               向文件尾部增加自定義區域

   zone "patrickli.com" IN {

       type master;               \\類型,有master、slave、hint、forward

       file "patrickli.com.zone";      \\區域配置文件,位於/var/named目錄下

      };

   b、區域配置文件

       在/var/named目錄下新建,文件名以.zone結尾,文件屬組爲named,文件權限爲640。示例如下

$TTL 1D      \\全局TTL值 

@ IN SOA ns1.patrickli.com. admin.patrickli.com (

                20160801           \\序列號

                1D               \\刷新時間

                20M              \\重試時間

                1W               \\過期時間

                2D               \\ 否定TTL值

)

patrickli.com.       IN NS    ns1.patrickli.com.    \\NS記錄

ns1.patrickli.com.     IN  A   172.16.244.5        \\A記錄

www.patrickli.com.     IN  A  172.16.244.5

   區域配置文件中,有且只能有一個SOA記錄,通常SOA記錄後應該爲NS記錄,一個NS記錄應該對應一條A記錄,還可以添加MX郵件轉發記錄,AAAA   IPV6記錄,CNAME別名記錄,PTR反向解析記錄。

MX記錄的value之前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高;    一個MX記錄後面的服務器名字,都應該在對應有一個A記錄;

例如:

  aa.com.IN  MX  10  mx1.aa.com.

         IN MX  20  mx2.aa.com.

                               

8、主從設置

      1、在主服務器上必須有對應的NS和A記錄指向從服務器

      2、主服務器的區域配置type必須爲master

      3、從服務器在增加區域,type爲slave ,同時指定masters "主服務器地址"

      4、從服務器區域配置文件位於/var/named/slaves目錄下,配置文件不用手動配置,會自動從主服務器同步過來


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