1、編譯前環境準備
<code>[root@centfils ~]</code><code># yum groupinstall "Development Tools" "Server Platform Development"</code>
2、至isc.org bind官網下載下傳bind源碼,并展開
<code>[root@centfils ~]</code><code># tar xf bind-9.9.9-P2.tar.gz</code>
<code>[root@centfils ~]</code><code># cd bind-9.9.9-P2</code>
3、建立named使用者
<code>[root@centfils bind-9.9.9-P2]</code><code># group -r -g 53 named</code>
<code>[root@centfils bind-9.9.9-P2]</code><code># useradd -u 53 -g named named -r</code>
<code>#使用53端口作為named組和named使用者的ID号</code>
4、編譯安裝
<code>[root@centfils bind-9.9.9-P2]</code><code># ./configure --prefix=/usr/local/bind9.9 --sysconfdir=/etc/named/ --disable-chroot --enable-threads</code>
<code>#指明安裝位置,配置檔案位置,關閉chroot,開啟線程</code>
<code>[root@centfils bind-9.9.9-P2]</code><code># make</code>
<code>[root@centfils bind-9.9.9-P2]</code><code># make install</code>
至此,安裝完成,但自行編譯bind源碼包會産生如下問題
(1)沒有配置檔案
(2)沒有區域解析檔案(包括13個根伺服器的解析檔案)
(3)沒有rndc的相關配置檔案
解決上述問題
<code>#1、将bind下配置檔案加入PATH中</code>
<code>[root@centfils bind9.9]</code><code># vim /etc/profile.d/named.sh</code>
<code>export</code> <code>PATH=</code><code>/usr/local/bind9</code><code>.9</code><code>/bin</code><code>:</code><code>/usr/local/bind9</code><code>.9</code><code>/sbin</code><code>:$PATH</code>
<code>[root@centfils bind9.9]</code><code># . /etc/profile.d/named.sh</code>
<code>#2、導出庫檔案搜尋路徑</code>
<code>[root@centfils bind9.9]</code><code># vim /etc/ld.so.conf.d/named.conf</code>
<code>/usr/local/bind9</code><code>.9</code><code>/lib</code>
<code>[root@centfils bind9.9]</code><code># ldconfig -v</code>
<code>#3、導出頭檔案搜尋路徑</code>
<code>[root@centfils bind9.9]</code><code># ln -sv /usr/local/bind9.9/include /usr/include/named</code>
<code>"/usr/include/named"</code> <code>-> </code><code>"/usr/local/bind9.9/include"</code>
<code>#4、導出幫助文檔搜尋路徑</code>
<code>[root@centfils bind9.9]</code><code># vim /etc/man.config </code>
<code>MANPATH </code><code>/usr/local/bind9</code><code>.9</code><code>/share/man</code>
然後編輯配置檔案
<code>[root@centfils bind9.9]</code><code># cd /etc/named</code>
<code>[root@centfils named]</code><code># vim named.conf</code>
<code>options {</code>
<code> </code><code>directory </code><code>"/var/named"</code><code>;</code>
<code>};</code>
<code>zone </code><code>"."</code> <code>IN {</code>
<code> </code><code>type</code> <code>hint;</code>
<code> </code><code>file</code> <code>"named.ca"</code><code>;</code>
<code>zone </code><code>"localhost"</code> <code>IN {</code>
<code> </code><code>type</code> <code>master;</code>
<code> </code><code>file</code> <code>"locaihost.zone"</code><code>;</code>
<code> </code><code>allow-update { none; };</code>
<code>zone </code><code>"0.0.127.in-addr.arpa"</code> <code>IN {</code>
<code> </code><code>file</code> <code>"named.local"</code><code>;</code>
<code>[root@centfils named]</code><code># mkdir /var/named</code>
<code>[root@centfils named]</code><code># named-checkconf</code>
<code>#然後建立各區域的配置檔案</code>
<code>[root@centfils named]</code><code># cd /var/named</code>
<code>#在聯網的情況下直接将查詢根的結果導入根區域配置檔案</code>
<code>[root@centfils named]</code><code># dig -t NS . > /var/named/named.ca</code>
<code>#配置正向解析區域</code>
<code>[root@centfils named]</code><code># vim localhost.zone</code>
<code>$TTL 86400</code>
<code>@ IN SOA localhost. admin.localhost. (</code>
<code> </code><code>2016091301</code>
<code> </code><code>1H</code>
<code> </code><code>5M</code>
<code> </code><code>7D</code>
<code> </code><code>1D )</code>
<code> </code><code>IN NS localhost.</code>
<code>localhost. IN A 127.0.0.1</code>
<code>#配置反向解析區域</code>
<code>[root@centfils named]</code><code># vim named.local</code>
<code>1 IN PTR localhost.</code>
接下來,更改配置檔案的屬組和權限
<code>[root@centfils named]</code><code># chown :named localhost.zone named.local named.ca </code>
<code>[root@centfils named]</code><code># chmod 640 localhost.zone named.local named.ca </code>
<code>[root@centfils named]</code><code># chmod 640 /etc/named/named.conf </code>
<code>[root@centfils named]</code><code># chown :named /etc/named/named.conf</code>
之後,生成rndc配置檔案
<code>[root@centfils ~]</code><code># rndc-confgen -r /dev/urandom > /etc/named/rndc.conf</code>
<code>#使用随機數生成rndc.conf檔案</code>
<code>[root@centfils ~]</code><code># rndc-confgen -r /dev/urandom</code>
<code># Start of rndc.conf</code>
<code>key </code><code>"rndc-key"</code> <code>{</code>
<code> </code><code>algorithm hmac-md5;</code>
<code> </code><code>secret </code><code>"3FMQn6XQIuzAXNhl+19EvA=="</code><code>;</code>
<code> </code><code>default-key </code><code>"rndc-key"</code><code>;</code>
<code> </code><code>default-server 127.0.0.1;</code>
<code> </code><code>default-port 953;</code>
<code># End of rndc.conf</code>
<code>#----------------将本段内容複制到named.conf檔案中--------------------------------------</code>
<code># Use with the following in named.conf, adjusting the allow list as needed:</code>
<code># key "rndc-key" {</code>
<code># algorithm hmac-md5;</code>
<code># secret "3FMQn6XQIuzAXNhl+19EvA==";</code>
<code># };</code>
<code># </code>
<code># controls {</code>
<code># inet 127.0.0.1 port 953</code>
<code># allow { 127.0.0.1; } keys { "rndc-key"; };</code>
<code># End of named.conf</code>
<code>#----------------------------------結束------------------------------------------------</code>
将文中辨別的内容複制到named.conf中,并取消注釋
到此,準備工作結束,
<code>[root@centfils named]</code><code># named -u named -f -g -d 3</code>
<code>#-u 為指定named使用者執行</code>
<code>#-f 為運作在前台</code>
<code>#-g 把标準錯誤顯示出來</code>
<code>#-d 指明調試等級</code>
<code>[root@centfils ~]</code><code># ss -tunl | grep 53</code>
<code>udp UNCONN 0 0 192.168.0.196:53 *:* </code>
<code>udp UNCONN 0 0 127.0.0.1:53 *:* </code>
<code>tcp LISTEN 0 10 192.168.0.196:53 *:* </code>
<code>tcp LISTEN 0 10 127.0.0.1:53 *:* </code>
<code>#現在53端口已經處于監聽狀态了</code>
本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1852411