dns

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


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