模式:C/S模式
#vim /etc/services
端口:
tcp/53 udp/53 #用於客戶端查詢
tcp/953 udp/953 #用於DNS主從同步
安裝DNS
BIND簡介
BIND全稱為Berkeley internet Name Domain(伯克利因特網名稱域系統)。
BIND主要有三個版本:BIND4、BIND8、BIND9。
BIND融合了許多提高效率、穩定性和安全性的技術,而BIND9增加了一些超前的理念:IPV6支持、密鑰加密、多處理器支持、線程安全操作、增量區傳送等等。
#rpm -vih /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //DNS服務的主程序包
#rpm -vih /mnt/Packages/bind-chroot-9.7.3-8.P3.el6.x86_64.rpm //提高安全性
注:bind-chroot是bind的一個功能,使bind可以在一個chroot的模式下運行。也就是說bind運行時的/(根)目錄,並不是系統真正的/(根)目錄,只是系統中的一個子目錄而已。這樣做的目的是為了提高安全性。因為在chroot的模式下,bind可以訪問的范圍僅限於這個子目錄的范圍里,無法進一步提升,進入到系統的其他目錄中。
#rpm -vih bind-utils-9.7.3-8.P3.el6.x86_64.rpm //該包為客戶端工具,默認安裝,用於搜索域名指令。
或者
#yun install bind
#yun install bind-chroot
DNS服務器相關配置文件
#ls /etc/named.conf //named.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其並不包括區域數據。
named.conf是BIND的並不包括區域數據。
啟動服務
//要先啟動named服務,否則/var/named/chroot/目錄下的文件不會被掛載上。這個和RHEL5是不一樣的。
#ls /var/named/chroot/
#/etc/init.d/named restart(有點慢稍等下)
#service named restart //重啟服務
在客戶端配置好DNS服務器地址
#cat /etc/resolv.conf (查看DNS服務器地址)
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=100.64.140.120(當前本地PC的IP地址)
修改配置文件,實戰舉例
例1:配置DNS服務器解析:xuegod.cn
#vim /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
zone "xuegod.cn" IN{
type master;
file "xuegod.cn.zone";
};
創建zone文件
#cd /var/named
#cp -rp named.localhost xuegod.cn.zone
#vim xuegod.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
代替為
$TTL 1D
@ IN SOA ns.xuegod.cn. admin.xuegod.cn (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.xuegod.cn.
ns A 100.64.140.120
www A 100.64.140.120
mail A 100.64.140.121
smtp CNAME mail.xuegod.cn.
AAAA ::1
配置說明:
$TTL 1D;設置有效地址解析記錄的默認緩解時間,默認為1天也就是1D。
#原來的@表示當前的域xuegod.cn.,為方便大家記憶,我們這里,直接寫成xuegod.cn.
#設置SOA記錄為:dns.xuegod.cn. #在此配置文件中寫域名時,都把根.也要寫上。
#域管理郵箱root.xuegod.cn,由於@有其他含義,所以用"."代替@。
0 ;更新序列號,用於標示數據庫的變換,可以在10位以內,如果存在輔助DNS區域,建議每次更新完數據庫,手動加1.
1D ;刷新時間,從域名服務器更新該地址數據庫文件的間隔時間,默認為1天
1H ;重試延時,從域名服務器更新地址數據庫失敗以后,等待多長時間,默認為1小時
1W ;到期,失效時間,超過該時間仍無法更新地址數據庫,則不再嘗試,默認為一周
3H ;設置無效地址解析記錄(該數據庫中不存在的地址)默認緩存時間。設置無效記錄,最少緩存時間為3小時
$TTL 1D;設置有效地址解析記錄的默認緩解時間,默認為1天也就是1D。
#原來的@表示當前的域xuegod.cn.,為方便大家記憶,我們這里,直接寫成xuegod.cn.
#設置SOA記錄為:dns.xuegod.cn. #在此配置文件中寫域名時,都把根.也要寫上。
#域管理郵箱root.xuegod.cn,由於@有其他含義,所以用"."代替@。
0 ;更新序列號,用於標示數據庫的變換,可以在10位以內,如果存在輔助DNS區域,建議每次更新完數據庫,手動加1.
1D ;刷新時間,從域名服務器更新該地址數據庫文件的間隔時間,默認為1天
1H ;重試延時,從域名服務器更新地址數據庫失敗以后,等待多長時間,默認為1小時
1W ;到期,失效時間,超過該時間仍無法更新地址數據庫,則不再嘗試,默認為一周
3H ;設置無效地址解析記錄(該數據庫中不存在的地址)默認緩存時間。設置無效記錄,最少緩存時間為3小時
SOA:區域授權起始記錄,區域文件第一條記錄,而且一個區域文件只能有一條
NS:域的授權名稱服務器
MX:域的郵件交換器,要跟着一個優先級值,越小越高
A:IPV4主機地址
AAAA:IPV6主機地址
PTR:解析IP的指針
CNAME:權威(正式)名稱,定義別名記錄
#cd
#service named restart
#ping www.xuegod.cn
查看返回的地址是否為設置的DNS:100.64.140.120(當前本地PC的IP地址)
例二、使DNS支持迭代查詢
#vim /var/named/chroot/etc/named.conf
將藍標的注釋掉,這樣客戶端才能通過這個DNS進行遞歸查詢。把DNS加密通訊功能關閉,才可以和根服務器實行迭代查詢。
#service named restart
#ping www.baidu.com
ping:unknown host www.baidu.com
三、搭建DNS轉發服務器
#vim /var/named/chroot/etc/named.conf
#service named restart
嘗試ping百度,可以連通
#ping www.baidu.com
四、搭建DNS主從服務器
#vim /var/named/chroot/etc/named.conf
可以允許哪個網段的從DNS服務器,可以同步主DNS服務器zone文件,不寫默認為所有。
配置從服務器
到另外一台主機上
安裝DNS服務器
或者
#yum install bind
#yum install bind-chroot
#service named start(稍微有點慢)
#vim /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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";
allow-query { any; };
recursion yes;
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;
zone "xuegod.cn" IN{
type slave;
file "slaves/xuegod.cn.zone.file";
masters{ 100.64.140.120; };
};
#service named restart
#ls /var/named/chroot/var/named/slaves
xuegod.cn.zone.file
注:這樣從DNS服務器就可以從主服務器上獲取DNS解析記錄信息了。
重啟從DNS服務器會在:/var/named/chroot/var/named/slaves文件夾下自動創建一個文件
xuegod.cn.zone.file這個文件是從DNS服務器從主DNS服務器上獲取的數據。
驗證同步:
修改主DNS服務器區域文件
#vim /var/named/chroot/etc/named.conf
#service named restart
到從DNS服務器驗證
#service named restart
#rm -rf /var/named/chroot/var/named/slaves/xuegod.cn.zone.file
#service named restart
#cart /var/named/chroot/var/named/slaves/xuegod.cn.zone.file
注:若發現沒用同步,很正常,同步周期為1天。
六、DNS主從密鑰認證
1、同步時間
主服務器
#vim /etc/ntp.conf
#service ntpd stop
#ntpdate 0.rhel.pool.ntp.org
從服務器
#vim /etc/ntp.conf
#service ntpd stop
#ntpdate 0.rhel.pool.ntp.org
2、生成密鑰,進行主從認證,在主DNS服務器操作
#dnssec-keygen -a hmac-md5 -b 128 -n HOST abc
Kabc.+157+34056
-a hmac-md5:采用hmac-md5加密算法。
-b 128:生成的密鑰長度為128位。
-n<nametype:ZONE | HOST | ENTITY | USER | OTHER
(DNSKEY generation defaults to ZONE)
abc:為生成密鑰的名字
#cat Kabc.+157+34056.private
或者
#cat Kabc.+157+34056.key
#vim /var/named/chroot/etc/named.conf
(3)從DNS服務器
#vim /var/named/chroot/etc/named.conf
#service named restart