DNS服務器原理詳解及其配置

1、DNS服務器的百科名片
linux

   DNS服務器是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由解析器和域名服務器組成的。域名服務器是指保存有該網絡中全部主機的域名和對應IP地址,並具備將域名轉換爲IP地址功能的服務器。其中域名必須對應一個IP地址,而IP地址不必定有域名。域名系統採用相似目錄樹的等級結構。域名服務器爲客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器將域名映射爲IP地址的過程就稱爲「域名解析」。web

   BIND(Berkeley Internet Name Daemon)是現今互聯網上最常使用的DNS服務器軟件,使用BIND做爲服務器軟件的DNS服務器約佔全部DNS服務器的九成。BIND如今由互聯網系統協會(Internet Systems Consortium)負責開發與維護。數據庫

注:DNS服務器經過BIND軟件進行階層式的管理主機名與其對應的IP地址。vim

2、DNS服務器的類型緩存

一、 主DNS服務器(primary name server):它是特定域全部信息的權威性信息源。它從域管理員構造的本地磁盤文件中加載域信息,該文件(區文件)包含着該服務器具備管理權的一部分域結構的最精確信息。主服務器是一種權威性服務器,由於它以絕對的權威去回答對其管轄域的任何查詢。bash

二、 輔助DNS服務器(secondary name server):即從DNS服務器,它可從主服務器中複製一整套域信息。區文件是從主服務器中複製出來的,並做爲本地磁盤文件存儲在輔助服務器中。這種複製稱爲"區文件複製"。在輔助域名服務器中有一個全部域信息的完整拷貝,能夠有權威地回答對該域的查詢。所以,輔助域名服務器也稱做權威性服務器。配置輔助域名服務器不須要生成本地區文件,由於能夠從主服務器中下載該區文件。服務器

三、 高速緩存服務器(caching-only server):可運行域名服務器軟件,可是沒有域名數據庫軟  件。它從某個遠程服務器取得每次域名服務器查詢的結果,一旦取得一個,就將它放在高速緩存中,之後查詢相同的信息時就用它予以回答。高速緩存服務器不是權威性服務器,由於它提供的全部信息都是間接信息。對於高速緩存服務器只須要配置一個高速緩存文件,但最多見的配置還包括一個回送文件,這或許是最多見的域名服務器配置。網絡

3、DNS服務器如何查詢負載均衡

一、DNS服務器利用BIND軟件實現的層次化管理既能處理海量客服端的請求,又能完成局部名稱配。ide

二、DNS的查詢分爲迭代查詢和遞歸查詢。

迭代查詢:須要發出N次請求前N-1次都爲參考答案:

遞歸查詢:只發出一次請求就獲得答案

   緩存服務器迭代而來的答案保存在公共緩存中,但卻有緩存生存時間的限制,且客服端請求時緩存服務器遞歸給客服端的答案也爲參考答案(非權威答案),只有從原始服務器上能獲得權威答案。

4、域名解析

一、DNS的名稱解析庫: /var/named

二、解析中資源記錄的格式

name   [ttl]   IN 資源記錄類型 ralue (對應IP值)

三、DNS的解析類型:正向解析,反向解析

正向解析:FQDN--->IP 由主機名查詢其相應的IP;

正向解析庫文件:/var/named/magedulinux.org.zone

反向解析:IP--->FQDN 由IP查詢其相應的主機名;

反向解析庫文件:/var/named/172.16.20.zone

四、經常使用的解析資源記錄類型

A記錄(ipv4) :FQDN(完整主機名)--->ipv4 IP地址 說明一個主機的ip地址;

NS記錄       :Domain(域)--->DNS Server 說明一個域的DNS服務器是誰;

SOA記錄      : Domain ----> Master DNS 說明一個域內主DNS是誰;

CNAME記錄    :FQDN --->FQDN 一個主機名能夠有多個別名;

PTR記錄      :IP --->FQDN;

MX記錄       :Domain--->MailServer MX有優先級(0-99);

5、子域受權

一、DNS服務器的子域:父域內劃分出來的小域即爲子域。

二、子域的受權:父域創建子域並將子域的解析工做委派到額外的域名服務器,並在父域的權威DNS服務器中登記相應的委派記錄,創建這個操做的過程稱爲區域委派。

三、子域受權流程

1)在父域中劃分出一個小域並聲明子域;

# vim /var/named/magedulinux.org.zone在此文件中的後兩行添加

dns.magedulinux.org     IN    NS    dep1
dep1                    IN    A     192.168.20.1

2)建立子域的主配置文件

# vim /etc/named.conf

zone "dep1.magedulinux.org" IN {
                  type master;     
                  file "dep1.magedulinux.org.zone";
       };
zone "20.168.192.in-addr.arpa" IN {  
                  type master;
                  file "192.168.20.zone";
       };

3)建立子域的區域文件:建立正向區域文件和反向區域文件;

正向區域文件: /var/named/magedulinux.org.zone

$TTL 3600
@     IN      SOA    dns.magedulinux.org.    admin.magedulinux.org.  (
                                             2013081402
                                             2H
                                             5M
                                             7d
                                             1d          )
      IN      NS      dns        
      IN      MX 10   mail
dns   IN      A       172.16.20.1
mail  IN      A       172.16.20.2
www   IN      A       172.16.20.3
www   IN      A       172.16.20.4
web   IN      CNAME   www
dns   IN      NS      dep1
dep1  IN      A       192.168.20.1       

4)重啓服務,進行測試。

# vim /etc/resolv.conf

設置nameserver 172.16.20.1

# service named restart
# rndc reload
# dig -t A dep1.magedulinux.org


6、DNS服務器的相關命令

一、dig 命令

1)正向解析:dig -t 資源記錄類型 名稱  @server-IP

2)反向解析:dig -x IP  @server-IP

3)dig +trace 跟蹤解析過程

4)dig -t axfr zone 徹底區域傳送

5) dig -t ixfr zone 增量區域傳送

二、host命令

host -t 資源記錄類型 名稱

三、rndc命令

1) rndc reconfig 只重讀配置文件

2)rndc reload 既重讀配置文件又重讀區域數據解析庫

3) rndc status 查看狀態

4) rndc flush 清除DNS中的緩存

5) rndc querylog 打開查詢日誌

四、allow 命令

allow 命令寫入區域配置文件內 /etc/named.rfc1912.zones

1)allow-transfer { } 容許區域傳送

2)allow-query { } 容許查詢

3)allow-update { } 容許更新

4)allow-recursion { } 容許遞歸查詢

7、DNS中使用acl,view及轉發

一、基於BIND使用acl(訪問控制列表)功能

acl string { address_match_element; ... };

any,none, local, localnet

acl功能定義在區域配置文件的最上方,要先定義才能使用。

二、如何使用轉發將請求轉發出去

1)轉發類型

a/轉發全部對非本機負責解析的區域請求;

定義與 option 段 轉發全局請求

b/僅轉發對特定區域的請求;

定義與 zone 段  只轉發特定的區域請求

2)轉發的前提:接收轉發請求的服務器必須可以爲請求者作遞歸查詢。

 forwarders only

 forwarders {IP;};

三、如何實現view (視圖化) bind view

1)view要定義多個;

2)先定義區域內的客服端 (internal內網);

# view "myview" {
        zone "magedulinux.org" IN {
                type master;
                file "internal";
};
                 }
# view "VIEW_NAME" {
        match-client { any;}
        zone "magedulinux.org" IN {
                type master;
                file "external";
};
                   }

3)再定義任意的客服端   (external外網);

4)定義的規則由內至外的次序不能顛倒。

8、如何使用DNS中的日誌系統

一、日誌系統由channel和categroy組成。

二、categroy:記錄哪一個功能產生的日誌信息,一共內置有15種功能。

三、channel:日誌信息記錄到何處,通常有兩種形式,file和syslog。同時還須要指定日誌級別。

四、使用serverity定義日誌級別

critical > error > warning > notice > info  debug (level)

通常狀況下默認爲 info ,也可默認爲dynamic  

五、一個categroy產生的日誌能夠發往多個channel;而一個channel只能爲一個categroy記錄日誌。

9、DNS服務器 BIND的配置

 BIND的配置流程,

1)主配置文件 /etc/named.conf中的每一個語句都要使用;結尾

2)定義區域

3)定義各區域的全局配置

4)定義視圖

5)定義日誌

一、修改主配置文件

主配置文件 /etc/named.conf的修改,註釋掉以下選項也能夠修改

檢測主配置文件的語法錯誤  named checkconf

啓動named服務,緩存DNS服務器

二、定義新區域

在區域配置文件 /etc/named.rfc1912.zones新建一個區域

檢測區域文件語法錯誤 named-checkzone

三、建立新區域配置文件

在 /var/named 下創建「ZONE_NAME.zone」文件

一般只包含宏定義和資源記錄,並且第一個記錄必須是SOA記錄

1)一個FQDN可對應於多個IP;(負載均衡)

2)多個FQDN可對應一個IP; (一臺主機能夠有多個名稱)

四、確保主配置文件和各區域解析庫文件的權限爲640,屬主爲root,屬組爲named

相關文章
相關標籤/搜索