編譯安裝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