本文以Red Hat Enterprise Linux AS v4為平台
一、資料參考與准備:
DNS 是指:域名服務器(Domain Name Server)。在Internet上域名與IP地址之間是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。
一些標記解釋:
@ ----這個符號意味著SOA與域是一樣的
IN -----IN是提供IP地址的域名類當,與A,PTR或CNAME記錄一起使用時可將域名映射為IP地址,反之一樣 NS -----域名服務器指定的區域DNS服務器的域名或IP地址
MX ----MX記錄定義何種機器來為域或單個主機傳送電子郵件,為域定義就是告訴每個人將郵件發送給該域中要與之通信的人或機器
SOA-----Start Of Authority 指明其後的域名定義了主域名服務器及該域的聯系點的電子郵件地址。
PTR---將IP地址映射為主機名,PTR記錄執行與A及記錄相反的過程
A----將主機名映射為其IP地址
先從 http://www.isc.org/products/BIND/ 下載bind安裝包或者光盤中/cdrom/RedHat/RPMS可以找到相關的安裝包。
二、服務器的安裝與配置
#rpm -ivh bind*.rpm
#vi /etc/name.conf
------------------------------------
directory "/var/named";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "xuanfei.net" IN {
type master;
file "test.net”
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "63.45.10.in-addr.arpa" IN {
type master;
file "10.45.63";
-----------------------------------------------------------
#vi test.zone
-----------------------------------------------------------
$ttl 1D
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1053891162
3H
15M
1W
1D )
IN NS xuanfei.net.
IN MX 5 mail.xuanfei.net.
www IN A 10.45.63.185
it IN A 10.45.63.188
--------------------------------------------------------------------------------
#vi /var/named/10.45.63
--------------------------------------------------------------------------------
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.xuanfei.net.
--------------------------------------------------------------------------------
主要配置文件解釋:
#rpm -ql bind|More
列出該軟件包的所有文件和位置。
配置文件一般在/etc/named.conf
數據庫文件一般在/var/named下
以下是這次配置DNS服務器的幾個配置文件:
/etc/named.conf
/在NAMED.CONF配置文件中使用//和/* */來進行注釋,
ptions { /*OPTIONS選項用來定義一些影響整個DNS服務器的環境,如這裡的DI RECTORY用來指定在本文件指定的文件的路徑,如這裡的是將其指定到 /var/named 下,在這裡你還可以指定端口等等。不指定則端口是53
*/
directory "/var/named";
}; //
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在這個文件中是用zone關鍵字來定義域區的,一個zone關鍵字定義一個域區
type hint;
/*在這裡type類型有三種,它們分別是master,slave和hint它們的含義分別是:
master:表示定義的是主域名服務器
slave :表示定義的是輔助域名服務器
hint:表示是互聯網中根域名服務器
*/
file "named.ca"; //用來指定具體存放DNS記錄的文件
};
zone "localhost" IN { //定義一具域名為localhost的正向區域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "xuanfei.net" IN { //指定一個域名為test.net的正向區域
type master;
file "test.net”
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN { //定義一個IP為127.0.0.*的反向域區
type master;
file "named.local";
allow-update { none; };
};
zone "63.45.10.in-addr.arpa" IN { //定義一個IP為10.45.63.*反向域區
type master;
file "10.45.63";
/var/named/test.net文件
@ IN SOA linux.test.net. root.test.net. ( SOA表示授權開始
/* 上面的IN表示後面的數據使用的是INTERNET標准。而@則代表相應的域名,如在這裡代表test.net,即表示一個域名記錄定義的開始。而 linux.test.net則是這個域的主域名服務器,而webmaster.test.net則是管理員的郵件地址。注意這是郵件地址中用.來代替常見的郵件地址中的@.而SOA表示授權的開始
*/
2003012101 ; serial (d. adams) /*本行前面的數字表示配置文件的修改版本,格式是年月日當日修改的修改的次數,每次修改這個配置文件時都應該修改這個數字,要不然你所作的修改不會更新到網上的其它DNS服務器的數據庫上,即你所做的更新很可能對於不以你的所配置的DNS服務器為DNS服務器的客戶端來說就不會反映出你的更新,也就對他們來說你更新是沒有意義的。
*/
28800 ; refresh
/*定義的是以為單位的刷新頻率 即規定從域名服務器多長時間查詢一個主服務器,以保證從服務器的數據是最新的
*/
7200 ;retry
/*上面的這個值是規定了以秒為單位的重試的時間間隔,即當從服務試圖在主服務器上查詢更時,而連接失敗了,則這個值規定了從服務多長時間後再試
*/
3600000 ; expiry
/*上面這個用來規定從服務器在向主服務更新失敗後多長時間後清除對應的記錄,上述的數值是以分鐘為單位的
*/
8400 )
/*上面這個數據用來規定緩沖服務器不能與主服務聯系上後多長時間清除相應的記
錄
*/
IN NS linux
IN MX 10 linux
linux IN A 10.45.63.185
it IN A 10.45.63.188
www IN CNAME linux
/*上面的第一列表示是主機的名字,省去了後面的域。
NS:表示是這個主機是一個域名服務器,
A:定義了一條A記錄,即主機名到IP地址的對應記錄
MX 定義了一郵件記錄
CNAME:定義了對應主機的一個別名
/var/named/10.45.63
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.xuanfei.net.
/*以上的各關鍵字的含義跟xuanfei.net是相同的
185 IN PTR linux.xuanfei.net.
188 IN PTR it.xuanfei.net.
/*
上面的第一列表示的是主機的IP地址。省略了網絡地址部分。如185完整應該是:
10.45.63.185
PTR:表示反向記錄
最後一列表示的是主機的域名。
三、啟用與測試
啟動服務:
#/etc/init.d/named startd
測試工具:
linux:host dig ping
win:ping nslookup
客服端配置:
linux:修改/etc/resolv.conf
win:雙擊本地連接==》打開TCP/IP屬性==》選中自定義DNS服務器地址
四、小結
DNS 服務看上去簡單,但其實裡邊是一大學問,想要搞清楚裡邊的細節,還得花很大的功夫!其應用也非常廣可用在電信的的交換技術上、也可應用在IPv6 的 Anycasting 上 、 Net to Net 的 VPN 等領域。還有重要的安全防范領域!還我們繼續努力學習啊!:)
參考引用資料:
www.linuxforum.net
www.chinaunix.net