Linux-DNS主從服務
DNS,域名解釋。所謂域名解釋可以理解爲人的***號碼與姓名的關係。網站也有對應的IP和域名,訪問IP和域名都可以達到目的,但誰會去記IP?就像誰會記得你的***號碼一樣。DNS就是將這兩者互相解釋,因此分爲正向和反向。
以紅冒企業版RHEL5爲例,並以著名DNS服務器軟件BIND爲例。搭建主域名服務器和從域名服務器。這裏所謂的主從,是從服務器同步主服務器,可以作爲DNS服務器熱備,只是數據源於主服務器。
安裝BIND軟件,可以到其官方網站下載,https://www.isc.org。主要包括bind,bind-utils,bind-libs,bindchroot,caching-nameserver。
mount /dev/cdrom /media/cdrom
rpm -Uvh /media/cdrom/Server/bind-9.3.3-7.el5.i386.rpm
rpm -Uvh /media/cdrom/Server/caching-nameserver-*
rpm -Uvh /media/cdrom/Server/bind-chroot-*
安裝完成後,會自動增加一個named到系統服務。配置文件主要爲主配置文件和區域配置文件,搞定兩者則可以了!!
首先,確定本機IP,主機映射,默認DNS地址等。例如IP地址爲192.168.78.129,主機名爲dns.test.com。修改/etc/hosts文件,將DNS地址映射寫入:
vim /etc/hosts
....//略
192.168.78.129 dns.test.comdns
192.168.78.130dns2.test.comdns2
修改/etc/resolv.conf文件,提高解析速度。
vim /etc/resolv.conf
nameserver192.168.78.129
nameserver192.168.78.130
主配置文件常位於/etc/目錄下,剛纔安裝了bind-chroot後,則主配置文件默認位於/var/named/chroot/etc/目錄下,而且需要手動創建,但可以複製配置文件。
cd /var/named/chroot/etc/
cp -p named.caching-nameserver.conf named.conf
-p是爲了保留權限。
vim /var/named/chroot/etc/named.conf
通常除了directory項保留外,其餘都可以刪除。
options {
listen-on port 53 { 127.0.0.1; }; //監聽地址和端口
listen-on-v6 port 53 { ::1; };
directory "/var/named"; //區域數據文件的默認存放位置
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; }; //允許使用本DNS服務到的網段,可以是多個,例如allow-query {192.168.1.0/24;192.168.2.0/24};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
//修改成如下:
options {
directory "/var/named";
};
zone "test.com" IN { //正向“test.com”區域
type master ; //類型爲主區域
file "test.com.zone"; //區域數據文件爲test.com.zone
allow-transfer {192.168.78.130;}; //允許下載到從服務器地址
};
zone "78.168.192.in-addr.arpa" IN { //反向”192.168.78.0/24“區域
type master;
file "192.168.78.arpa"; //區域數據文件爲78.168.192.arpa
allow-transfer {192.168.78.130;};
};
保存退出。
通過命令可以查看語法有沒有錯誤。
named-checkconf -z /var/named/chroot/etc/named.conf
區域配置文件,通常位於/var/named/目錄下,又因爲安裝了bind-chroot軟件包,默認目錄爲/var/named/chroot/var/named/目錄下。
複製一份區域配置文件作修改,並且文件名修改爲主配置文件所設置的區域名。
cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/test.com.zone
vim /var/named/chroot/var/named/test.com.zone
$TTL 86400//有效解析記錄的生存週期
@ IN SOA @ root( //SOA標記,域名,管理郵箱
2015010801 //更新序列號,10位以內的整數
3H //刷新時間,重新下載地址數據的間隔時間
15M //重試延時,下載失敗後的重試間隔
1W //失效時間,超過該時間仍無法下載則放棄
1D ) //無效解析記錄的生存週期
IN NS @ //NS域名服務器
IN A 127.0.0.1 //記錄正向解析條目
IN MX 127.0.0.1 //郵件交換
將其修改爲如下:
$TTL 86400
@ IN SOA test.com. admin.test.com. (
2015010801
3H
15M
1W
1D
)
@ IN NS dns.test.com.
IN MX 10 mail.test.com.
dns IN A 192.168.78.129
mail IN A 192.168.78.1
www IN A 192.168.78.2
* IN A 192.168.78.129
切記格式,每個域名後面須加. 否則出錯。
修改反向區域配置文件,一樣是複製並修改。
cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/192.168.78.arpa
vim /var/named/chroot/var/named/192.168.78.arpa
修改成如下:
$TTL 86400
@ IN SOA test.com. admin.test.com. (
2015010801
3H
15M
1W
1D )
IN NS dns.test.com.
129 IN PTR dns.test.com.
2 IN PTR www.test.com.
1 IN PTR mail.test.com.
保存退出。
重啓服務
service named restart
在客戶端的DNS地址設置爲服務器IP 192.168.78.129
在cmd命令行裏測試輸入nslookup;在linux中也可以輸入該命令測試。
C:\Documents and Settings\Administrator>nslookup
如果出現如下提示
Default Server: UnKnown不知道服務器的。則說明是反向解析配置出現問題,不能進行解析。這時需要檢查反向解析配置文件,格式,地址,名稱等。
在裏面輸入要解析的地址或IP
從服務器,IP地址爲192.168.78.130,主機名爲dns2.test.com,主機映射文件/etc/hosts和DNS解析文件/etc/resolv.conf與主服務器一樣配置即可。
修改named.conf時,和主服務器有以下區別:
options {
directory "/var/named";
};
zone "test.com" IN {//正向“test.com”區域
type slave; //類型爲從服務器
masters { 192.168.78.129; };//指定主服務器IP
file “slaves/test.com.zone";//下載的區域文件存放到slaves目錄
};
zone "78.168.192.in-addr.arpa" IN {//反向”192.168.78.0/24“區域
type slave; //類型爲從服務器
masters { 192.168.78.129; };//指定主服務器IP
file "slaves/192.168.78.arpa";//下載的區域文件存放到slaves目錄
};
確保named用戶對存放目錄有寫入權限,纔可以成功下載。
ls -ld /var/named/chroot/var/named/slaves/
drwxrwx--- 2 named named 4096 2015-01-08 /var/named/chroot/var/named/slaves/
如果屬宿主,權限有誤,則修改。
在客戶端上,從服務器和主服務器都沒有什麼區別,都可以解析得到。
將客戶機的DNS地址換爲192.168.78.130,測試亦可以成功解析!!