最近在DNS安裝配置的時候老是出現錯誤,因而從新整理了一下之前學習的資料,詳細地作了此次關於DNS服務器的安裝與配置實驗,順便也粗略的寫下記錄了此次實驗過程,下面是整理過的實驗操做,但願對一些有須要的朋友能有所幫助。windows
1.服務器的安裝緩存
首先檢查系統是否已經安裝服務器
打開終端輸入命令:#rpm -qa | grep bind負載均衡
若已安裝則顯示以下:ide
若未安裝,依次安裝上面軟件便可。工具
2.主配置文件named.conf學習
因爲主配置文件named.conf默認並不存在,能夠採用①本身編寫,或②複製/usr/share/doc/bind-9.3.6/sample/etc/下的模板到/etc/下,或者③安裝caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm將安裝文件named.caching-nameserver.conf修改成named.conf的方法得到主配置文件named.conf。這裏採用第二種方法。debug
首先將/usr/share/doc/bind-9.3.6/sample/etc/下的所有文件複製到/etc/下,將/usr/share/doc/bind-9.3.6/sample/var/named/下的所有文件複製到/var/named/下(所有替換)。rest
編輯文件named.conf以下(已刪去註釋):server
options
{
directory "/var/named";
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
};
logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "localhost_resolver"
{
match-clients { any; }; //將localhost改成any
match-destinations { any; }; //將localhost改成any
recursion yes;
include "/etc/named.root.hints";
include "/etc/named.rfc1912.zones";
};
view "internal"
{
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
include "/etc/named.root.hints";
zone "my.internal.zone" {
type master;
file "my.internal.zone.db";
};
zone "my.slave.internal.zone" {
type slave;
file "slaves/my.slave.internal.zone.db";
masters { 127.0.0.1; } ;
};
zone "my.ddns.internal.zone" {
type master;
file "slaves/my.ddns.internal.zone.db";
};
};
view "external"
{
match-clients { any; };
match-destinations { any; };
recursion no;
allow-query-cache { none; };
include "/etc/named.root.hints";
zone "my.external.zone" {
type master;
file "my.external.zone.db";
};
};
編輯文件named.rfc1912.zones,在文件最下方添加以下:
zone "test.com" IN { //定義正向解析區域
type master;
file "test.com.zone"; //正向解析區域聲明文件
allow-update { none; };
};
zone "91.168.192.in-addr.arpa" IN { //定義反向解析區域
type master;
file "91.168.192.zone"; //反向解析區域聲明文件
allow-update { none; };
};
在/var/named/下新建文件test.com.zone,91.168.192.zone。分別編輯以下:
文件test.com.zone:
$TTL 86400 //容許客戶端緩存來自查詢數據的默認時間
@ IN SOA dns.test.com. root (
2013050700 ; Serial
28800 ; Refresh //更新間隔
14400 ; Retry //重試間隔
3600000 ; Expire //過時時間
86400 ) ; Minimum //最小默認TTL
IN NS dns //名稱服務器
IN MX 5 mail //郵件交換器
dns IN A 192.168.91.128
www IN A 192.168.91.10 //負載均衡
www IN A 192.168.91.11
www IN A 192.168.91.12
ftp IN A 192.168.91.13
samba IN A 192.168.91.14
mail IN A 192.168.91.20
bbs CNAME www //設置別名
test.com. IN A 192.168.91.100 //直接解析域名
*.test.com. IN A 192.168.91.9 //泛域名解析
文件91.168.192.zone:
$TTL 86400
@ IN SOA dns.test.com. root (
2013050700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS dns.test.com.
128 IN PTR dns.test.com.
10 IN PTR www.test.com.
20 IN PTR mail.test.com.
13 IN PTR ftp.test.com.
3.更新named.root文件
在聯網的狀況下可直接在終端輸入命令以下:
#dig > /var/named/named.root
爲避免chroot功能干擾實驗,先關閉chroot功能,執行命令以下:
#bind-chroot-admin -d
啓動DNS服務器,輸入指令以下:
#service named start
如上,一個簡單地DNS服務器配置成功。下面用windows XP客戶端驗證配置:
首先確保開放服務器防火牆端口TCP 53和UDP 53。將客戶端DNS地址設置爲所配置DNS服務器IP地址。
在命令提示符中輸入:nslookup,結果以下:
依次驗證以下:
4.因爲DNS服務器在實際工做中工做量會很大,即便是短暫的間斷也會對系統形成很大影響,這裏運用rndc工具,使在不用從新啓動的狀況下更新DNS中的數據。
在終端輸入命令以下:
#rndc-confgen
出現以下:
# Start of rndc.conf
key "rndckey" {
algorithm hmac-md5;
secret "p8SMJ/l6wOOddMEp0uwHtA==";
};
options {
default-key "rndckey";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndckey" {
# algorithm hmac-md5;
# secret "p8SMJ/l6wOOddMEp0uwHtA==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndckey"; };
# };
# End of named.conf
將其所有複製到/etc/rndc.conf文件中,保存。
將其下半部分:
# key "rndckey" {
# algorithm hmac-md5;
# secret "p8SMJ/l6wOOddMEp0uwHtA==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndckey"; };
# };
複製到文件named.conf最下方,去掉其前面的#號,保存。
從新啓動DNS服務器,輸入命令以下:
#service named restart
如此在每次修改了DNS服務器相關文件後無需每次都從新啓動服務器,只需在終端輸入以下命令:
#rndc reload