編譯安裝bind
(1)下載下傳源碼包
https://www.isc.org/downloads/

(2)解壓縮源碼包
[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包原來有沒有安裝腳本呢?
[root@localhost ~]# rpm -q --scripts bind
從圖中我們可以看出,安裝前需要自己建立使用者,那麼我們來建立一個使用者吧
[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,那該如何解決呢?那麼我們來安裝一個開發包來解決這個問題
[root@localhost/usr/src/bind-9.10.6]#yum groupinstall -y "development tools"
那我們再來嘗試一次,看看這次會出現什麼幺蛾子。
[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