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、內網測試
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服務器日誌信息
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
以下是作者測試結果:(電腦性能弱爆了~~)
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
作者測試結果:
以上是個人關於dns服務器的一些總結,疏漏在所難免,還望指出