編譯安裝bind

編譯安裝bind

(1)下載源碼包

https://www.isc.org/downloads/

2017-09-22_110742.png

(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

2017-09-22_094626.png從圖中我們可以看出,安裝前需要自己創建用戶,那麼我們來創建一個用戶吧

[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

2017-09-22_093021.png

如果直接向定製bind程序,顯然這樣做是不能滿足我們的需求的,我們可以使用如下操作定製我們bind程序

[root@localhost/usr/src/bind-9.10.6]#./configure --help

2017-09-22_093256.png如上圖所示,這裏只是截取部分圖,這裏可以選擇我們要安裝的包位置,啓用或關閉某些功能,實現定製bind,相信很多第一次編譯的像我這樣的人來說認真研究一種程序源碼安裝過程,基本可以掌握別的源碼包的安裝。

[root@localhost/usr/src/bind-9.10.6]#./configure --prefix=/app/bind10 --sysconfdir=/etc/bind10

2017-09-22_093607.png

來來看看,我說什麼了,當出現這是不是不知道如何操作,沒有人家說的很清楚了,沒有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

2017-09-22_094017.png

看看我說什麼來着,這次又出錯啦,爲什麼呢?它提示我們說沒有openssl程序,如果想依賴這個程序,可以安裝openssl-devel;一般源碼包遇到的情況,都安裝相對的開發包即可。

那我們再來測試一次,看看還會出現什麼情況呢?

2017-09-22_094342.png

噹噹噹,哈哈,竟然成功啦 ;不過這只是成功了一部分,如果想繼續成功那就實行下面步驟吧

(5)進行編譯安裝

[root@localhost/usr/src/bind-9.10.6]#make ;make install  
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能; make install 一般表示進行安裝,相當於創建軟連接,創建目錄等等一些操作。

(6)這樣安裝的話是沒有命令PATH和man幫助的,那如何實現呢?

2017-09-22_100032.png

[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

2017-09-22_101009.png

(7)剛剛在(2)比步驟是不是看看還有安裝後腳本呀,對的你沒有看錯,那麼我們來進行安裝後腳本需要的操作。安裝後腳本需要我們使用命令rndc-confgen創建相當於”暗號“,創建了暗號才能訪問,那麼我們就看看如何創建暗號呢?

[root@localhost~]#rndc-confgen -r /dev/urandom > /etc/bind10/rndc.conf  #如果不重定向只能在終端上顯示,寫不到文件中

2017-09-22_101550.png

不過我們現在還沒有主配置文件named.conf文件,怎麼辦呢?那就手動創建一個嘍

[root@localhost~]#vim /etc/bind10/named.conf

2017-09-22_101931.png不過剛剛我們瞭解到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

2017-09-22_103158.png

[root@localhost/var/named]#vim test.com.zone    #編輯測試域

2017-09-22_103607.png

[root@localhost/var/named]#chgrp named test.com.zone    #修改權限

(9)那我們接下來嘗試着看看能不能起來服務

[root@localhost~]#named -u named -g -f -d 3
[root@localhost~]#ss -tnul

2017-09-22_104322.png

端口53/tcp 53/udp 953/tcp 已經處於監聽狀態,說明啓動已經成功

(10)我們嘗試看看可以解析麼?

2017-09-22_110558.png

那麼接下來測測我們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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章