2018-06-09 智能DNS、編譯安裝bind、壓力測試

1、智能DNS的實(shí)現(xiàn)

所謂智能DNS就是讓不同地區(qū)的客戶端訪問網(wǎng)站時能將就近網(wǎng)站的IP地址反饋到客戶端,這樣可以增加客戶端的訪問速度,比如beijing的客戶去訪問[www.magdu.com](https://link.jianshu.com/?t=http://www.magdu.com)網(wǎng)站反饋一個ip地址,henan的客戶訪問這個網(wǎng)站時反饋另外一個ip地址,實(shí)現(xiàn)過程如下:
在centos7上的操作
1、vim /etc/named.conf
acl beijing {                            
            192.168.25.226/24;   ---北京客戶的地址
};
acl henan {
                172.18.21.106/16;  ---河南客戶的地址
};
view bjview {
        match-clients {beijing;};  ---如果匹配北京的地址
        zone "magedu.com"{     ---定義區(qū)域解析庫,也可以將這個內(nèi)容寫到/etc/named.rfc1912.zones中,將下面三行的內(nèi)容換為include "/etc/named.rfc1912.zones.bj"
        type master;
        file "magedu.com.bj";   ---就走這個區(qū)域解析庫文件
};
};
view hnview {
        match-clients {henan;};
        zone "magedu.com"{
        type master;
        file "magedu.com.hn";
};
include "/etc/named.rfc1912.zones";   這個文件中也可以定義其他的域,那么如果河南的客戶去訪問這個文件中定義的其他域,就會解析解析庫文件中定義的相應(yīng)地址
};
view otherview {           ---這個view是兜底用的,如果不是來自這兩個地址的客戶,就反饋給北京的地址
        match-clients {any;};
 zone "magedu.com"{
        type master;
        file "magedu.com.bj";
};
};
2、 vim /var/named/magedu.com.bj
$TTL 1D
@       IN SOA  dns1 admins.magedu.com. (
                                        66      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns1
dns1            A       172.18.21.107
websrv          A       192.168.25.226
www             CNAME   websrv
vim /var/named/magedu.com.hn
$TTL 1D
@       IN SOA  dns1 admins.magedu.com. (
                                        68      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns1
dns1            A       172.18.21.107
websrv          A       172.18.21.106
www             CNAME   websrv
3、測試
在centos6.9上操作,有兩個ip地址,分別是定義的beijing和henan的客戶地址
dig www.magedu.com @192.168.25.21   ---相當(dāng)于是用我的192.168.21.226地址去訪問這個dns服務(wù)器
dig www.magedu.com @172.18.21.107

總結(jié)
1、view(視圖),一個bind服務(wù)器可定義多個view,每個view中可定義一個或多個zone.
2、每個view用來匹配一組客戶端地址段
3、多個view內(nèi)可能需要對同一個區(qū)域進(jìn)行解析,但使用不同的區(qū)域解析庫文件
4、 一旦啟用了view,所有的zone都只能定義在view中
5、 僅在允許遞歸請求的客戶端所在view中定義根區(qū)域
6、 客戶端請求到達(dá)時,是自上而下檢查每個view所服務(wù)的客戶端列表

2、編譯安裝bind

1、安裝開發(fā)包組、創(chuàng)建named賬號
 yum groupinstall " Development Tools"
 useradd -r -m -d /var/named -s /sbin/nologin named
2、執(zhí)行configure腳本并安裝
 ./configure --prefix=/app/bind9 --without-openssl
 make && make install
3、將別的主機(jī)的named.ca文件拷貝到本主機(jī)
scp /var/named/named.ca 172.18.21.7:/app/bind9/etc/
chgrp named named.ca 
4、vim /etc/profile.d/env.sh 
export PATH=/app/bind9/sbin:/app/bind9/bin:$PATH
5、 編寫named.conf文件
vim /app/bind9/etc/named.conf  
options {
 directory       "/var/named";
};
zone "test.com"{
        type master;
        file "test.com.zone";
};
zone "."{
        type hint;
        file "named.ca";
};
6、編寫區(qū)域解析庫文件
vim /var/named/test.com.zone 
$TTL 1D
@   IN   SOA dns1 admins.test.com ( 1 1d 1h 1w 1d )
                NS dns1
dns1    A       172.18.21.7
www     A       8.8.8.8
7、加添man 幫助的路徑 
8、開啟服務(wù)
named -u named -g -f -d 3 --- -u誰來開啟服務(wù),-f前段運(yùn)行,-g前段運(yùn)行并顯示標(biāo)準(zhǔn)錯誤,有助于排錯,-d是debug級別,級別越高,顯示的信息越詳細(xì)
  9、測試
dig www.test.com @172.18.21.7

安裝rndc工具

1、生成rndc.conf文件
 rndc-confgen -r /dev/urandom >/app/bind9/etc/rndc.conf
cat /app/bind9/etc/rndc.conf
# Start of rndc.conf
key "rndc-key" {
    algorithm hmac-md5;
    secret "h5c6Wu39YsRht3YzwoK2MA==";
};

options {
    default-key "rndc-key";
    default-server 127.0.0.1;
    default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#   algorithm hmac-md5;
#   secret "h5c6Wu39YsRht3YzwoK2MA==";
# };
# 
# controls {
#   inet 127.0.0.1 port 953
#       allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
這個文件相當(dāng)于生成兩把鑰匙,分別放在這個文件和下面的文件中,使sync這個命令能夠控制dns。
2、編輯named.conf文件,將上面文件中的# key "rndc-key" {行 至# End of named.conf行添加到文件中
vim /app/bind9/etc/named.conf 
options {
 directory       "/var/named";
};
zone "test.com"{
        type master;
        file "test.com.zone";
};
zone "."{
        type hint;
        file "named.ca";
};
# Use with the following in named.conf, adjusting the allow list as needed:
 key "rndc-key" {
        algorithm hmac-md5;
        secret "h5c6Wu39YsRht3YzwoK2MA==";
 };
 
 controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
 };
# End of named.conf
3、測試
rndc status  ---發(fā)現(xiàn)rndc命令已經(jīng)可以使用了。

3、壓力測試

壓力測試的目的是測試某個dns服務(wù)器的性能,查看一下這個服務(wù)器一秒鐘可以并發(fā)處理多少個用戶的請求。dns的壓力測試工具是queryperf,這個工具也需要編譯安裝,過程如下

1、編譯安裝
cd /app/bind-9.11.2/contrib/queryperf/  
./configure 
make
cp -a queryperf /app/bind9/bin/   --移動到PATH變量的路徑下
2、測試
vim test.txt   ---創(chuàng)建一個文件,比如解析www.test.com的A記錄
www.test.com A
這個文件要盡量的大才能測出來,也就是多復(fù)制幾行,實(shí)驗(yàn)時復(fù)制了38萬行。這樣才能模擬并發(fā)處理多少個操作
開啟服務(wù)
在另外一個終端輸入如下面命令
queryperf -d test.txt -s 127.0.0.1  ---s指定測哪個主機(jī),實(shí)驗(yàn)時測的本主機(jī)
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $

[Status] Processing input data
[Status] Sending queries (beginning with 127.0.0.1)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         377856 queries
  Queries completed:    377856 queries
  Queries lost:         0 queries
  Queries delayed(?):   0 queries

  RTT max:          0.085477 sec
  RTT min:              0.000586 sec
  RTT average:          0.007314 sec
  RTT std deviation:    0.011023 sec
  RTT out of range:     0 queries

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Thu Sep 21 23:13:33 2017
  Finished at:          Thu Sep 21 23:15:52 2017
  Ran for:              138.438754 seconds

  Queries per second:   2729.409136 qps   ---可以看出一秒鐘能并發(fā)處理2729個請求。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 3,409評論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 一、BIND是什么 BIND是互聯(lián)網(wǎng)應(yīng)用最為廣泛的DNS軟件。 二、BIND的安裝與使用 以下內(nèi)容轉(zhuǎn)自 http:...
    0_0啊閱讀 3,348評論 0 0
  • 1、智能DNS的實(shí)現(xiàn) 所謂智能DNS就是讓不同地區(qū)的客戶端訪問網(wǎng)站時能將就近網(wǎng)站的IP地址反饋到客戶端,這樣可以增...
    張大志的博客閱讀 951評論 0 3
  • 我的公公宋慶詩,是我非常尊敬的一個男人。 我一直想記錄一下他的故事,好讓我的孩子們長大也能記得爺爺?shù)墓适?。(以下?..
    SwallowT閱讀 503評論 11 10

友情鏈接更多精彩內(nèi)容