DNS(企業級)

構建DNS(企業級)

一、硬件選型linux

CPU:12C以上配置bash

內存:16G服務器

網絡:千兆網絡

 

二、初始化系統配置架構

關閉 iptables負載均衡

service iptables stop
chkconfig iptables off

關閉 selinuxoop

vi /etc/sysconfig/selinux
SELINUX=disabled

調整ulimit限制性能

vi /etc/security/limits.conf 
*               soft    nproc            65536
*               hard    nproc            65536
*               soft    nofile            65536
*               hard    nofile            65536

 

三、高性能、高可用DNSui

spa

1)高可用

物理層:  首先確保兩臺lvs不在同一機櫃、同一物理交換機接入;

               其次確保將全部dns服務器也作到不在同一機櫃、同一物理交換機接入;

               在不通的idc構建多套dns集羣,爲客戶端提供可切換的配置。

服務層:  堅定摒棄lvs上端口檢測這種方式,採用自定義腳本檢測,爲dns的健康檢測單獨設置一個域名,爲了lvs檢測dns是否存活而設計。

客戶端層:  多idc之間的流量切換是經過客戶端的健康檢測cron實現的,腳本能夠按分鐘運行一次,分別檢測每一個dns集羣虛地址的可用性。

#!/bin/sh
timeout=5
Q=""
host="/usr/bin/host"
if test -z "$1" ; then
    echo "You need to supply a DNS server to check. Quittind"
	exit;
fi
SERVER=$10
ERC=`$host -s -w $timeout $Q SERVER > /dev/null 2>$1; echo $?`
if [ $ERC -eq 0 ] ; then
    exit 0
else
    exit 10
fi

2)高性能

   經過lvs能夠對每一個集羣作橫向擴容,是否須要擴容的依據是對現有系統的壓測結果,以及實時的監控數據。或者能夠在最靠近應用層處,加上一次cache-only集羣,但前提是你的線上環境中,沒有任何系統依賴於dns負載均衡。

 

四、壓測

cd /usr/local/src/

下載bind源碼 wget http://ftp.isc.org/isc/bind9/9.9.1-P1/bind-9.9.9-P1.tar.gz

解壓 tar -xvf bind-9.9.9-P1.tar.gz

cd /usr/local/src/bind-9.9.9-P1/contrib/queryperf

編譯 ./configure

make

此目錄下生成queryperf文件

cp queryperf /usr/bin

壓測本身建立的DNS服務,建立一個文件test.txt,內容以下(前面爲域名,後面爲A記錄)

view.viewswj.com A
view.viewswj.com A
view.viewswj.com A
view.viewswj.com A
view.viewswj.com A

執行命令: /usr/bin/queryperf -d test.txt -s 192.168.137.13

結果:

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 192.168.137.13)
[Status] Testing complete

Statistics:

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

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

  RTT max:              0.000283 sec
  RTT min:              0.000017 sec
  RTT average:          0.000142 sec
  RTT std deviation:    0.000076 sec
  RTT out of range:     0 queries

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Wed Oct 26 21:49:31 2016
  Finished at:          Wed Oct 26 21:49:31 2016
  Ran for:              0.000311 seconds

  Queries per second:   16077.170418 qps

 

五、監控

系統基礎性能: 使用zabbix自帶的模板。CPU、內存、硬盤、系統load等

LOOPBACK地址綁定狀態監控: 該架構中,dnsserver在集羣中充當realserver的角色,在dr中,須要綁定lookback地址方能同信,所以當loopback地址沒有綁定上是,lvs健康檢測經過,可是當請求到達dnsserver時,請求被拒絕,dns集羣會出現異常。

DNS數據與MASTER一致性監控:

1)經過寫zabbix自定義discovery,獲取dns配置中全部zone,而後分別比對slave和master每一個zone的serial值,當slave與master的值持續5分鐘不一致報警。

2)寫腳本,每15分鐘獲取master上全部域名解析結果,與每一個slave的結果比對,當出現結果不一致狀況時報警。

DNS響應時間監控:遠端一組主機跑在fullnat下(提供高可用),經過dig命令檢測dnsserver的響應時間。

DNS每秒請求數監控:在每臺dns主機上,編寫zabbix腳本,分析named_state文件,獲取每秒請求數。

DNS可用性監控:遠端一組主機跑在fullnat下(提供高可用),經過hosts命令檢測dnsserver的可用性,腳本與lvs健康檢測腳本相似。

相關文章
相關標籤/搜索