構建DNS服務的最基礎的軟件是bind,DNS服務的進程名是named。為了增強安全性,我們要安裝最新版的bind軟件,但最新版的bind版本為bind-9.11.2,網上只有源代碼包,此時,我們只能通過手動編譯安裝bind了。
centos7 編譯安裝DNS
下載地址 http://www.isc.org/downloads/bind/
搭建yum源
[root@centos7 /etc/yum.repos.d]#vim base.repo
創建 /misc/cd并掛載光盤
[root@centos7 ~]#mkdir -p /misc/cd
[root@centos7 ~]#mount /dev/sr0 /misc/cd
編譯源碼通常都需要安裝Devel包等~~~
解壓包組
[root@centos7 ~]#yum grouplist "Development Tools" -y
bind-9.11.0-P1.tar.gz
[root@centos7 ~]#tar xvf bind-9.11.0-P1.tar.gz
創建系統用戶組賬號 吧 -m強制生成家目錄
[root@centos7 ~]#getent passwd named
[root@centos7 ~]# useradd -r -m -d /var/named -s /sbin/nologin named
執行configure腳本并安裝
[root@centos7 ~/bind-9.11.0-P1]#./configure --prefix=/app/bind9 --sysconfdir=/etc/named/ --without-openssl
[root@centos7 ~]#make -j 4 && make install
將centons6的主機的named.ca文件拷貝到centons7主機
[root@centons6 ~]#dig -t ns . @172.18.0.1 >/app/named.ca
[root@centons6 ~]#scp /app/named.ca 172.18.70.40:/var/named/
[root@centos7 /etc/named]#ls
bind.keys
把/etc/bind9/下bin,sbin寫到PATH路徑里面
[root@centos7 /var/named]#vim /etc/profile.d/env.sh
執行PATH環境變量
[root@centos7 /var/named]#. /etc/profile.d/env.sh
編輯named.conf文件
[root@centos7 /var/named]#vim /etc/named/named.conf
編寫區域解析庫文件
[root@centos7 /var/named]vim test.com.zone
編輯man幫助
[root@centos7 /var/named]#vim /etc/man_db.conf
開啟服務
[root@centos7 ~]#named -u named -f -g -d 3
-u誰來開啟服務,-f前段運行,-g前段運行并顯示標準錯誤,有助于排錯,-d是debug級別,級別越高,顯示的信息越詳細
centos6測試 關閉防火墻
[root@centons6 ~]#dig www.test.com @172.18.70.40
安裝rndc配置文件
querylog: 開啟或關閉查詢日志文件
[root@centons7 ~]#rndc querylog 執行一次開啟 ,再執行關閉
[root@centons6 ~]#dig www.qq.com @172.18.70.40 centos6向centos7發起測試
[root@centons7 ~]#tail -f /var/log/messages 查詢日志會有收到查詢信息,大量用戶查詢了負載還是很大的,
除非排錯才開啟rndc querylog功能
[root@centos7 ~]#rndc trace每執行一次記錄詳細程度越高 trace: 遞增debug一個級別
[root@centos7 ~]#rndc status查看詳細信息 (缺少配置文件)
提示有任何一個文件都可以
rndc是基于共享秘鑰的方式來進行管理,rndc相當于客戶端工具,它管理服務器隨便一個機器執行這個命令把本主機服務器配置文件可以加載或者其他是有危險性,因此rndc需要配置客戶端和服務器,兩邊進行管理就要配置共享秘鑰(生成相同的key才能管理)
開始安裝rndc配置文件 工具生成文件rndc.conf
[root@centos7 ~]#rndc-confgen -r /dev/urandom > /etc/named/rndc.conf(生成相同的key才能管理)
[root@centos7 ~]#vim /etc/named/named.conf
里面存放共享秘鑰,上面是客戶端,下面是服務器端
把服務器共享秘鑰移動至named配置文件中
[root@centos7 ~]#vim /etc/named/named.conf
:!tail -n 12 /etc/named/rndc.conf 把rndc.conf文件倒數12行移動到文件中
重新開啟服務并測試
[root@centos7 ~]#named -u named -f -g -d 3
[root@centos7 ~]#rndc querylog復制終端執行
[root@centos7 ~]#rndc status
編譯壓力測試工具
上線前做dns壓力測試非常關鍵,可以判斷出服務器最大負荷,每秒可以接收多少客戶請求
[root@centos7 ~]#cd bind-9.11.0-P1/contrib/queryperf/ queryperf源碼包
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#./configure 運行腳本
make 安裝太小可以直接使用不用編譯
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#vim /app/test.txt 復制3000行
A記錄 解析成ip地址
查詢test.com NS 記錄
測試性能拒絕查詢www.magedu.com A
指定某個機器終端進行壓力測試
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#./queryperf -d /app/test.txt -s 172.18.70.70
Queries per second: 537 可以看出一秒鐘能并發處理多少個請求
注意: 開啟rndc querylog,性能會極大的產生影響,可以看到打開querylog(查詢日志),性能只有原來的3/1,所以一般情況下querylog為關閉狀態
在另外一個終端輸入如下面命令
[root@centons6 ~]#top top命令經常用來監控linux的系統狀況,比如cpu、內存的使用
OK