智能dns-dns日誌系統-dns壓力測試整理

dns智能及日誌系統


    本篇博客將介紹如何製作智能DNS,如何在dns服務器中添加日誌系統,以及如何使用queryperf和dnstop進行dns壓力測試


智能DNS:DNS服務器能夠根據客戶端來源所屬的網絡進行判斷,並且返回一個事先定義好的IP地址的機制 


智能DNS的應用:例如唯品會中的商品庫存,每個用戶所看到的商品商品庫存都是本區域中的商品庫存,不同區域的用戶所看到的商品庫存是不一樣的。


說明:

    本實驗操作均在VMware10上實現(Redhat Enterprise Linux 5.8),並假設有兩片區域的用戶(內網用戶,外網用戶),這裏使用inside表示內網區域,outside表示外網用戶,由於主機限制,未能實現分區演示,主機中有多快網卡的朋友可以修改不同的IP進行測試, 這裏僅測試了內網操作。


1、編輯dns主配置文件

    vim /etc/named.conf
    # 編輯完成後的內容如下:
        acl innet {
                127.0.0.0/8;
                192.168.134.0/24;
        };
        
        options {
                directory "/var/named";
                allow-recursion { innet; };
        };
        
        view inside {
                match-clients { innet; };
                zone "tb.com" IN {
                        type master;
                        file "inside.tb.com.zone";
                };  
        };
        
        view outside {
                match-clients { any; };
                zone "tb.com" IN {
                        type master;
                        file "outside.tb.com.zone";
                };  
        };

    

2、添加數據記錄文件

    vim inside.tb.com.zone 
    # 編輯資源記錄如下:
        $TTL 43200
        @       IN      SOA     ns1.tb.com.     admin.tb.com. (
                                        2016052801
                                        1H  
                                        10M 
                                        7D  
                                        1D )
                        IN      NS      ns1 
                        IN      MX  10  mail
        ns1             IN      A       192.168.134.2
        mail            IN      A       192.168.134.4
        www             IN      A       192.168.134.3
    vim outside.tb.com.zone 
    # 編輯資源記錄如下:
        $TTL 43200
        @       IN      SOA     ns1.tb.com.     admin.tb.com. (
                                        2013052801
                                        1H  
                                        10M 
                                        7D  
                                        1D )
                        IN      NS      ns1 
                        IN      MX  10  mail
        ns1             IN      A       192.168.134.2
        mail            IN      A       172.16.0.4
        www             IN      A       172.16.0.3

    

3、重啓dns服務

    service named restart

4、內網測試

wKiom1dMGCmQeFh7AAH5sAREvP4633.jpg-wh_50


5、採用bind提供的彈性日誌系統爲dns服務器添加日誌

本次操作需要主dns服務器與從dns服務器一同完成,主從dns服務器的配置參見作者上一篇博客,

這裏主dns服務器的IP設置爲:192.168.134.2,從dns服務器的IP設置爲:192.168.134.22


簡單說明:一般查詢日誌和安全日誌不開啓,信息量太大;而與更新相關的日誌應該開啓

    channel: 定義日誌存儲位置

        syslog:/var/log/messages

        file: 自定義保存日誌信息的文件

        severity: critical error warning notice info(default) debug [level] dynamic

    category: 定義記錄的日誌類別(15種類別),定義日誌源

        default,general,client,config,dispatch,dnssec,lame-servers,lame-servers

        network,notify,queries,resolver,security,update,xfer-in,xfer-out

    關係    

        channel:category 1:1

        category:channel 1:n

     即:同一日誌源的日誌信息可以記錄在多個文件中,一個文件只能記錄一個日誌源的日誌信息


    下面僅演示添加區域傳輸的日誌記錄,需要添加其它日誌的可參照下述操作自行添加


    1、編輯主配置文件

    vim /etc/named.conf
    # 添加以下內容:
    logging {
            channel xfer-log {
                    file "/var/log/named/transfer.log" versions 3 size 10k;
                    severity dynamic;
                    print-time yes;
                    print-severity yes;
            };
    
            category xfer-out { xfer-log; };
    };


    2、爲日誌文件創建目錄

    mkdir /var/log/named
    chown named:named /var/log/named
    chmod 770 /var/log/named

    

    3、在從dns服務器上執行區域同步命令

    dig -t axfr tb.com @192.168.134.2


    4、查看主dns服務器日誌信息

    

wKiom1dMJFuRW6NAAAEIxutvqsk026.jpg


6、dns壓力測試

1)通過queryperf測試(以下操作在主dns服務器中進行)

說明:bind97以後的包中都有queryperf,但是rpm在編譯時未編譯queryperf,因此使用queryperf需要自行下載bind97壓縮包並自行安裝。作者這裏使用的是bind-9.7.4.tar.gz

    1、安裝queryperf

    cd
    tar xf bind-9.7.4.tar.gz 
    cd bind-9.7.4
    cd contrib/
    cd queryperf
    ./configure
    make
    cp queryperf /bin/
    queryperf -h # 查看queryperf使用幫助


    2、使用queryperf進行測試

    cd
    vim test # 編輯需要查詢的記錄
    # 輸入格式示例(通過複製黏貼的方式多添加些記錄用於測試-10w左右):
        tb.com NS
        www.tb.com A
        mail.tb.com A
        ns1.tb.com A
    queryperf -d test -s 192.168.134.2

    以下是作者測試結果:(電腦性能弱爆了~~)

wKiom1dMKFnRminwAAJibmt_HCM175.jpg-wh_50

2)通過dnstop進行抓包測試

同樣,系統自身並沒dnstop,這裏需要自行安裝dnstop,作者這裏使用的是dnstop-20110502.gz

簡單說明:

    dnstop -4 -Q -R eth0

        -4:抓取IPv4的包

        -Q:記錄查詢數

        -R:記錄響應數

        eth0:指定網卡


    dnstop的使用請使用man dnstop自行查看


    1、安裝dnstop

    cd
    tar xf dnstop-20110502.gz
    yum install libcap-devel -y
    yum -y install libpcap-devel
    .configure
    make
    make install

    2、使用dnstop進行測試

    首先將test文件及queryperf二進制程序複製到從dns服務器中

    scp test 192.168.134.22:/root/
    scp /bin/queryperf 192.168.134.22:/bin/


     接着在主dns服務器中執行dnstop命令

    dnstop -4 -Q -R eth0


    接着在從dns服務器中執行queryperf命令:

    queryperf -d test -s 192.168.134.2

    

    作者測試結果:

wKiom1dMMKCybsmOAAB8tKdNIoU838.jpg-wh_50

    

    以上是個人關於dns服務器的一些總結,疏漏在所難免,還望指出

    

    

    



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