Bind編譯安裝詳解
Bind是一款開放源碼的DNS服務器軟件,由美國加州大學Berkeley分校開發和維護的,全名為Berkeley Internet Name Domain它是目前世界上使用最為廣泛的DNS服務器軟件,支持各種unix平臺和windows平臺。現今互聯網上最常使用的DNS服務器軟件,使用BIND作為服務器軟件的DNS服務器約占所有DNS服務器的九成。BIND現在由互聯網系統協會(Internet Systems Consortium)負責開發與維護。
Bind一般可直接yum install安裝,或是用RPM包安裝,但有時我們需要其某些特別的功能是,就需要用到編譯安裝了。本文詳細介紹bind編譯安裝的方法。
1.安裝前準備:
首先,到http://www.isc.org/ 下載bind的源碼安裝包,我下的是bind-9.11.0b1.tar.gz,9.11.0b1版本的,各位可自行下載自己需要的版本。
解壓文件
tar xzvf bind-9.11.0b1.tar.gz
創建普通用戶用于bind的運行
[root@www bind-9.11.0b1]# groupadd -g 53 -r named
[root@www bind-9.11.0b1]# useradd -u 53 -g 53 -r named
[root@www bind-9.11.0b1]#
./configure配置
[root@www bind-9.11.0b1]# ./configure –prefix=/usr/local/bind9 –sysconfdir=/etc/named/ –disable-ipv6 –disable-chroot –enable-threads
一般不會出現什么問題,但如果有相關的模塊沒有安裝,則會在這時候報錯,不過沒關系,缺什么,yum install 安裝相應的 devel包就行了。
configure通過了就繼續make && make install:…
XML statistics (–with-libxml2)
JSON statistics (–with-libjson)
————————————————————————
For more detail, use –enable-full-report.
========================================================================
[root@www bind-9.11.0b1]# make && make install
mkdir /usr/local/bind9/var
mkdir /usr/local/bind9/var/run
mkdir /etc/named
/bin/sh ./mkinstalldirs /usr/local/bind9/share/man/man1
/usr/bin/install -c isc-config.sh /usr/local/bind9/bin
rm -f /usr/local/bind9/bin/bind9-config
ln /usr/local/bind9/bin/isc-config.sh /usr/local/bind9/bin/bind9-config
/usr/bin/install -c -m 644 ./isc-config.sh.1 /usr/local/bind9/share/man/man1
rm -f /usr/local/bind9/share/man/man1/bind9-config.1
ln /usr/local/bind9/share/man/man1/isc-config.sh.1 /usr/local/bind9/share/man/man1/bind9-config.1
/usr/bin/install -c -m 644 ./bind.keys /etc/named
安裝完成。
成功安裝后,還需要設置一系列參數,讓系統知悉bind安裝在/usr/local/bind9的目錄中。因而,執行以下命令:
vim /etc/profile.d/named.sh
exprot PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH ##加入到PATH變量中
. /etc/profile.d/named.sh ##重讀配置文件
vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib ##導出庫文件
ldconfig -v ##系統重讀
ln -sv /usr/local/bind9/include /usr/include/named ##導出頭文件
vim /etc/man.config ##導出幫助文件
在空白行添加:
MANPATH /usr/local/bind9/share/man
至此,bind已編譯安裝完畢,但要使用bind,還需進行配置。
配置Bind
##定義配置文件
vim /etc/named/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "test.net" IN {
type master;
file "test.net.zone";
};
##生成幾個區域數據文件
##1.根區域
[root@www named]# dig -t NS . @8.8.8.8 > /var/named/named.ca
vim localhost.zone
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2017071801
1h
5m
7d
1d )
IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local$TTL 1d
@ IN SOA localhost. admin.localhost. (
2017071801
1h
5m
7d
1d )
IN NS localhost.
1 IN PTR localhost.
test.net.zone
$TTL 1D
$ORIGIN test.net.
@ IN SOA ns1.test.net. admin.test.net (
2016070601
1H
5M
7D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.10.10
ns2 IN A 172.16.20.20
mx1 IN A 172.16.10.10
mx2 IN A 172.16.20.20
www IN A 172.16.10.10
web IN A 172.16.20.20
ftp IN CNAME www
* IN CNAME www
##修改文件權限為640
[root@www named]# chmod 640 ./*
[root@www named]#
[root@www named]# ls -lh
total 24K
drw-r—– 2 25 25 4.0K Jul 17 12:19 data
drw-r—– 2 25 25 4.0K Jul 17 15:07 dynamic
-rw-r—– 1 root root 132 Jul 18 01:21 localhost.zone
-rw-r—– 1 root root 2.1K Jul 18 01:15 named.ca
-rw-r—– 1 root root 126 Jul 18 01:23 named.local
-rw-r—– 1 root 25 333 Jul 10 15:12 test.net.zone
[root@www named]# chown :named ./*
[root@www named]# ls -lh
total 24K
drw-r—– 2 25 named 4.0K Jul 17 12:19 data
drw-r—– 2 25 named 4.0K Jul 17 15:07 dynamic
-rw-r—– 1 root named 132 Jul 18 01:21 localhost.zone
-rw-r—– 1 root named 2.1K Jul 18 01:15 named.ca
-rw-r—– 1 root named 126 Jul 18 01:23 named.local
-rw-r—– 1 root named 333 Jul 10 15:12 test.net.zone
[root@www named]#
[root@www named]# chmod 640 /etc/named/named.conf
[root@www named]# chown :named /etc/named/named.conf
OK,啟動bind服務
[root@www var]# named -u named
檢查服務正常與否:
[root@www named]# ss -ntlup | grep :53
udp UNCONN 0 0 172.16.10.10:53 *:* users:(("named",82889,515),("named",82889,516),("named",82889,517))
udp UNCONN 0 0 127.0.0.1:53 *:* users:(("named",82889,512),("named",82889,513),("named",82889,514))
tcp LISTEN 0 10 172.16.10.10:53 *:* users:(("named",82889,22))
tcp LISTEN 0 10 127.0.0.1:53 *:* users:(("named",82889,21))
[root@www named]#
UDP53端口已然在監聽
查詢A記錄:
[root@www named]# dig -t a www.test.net @172.16.10.10
; <<>> DiG 9.11.0b1 <<>> -t a www.test.net @172.16.10.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55151
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 27ba2f7f1e17a2290a97e22d578bc559a9b4b200c6fe5074 (good)
;; QUESTION SECTION:
;www.test.net. IN A
;; ANSWER SECTION:
www.test.net. 86400 IN A 172.16.10.10
;; AUTHORITY SECTION:
test.net. 86400 IN NS ns2.test.net.
test.net. 86400 IN NS ns1.test.net.
;; ADDITIONAL SECTION:
ns1.test.net. 86400 IN A 172.16.10.10
ns2.test.net. 86400 IN A 172.16.20.20
;; Query time: 0 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Mon Jul 18 01:50:17 CST 2016
;; MSG SIZE rcvd: 153
@172.16.10.10服務器成功返回 www.test.net 的A記錄
;; ANSWER SECTION:
www.test.net. 86400 IN A 172.16.10.10
服務器運作正常!
至此,Bind服務器的編譯安裝已全部介紹完畢,是不是很簡單呢?你也償試一下吧!
注:通常我們都會編寫一段腳本,讓其能以系統服務的方式,開機自動運行,這樣就不用每次啟動都手工操作,此腳本網上有很多例子,我這里就不作介紹了,大家可以參考之后自行編寫。
以上就是DNS服務器Bind的編譯安裝方法!作為初學者,我對linux的認識還是很膚淺,以上可能有不正確的地方,如有錯漏,希望各位能指正,共同進步。
我的QQ:153975050 小斌斌
在此感謝馬哥及馬哥團隊的所有人,在linux的道路上引領我一直前進!
2016-07-18
原創文章,作者:馬哥Net19_小斌斌,如若轉載,請注明出處:http://www.www58058.com/24689