架構師成長之路6.6 DNS服務器搭建(構建企業級DNS)

點擊返回架構師成長之路html

架構師成長之路6.6 DNS服務器搭建(構建企業級DNS)

採用LVS-DR模式負載均衡,多IDC,多套DNS集羣,經過master-slave技術保證dns配置的一致性。bash

1.構建高性能、高可用性DNS

物理層:服務器

  • 首先確保兩臺lvs不在同一機櫃、同一物理交換機接入;
  • 其次確保將全部dns服務器也作到不在同一機櫃、同一物理交換機接入。
  • 同時,在不一樣的idc構建多套dns集羣,爲客戶端提供可切換的配置。

服務層:架構

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

腳本示例:
   負載均衡

客戶端層:oop

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

2.構建高可用性DNS

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

 3. 壓測 

安裝queryperf性能

下載bind源碼:wget http://ftp.isc.org/isc/bind9/9.7.3/bind-9.7.3.tar.gz
解壓bind源碼:tar zxf bind-9.7.3.tar.gz
進入解壓後bind源碼目錄:cd bind-9.7.3/contrib/queryperf/
編譯:./configure
make
會在當前目錄下出現queryperf,能夠將它拷貝至/usr/bin/下
編輯域名記錄文件(test.txt),格式以下:
	www.baidu.com A
	www.baidu.com A
	www.baidu.com A
	www.baidu.com A
	www.baidu.com A
壓測命令:queryperf -d test.txt -s 8.8.8.8 

 在相同idc的壓測下,單臺dns-server的qps能夠達到35~40kspa

4. 監控   可結合zabbix監控 

系統基礎性能:

  • 使用zabbix自帶模板便可。Cpu、內存、主機存活、磁盤空間、主機運行時間、系統load設計

Loopback地址綁定狀態監控

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

Dns數據與master一致性監控

此處建議方案是分爲兩部分:

  • 一是經過寫zabbix自定義discovery,掃出dns配置中全部zone,而後分別對比slave和master每一個zone的serial值,當slave與master的值持續5分鐘不一致時報警
  • 二是寫腳本,每15分鐘掃一遍master上全部域名解析結果,與每一個slave的結果作對比,當出現結果不一致狀況時,報警

Dns響應時間監控

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

Dns每秒請求數監控

  • 在每臺dns主機上,編寫zabbix腳本,分析named_stats文件,獲取每秒請求數

#!/bin/bash
#rndc stats
STATS='/var/named/chroot/var/log/named_stats'
if [[ $# -ne 1 ]]
then
  echo "$0 [querys]"
  exit 2
else
  which=$1
fi

if [[ -f "${STATS}" ]]
then
  echo > ${STATS}
  rndc stats >/dev/null 2>&1
else
  echo "${STATS} not found."
  exit 2
fi

case ${which} in
querys)
  RESULT=`awk '{if ($2=="QUERY") {print $1}}' ${STATS}`
;;
*)
  echo "$0 [querys]"
  exit 2
;;
esac

echo ${RESULT}

Dns可用性監控

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

.......

相關文章
相關標籤/搜索