wget http://ftp.isc.org/isc/bind9/9.7.1/bind-9.7.1.tar.gz
tar zxvf bind-9.7.1.tar.gz
cd bind-9.7.1
./configure --prefix=/usr/local/named --enable-threads && make && make install
這時會報錯,依賴openssl
yum install -y openssl openssl-devel
或
yum install -y openssl*
groupadd bind
useradd bind -g bind -d /usr/local/named -s /sbin/nologin
設置目錄權限
cd /usr/local/named
chown -R bind:bind /usr/local/named
mkdir -pv /var/named
chown -R bind:bind /var/named/
chmod 700 /usr/local/named/etc/
生成named.root 文件(/var/named)
cd /var/named
dig > named.root
or
wget http://ftp.internic.net/domain/named.root
將生成的rndc.conf寫入到named.conf文件中
cd /usr/local/named/etc/
以下1,2步驟解決生成配置文件慢的問題
安裝完Bind後,執行rndc-confgen沒反應,經過Google搜索是由於
rndc-confgen 調用 /dev/random ,而 /dev/random 又通過 /proc/interrupts 產生隨機數不足,導致
rndc-confgen 一直等待
rndc-confgen --help 可以指定 randomfile
1.
手動生成一個 randomfile 文件
echo "selbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselbooselboo" > test
/usr/local/named/sbin/rndc-confgen -r test
2.
/usr/local/named/sbin/rndc-confgen -r /dev/urandom
3.
利用-r /dev/urandom產生足夠的隨機數,快速生成配置文件
/usr/local/named/sbin/rndc-confgen -r /dev/urandom >/usr/local/named/etc/rndc.conf
tail -10 rndc.conf | head -9 | sed s/#\ //g > /usr/local/named/etc/named.conf
bind路徑與chroot
假設BIND所需的文件:
配置文件:/usr/local/named/etc/named.conf,設定zone file的目錄/var/named 權限等;
zone file:記錄主機名與IP對應
named.conf:這是BIND的主配置文件
/var/named:zone文件默認放置的地方
/var/run/named: named程序執行時默認放置pid-file在此
Cache-only 與 forwarding DNS
Cache-only服務器:僅有“.”這個zone file的簡單DNS,沒有自己的DNS服務器,只有緩存查詢結果的功能。
Forwarding服務器:指定一臺上層DNS服務器作爲forwarding目標
如何設定cache-only與forwarding?
很簡單,因爲不需要設定正反解的zone文件,所以只需要設定一下named.conf配置文件即可。
named.conf文件
options{
listen-on port 53 {any;};
directory "/var/named";
allow-query {any;};
recursion yes;
forward only;
forwarders {114.114.114.114, 8.8.8.8;8.8.4.4;};
};
options:與服務器環境有關的參數
listen-on port 53 {any;};
默認是監聽在127.0.0.1,只有本機可以對DNS服務進行查詢,這裏要改成any。
記得,因爲可以監聽多個接口,因此any後面得要加上分號。另外,這個參數如果忘記
寫也沒關係,因爲默認是對整個主機系統的所有接口進行監聽的。
directory "/var/named";
zone file 放置在哪個目錄下。
allow-query { any; };
這個是針對客戶端,到底誰可以對我的DNS服務提出查詢請求,原本僅是針對localhost
開放而已,我們這裏改成對所有的用戶開放,不過,默認DNS就對所有用戶放行,所以這個設定值也可以不用寫。
forward only;
這個設定可以讓你的DNS服務器進行forword,即使有,這個zone file的設定,也不會使用.的資料,
只會將查詢權交給上層DNS服務器而已,是cache only DNS最常見的設定了。
forwarders {114.114.114.114, 8.8.8.8;8.8.4.4;};
既然有forward only,那麼到底對那部上層DNS服務器進行
轉發呢?那就是forwarders(不要忘記那個s)參數的重要
性了!由於擔心上層DNS服務器也可能會掛掉,因此可以
設定多部上層DNS服務器,每一個forwardr服務器的IP都
需要有;來作爲結尾。
啓動named
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u bind
tail -f /var/log/messages
netstat -antulp |grep :53
netstat -antulp |grep :953
tcpdump -K dst port 53
DNS詳解
DNS服務器需要在域名提供商處註冊纔可以成爲合法的DNS服務器
2.配置文件及目錄的位置
3.named主要配置文件named.conf
4.正反解都要有自己zone文件,文件名由named.conf指定
5.當DNS查詢時,若本身沒有解析,則向root(.)或forwarders服務器查詢
6.任何時候都要記得查看日誌文件/var/log/messages
正解(resource record, RR)
dig -t soa google.com baidu.com taobao.com