(1)下載源碼包vim
https://www.isc.org/downloads/app
(2)解壓縮源碼包dom
[root@localhost~]#mv bind-9.10.6.tar.gz /usr/src/ [root@localhost~]#cd /usr/src/ [root@localhost/usr/src]#tar xvf bind-9.10.6.tar.gz
(3)來咱們先看看bind包原來有沒有安裝腳本呢?tcp
[root@localhost ~]# rpm -q --scripts bind
從圖中咱們能夠看出,安裝前須要本身建立用戶,那麼咱們來建立一個用戶吧ide
[root@localhost/usr/src/bind-9.10.6]#useradd -r -d /var/named -s /sbin/nologin -m named #這裏因爲是系統用戶,若是不加「-m」的話,是不能建立家目錄的,切記!!!
(4)咱們接下來看看如何安裝bind工具
[root@localhost/usr/src/bind-9.10.6]#cat README
若是直接向定製bind程序,顯然這樣作是不能知足咱們的需求的,咱們可使用以下操做定製咱們bind程序性能
[root@localhost/usr/src/bind-9.10.6]#./configure --help
如上圖所示,這裏只是截取部分圖,這裏能夠選擇咱們要安裝的包位置,啓用或關閉某些功能,實現定製bind,相信不少第一次編譯的像我這樣的人來講認真研究一種程序源碼安裝過程,基本能夠掌握別的源碼包的安裝。測試
[root@localhost/usr/src/bind-9.10.6]#./configure --prefix=/app/bind10 --sysconfdir=/etc/bind10
來來看看,我說什麼了,當出現這是否是不知道如何操做,沒有人家說的很清楚了,沒有gcc,那該如何解決呢?那麼咱們來安裝一個開發包來解決這個問題spa
[root@localhost/usr/src/bind-9.10.6]#yum groupinstall -y "development tools"
那咱們再來嘗試一次,看看此次會出現什麼幺蛾子。code
[root@localhost/usr/src/bind-9.10.6]#./configure --prefix=/app/bind10 --sysconfdir=/etc/bind10
看看我說什麼來着,此次又出錯啦,爲何呢?它提示咱們說沒有openssl程序,若是想依賴這個程序,能夠安裝openssl-devel;通常源碼包遇到的狀況,都安裝相對的開發包便可。
那咱們再來測試一次,看看還會出現什麼狀況呢?
噹噹噹,哈哈,居然成功啦 ;不過這只是成功了一部分,若是想繼續成功那就實行下面步驟吧
(5)進行編譯安裝
[root@localhost/usr/src/bind-9.10.6]#make ;make install make 的做用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能; make install 通常表示進行安裝,至關於建立軟鏈接,建立目錄等等一些操做。
(6)這樣安裝的話是沒有命令PATH和man幫助的,那如何實現呢?
[root@localhost~]#vim /etc/profile.d/env.sh [root@localhost~]#source !$ source /etc/profile.d/env.sh
export PATH=/app/bind10/bin:/app/bind10/sbin:$PATH
[root@localhost~]#vim /etc/man_db.conf
(7)剛剛在(2)比步驟是否是看看還有安裝後腳本呀,對的你沒有看錯,那麼咱們來進行安裝後腳本須要的操做。安裝後腳本須要咱們使用命令rndc-confgen建立至關於」暗號「,建立了暗號才能訪問,那麼咱們就看看如何建立暗號呢?
[root@localhost~]#rndc-confgen -r /dev/urandom > /etc/bind10/rndc.conf #若是不重定向只能在終端上顯示,寫不到文件中
不過咱們如今尚未主配置文件named.conf文件,怎麼辦呢?那就手動建立一個嘍
[root@localhost~]#vim /etc/bind10/named.conf
不過剛剛咱們瞭解到bind程序運行者是named用戶,可是咱們來看看這個文件全部者和所屬組是who
[root@localhost~]#ll /etc/bind10/named.conf -rw-r--r--. 1 root root 200 Sep 22 10:19 /etc/bind10/named.conf [root@localhost~]#chgrp named /etc/bind10/named.conf #修改所屬組 [root@localhost/etc/bind10]#chgrp named bind10/ -R #修改文件都爲named所屬組
(8)不過DNS中解析固然須要根啦那麼咱們就建立一個嘍
[root@localhost named]# scp named.ca 192.168.4.152:/var/named/ #從遠程主機上拷貝一個 [root@localhost/var]#chgrp named named/ -R #修改權限
[root@localhost~]#vim /etc/bind10/named.conf
[root@localhost/var/named]#vim test.com.zone #編輯測試域
[root@localhost/var/named]#chgrp named test.com.zone #修改權限
(9)那咱們接下來嘗試着看看能不能起來服務
[root@localhost~]#named -u named -g -f -d 3 [root@localhost~]#ss -tnul
端口53/tcp 53/udp 953/tcp 已經處於監聽狀態,說明啓動已經成功
(10)咱們嘗試看看能夠解析麼?
那麼接下來測測咱們dns的性能如何嘍
對壓力測試工具編譯安裝
[root@localhost ~]# cd /usr/src/bind-9.10.6/contrib/queryperf #切換至源碼包位置 [root@localhost/usr/src/bind-9.10.6/contrib/queryperf]#./configure #進行編譯 [root@localhost/usr/src/bind-9.10.6/contrib/queryperf]#make [root@localhost/usr/src/bind-9.10.6/contrib/queryperf]#cp queryperf /app/bind10/bin/ #將程序複製到bind執行程序的目錄下
建立一個測試文本
[root@localhost~]#vim test
測試
[root@localhost~]#queryperf -d test -s 127.0.0.1