1. 程式人生 > >CentOS7.4搭建DNS緩存服務器和轉發器(四)

CentOS7.4搭建DNS緩存服務器和轉發器(四)

inter 效率 分享 oot type out def TP dns查詢

(一)簡述
一,DNS緩存服務器:DNS緩存服務器,即用來存儲計算機網絡上的用戶需要的網頁、文件等信息的專用服務器。這種服務器不僅可以使用戶得到他們想要的信息,而且可以減少網絡的交換量。緩存服務器往往也是代理服務器。由解析器和域名服務器組成的,用於TCP/IP網絡。
一個dns服務器可以既不是某個域的master服務器,也不是某個域的slave服務器,一個服務器可以不包含任何域的配置信息,它將接收到的所有dns查詢進行遞歸解析,將解析結果返回給查詢客戶端並且將查詢結果緩存下來,這樣的dns服務器稱之為caching name server
 1.通常在一個局域網中配置緩存服務器是為了加速網絡訪問
2.也可以為緩存服務器配置一個上遊dns服務器地址,緩存服務器可以給客戶提供一個上遊dns服務器的地址,我們可以通過以下設置完成:
    forwarders{218.30.19.40; };
也可以通過以下選項讓服務器轉發所有dns查詢到forwarders服務器;
    forward only;
二,轉發器, 擔當DNS名稱解析的服務器被稱為“DNS轉發器”。轉發器也是網絡上的DNS服務器,用來將內部DNS名稱的DNS查詢轉發給該網絡外的DNS服務器。
如果不將特定DNS服務器指定為轉發器,所有DNS服務器可使用其根提示在網絡外發送查詢。這樣,許多內部可能非常重要的DNS信息都可暴露在公網上。除了安全和隱私問題,該解析方法可導致大量的外部通信,且通信費用昂貴,對於慢速Internet連接的網絡或Internet服務成本很高的公司來說效率低下。而將DNS服務器指定為轉發器時,轉發器將負責處理外部通信,從而將DNS服務器有限地暴露給公網。轉發器將建立外部DNS信息的巨大緩存,因為網絡中的所有外部DNS查詢都是通過它解析的。你在很短的時間內,轉發器將使用該緩存數據解析大部分外部DNS查詢,從而減少網絡的Internet通信與DNS客戶端的響應時間。
轉發器原理:
技術分享圖片
(1)當本地DNS服務器(也是轉發器)收到查詢時,它會嘗試使用它主持和緩存的主要和輔助區域解析該查詢;

(2)如果不能使用本地數據解析查詢,此時它作為客戶端,會將查詢轉發給外網DNS服務器;

(3)本地DNS(轉發器)收到客戶端的請求後會等待一段很短的時間,等待來自外網DNS的應答;

(4)對於外網DNS來說,它接收到的查詢請求是遞歸查詢,此時,它自己需要向外層層叠代找到最終答案返回給轉發器(此時轉發器作為DNS客戶端)

(5)轉發器將外網DNS返回的查詢結果送到客戶端(非權威答案),完成解析過程。

三,轉發的類型
(1)全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,全部轉給某轉發器

    options {    
    forwarders { ip; };    #指明轉發器是誰
    forward only|first;    #only表示僅轉發 ;first表示先進行轉發,如果沒查詢到結果,那麽它自己還會根據根提示向外叠代查詢 
};
(2)局部轉發:僅轉發對某特定區域的解析請求
    options {    
    forwarders { ip; };    #指明轉發器是誰
    forward only|first;    #only表示僅轉發 ;first表示先進行轉發,如果沒查詢到結果,那麽它自己還會根據根提示向外叠代查詢 
};

(二)具體的配置
1,全局轉發配置

[root@DNS-Slave chroot]# vim etc/named.conf
/*
 Sample named.conf BIND DNS server ‘named‘ configuration file
 for the Red Hat BIND distribution.

 See the BIND Administrator‘s Reference Manual (ARM) for details about the
 configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
*/

options
{
    directory       "/var/named";       // "Working" directory
    dump-file       "data/cache_dump.db";
        statistics-file     "data/named_stats.txt";
        memstatistics-file  "data/named_mem_stats.txt";
    listen-on port 53   { any; };
    listen-on-v6 port 53    { any; };
    allow-query     { any; };
    recursion yes;
  forward first;            #本機不能解析的轉發給202.96.209.5做解析#first:首先轉發;轉發器不響應時,自行去叠代查詢;only:只轉發;
    forwarders  {
        202.96.209.5;
        210.22.84.3;
        202.96.209.133;
        223.5.5.5;
    #   114.114.114.114;
    #   8.8.8.8;
         };
    dnssec-enable yes;
    dnssec-validation yes;
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
    managed-keys-directory "/var/named/dynamic";
};
logging 
{
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
     channel gsquery {
                file "data/query.log"   versions 3 size 20m;
                severity info;
                print-time yes;
                print-category yes;
                print-severity yes;
        };
        category queries { gsquery; };
};
}

2,局部轉發

[root@DNS-Slave chroot]#vim /etc/named.rfc1912.zones 
zone "google.com.hk" IN {
    type forward;
    forward only;
    forwarders {8.8.8.8;};
    };

3,檢查語法並重啟服務

[root@DNS-Slave chroot]# named-checkconf  /var/named/chroot/etc/named.conf
[root@DNS-Slave chroot]# systemctl restart named-chroot
[root@DNS-Slave chroot]# 

CentOS7.4搭建DNS緩存服務器和轉發器(四)