第一、DNS服務器
1、基本瞭解
hosts ---> DNS
特點:
1、是一個分佈式的數據庫,數據包存在一個域名空間裏
2、解決了數據不一致,避免了名字衝突
3、有緩存機制,提高了性能和可靠性
規則:
1、分層結構,最多127層,每層最多63個字符
查詢方式:遞歸查詢、迭代查詢
軟件包:
bind.i386 <---主服務的軟件包
bind-chroot.i386 <---安全軟件包
bind-libs.i386 <---庫文件
bind-utils.i386 <---工具包
bind-devel.i386 <---開發包
協議:tcp / dup
端口: 53 使用udp 53端口處理名字查詢,使用tcp 53端口數據文件的拷貝
配置文件的目錄:
a、在沒有安裝bind-chroot之前:
/etc/named.conf
/var/named/
b、安裝bind-chroot之後
/var/named/chroot/etc/named.conf ---> 把 /var/named/chroot 虛擬成一個 /
/var/named/chroot/var/named/
2、配置
開始配置配置之前需要作一些準備:
a、在hosts 文件寫上你的IP和主機名的對應關係
10.1.1.67 mail.upl.com
b、關閉SeLinux,關閉iptables
c、同步時間 ntpdate 10.1.1.1
# while :
> do
> ntpdate 10.1.1.1 2> /dev/null >/dev/null
> sleep 30
> done &
技巧,在rc.local寫以下代碼:
while : ; do ntpdate 10.1.1.1 2> /dev/null >/dev/null; sleep 30; done &
配置DNS的大致過程:
1、named.conf
2、區域文件
3、重啓named服務
實例1:配置正向解析
1、編輯主配置文件 named.conf
格式:
options {
字段 值;
字段 值;
}; <-- 注意了,別漏了;
options {
directory "/var/named";
};
zone "upl.com" IN {
type master;
file "data/master.upl.com.zone";
};
2、編寫區域文件
$TTL 86400
@ IN SOA upl.com. root.upl.com. (
2009110301 <--版本號,標識區域文件的版本
15M <----刷新時間,M分鐘,可以寫成秒,直接數字
10M <----刷新失敗後的重試時間
1D <----過期時間,從服務器更新數據失敗後這個區域文件的記錄有效期爲1天,1天后不生效了, D代表 天
1H) <----查無此域名,H 代表小時
@ IN NS mail.upl.com. <---別忘記了最後的“ . ”
IN MX 0 mail.upl.com.
mail IN A 10.1.1.67
web IN A 10.1.1.20
ftp IN A 10.1.1.21
www IN CNAME web
編輯好區域文件,留意一下他的權限
ll /var/named/chroot/var/named/data/master.upl.com.zone
-rw-r--r-- 1 root root 216 11-03 11:40 /var/named/chroot/var/named
需要知道的是,bind軟件運行的時候採用的身份named
3、重啓named服務器
service named restart
chkconfig --level 35 named on <---開機自動啓動
4、測試
vim /etc/named.conf
nameserver 10.1.1.67 <---修改成自己的
nslookup web.upl.com
實例2:實現反向解析
實現IP解析成域名
1、主配置文件添加以下區:
zone "1.1.10.in-addr.arpa" IN {
type master;
file "data/master.1.1.10.in-addr.arpa.zone";
};
2、區域文件:
$TTL 86400
@ IN SOA 1.1.10.in-addr.arpa. root. (
01
15M
10M
1D
1H)
@ IN NS mail.upl.com. <---別忘記了最後的“ . ”
67 IN PTR mail.upl.com.
20 IN PTR web.upl.com.
21 IN PTR ftp.upl.com.
20 IN PTR www.upl.com.
3、重啓named服務
service named restart
4、測試
首次測試別忘了修改/etc/resolv.conf文件,把DNS服務器指向你搭建的服務器
nslookup 10.1.1.20
nslookup 10.1.1.21
實例3:輪叫實現負載均衡
vim /var/named/chroot/var/named/data/master.upl.com.zone
$TTL 86400
@ IN SOA upl.com. root.upl.com. (
2009110301
15M
10M
1D
1H)
@ IN NS mail.upl.com.
IN MX 0 mail.upl.com.
mail IN A 10.1.1.67
web IN A 10.1.1.20
ftp IN A 10.1.1.21
www IN CNAME web
web IN A 10.1.1.30 <---實現輪叫,一個主機名匹配多個IP
web IN A 10.1.1.31
web IN A 10.1.1.32
web IN A 10.1.1.33
實例4:實現直接解析
vim /var/named/chroot/var/named/data/master.upl.com.zone
upl.com. IN A 10.1.1.67 <---添加一行,別忘記最前面的那個 “ . ”
實例5:實現泛解析
* IN A 10.1.1.99
nslookup kjfksdjflksdjflkdf.upl.com ---> 10.1.1.99
實例6: 實現連接解析域名
正向區域文件的設定:
$GENERATE 100-220 station$ IN A 10.1.1.$
方向區域文件的設定:
$GENERATE 100-220 $ IN PTR station$.upl.com.
[root@mail chroot]# nslookup 10.1.1.220
Server: 10.1.1.67
Address: 10.1.1.67#53
220.1.1.10.in-addr.arpa name = station220.upl.com.
實例7:輔助DNS服務器(從DNS服務器)的配置
安裝一樣的軟件,準備工作和主服務器一樣
1、配置主配置文件
options {
directory "/var/named";
};
zone "upl.com" IN {
type slave;
file "slaves/slave.upl.com.zone"; # 目錄定義要注意權限文件,slaves必
須是named:named,權限770
masters { 10.1.1.67; };
};
2、重啓named服務
service named restart
3、驗證
a、 ls /var/named/chroot/var/named/slaves/slave.upl.com.zone 《--是否下載回來
b、 查看日誌文件
tail -30 /var/log/messages
Nov 3 23:36:33 station181 named[4050]: zone upl.com/IN: Transfer started.
Nov 3 23:36:33 station181 named[4050]: transfer of 'upl.com/IN' from 10.1.1.67#53: connected using 10.1.1.92#60547
Nov 3 23:36:33 station181 named[4050]: zone upl.com/IN: transferred serial 2009110301
Nov 3 23:36:33 station181 named[4050]: transfer of 'upl.com/IN' from 10.1.1.67#53: end of transfer
c、修改/etc/resolv.conf文件
nameserver 10.1.1.92 <--執行10.1.1.92
nslookup web.upl.com <---測試
Server: 10.1.1.92
Address: 10.1.1.92#53
Name: web.upl.com
Address: 10.1.1.32
Name: web.upl.com
Address: 10.1.1.33
如果失敗,原因:1、是否能和主服務器通訊正常;
2、配置文件是否正確;
3、是否從服務器保存的區域文件路徑named用戶沒有權限寫;
4、查看/var/log/messages文件看報錯。
實例7-1:驗證主從服務器的數據更新
1、更新主服務器的區域文件的記錄,注意:必須增加版本號(比原來的大)
vim var/named/data/master.upl.com.zone
new IN A 10.1.1.88 《---添加一條新的記錄
可以把刷新時間改成 1M ,等等好看到效果
2、重啓主服務器的服務
service named restart
3、驗證從服務器是否在指定更新時間內把新版本的區域文件下載回來
驗證方法:
1、直接刪除從服務器上的已經下載回來的區域文件
rm -f /var/named/chroot/var/named/slaves/slave.upl.com.zone
然後重啓 service named restart
你會發現重新下載
2、馬上再次更新主服務器的區域文件的記錄,增加或者刪除記錄都行,並更新版本號,並重啓主服務器的服務
service named restart
3、由於新下載的區域文件已經是1M的刷新時間了,我們就監控/var/log/messages文件
tail -f /var/log/messages <---如果看到有內容更新日誌過來就正確了
稍等1分鐘左右,就能看到日誌文件有內容輸出了,並驗證一下區域文件的版本號
shell> head -5 /var/named/chroot/var/named/slaves/slave.upl.com.zone
$ORIGIN .
$TTL 86400 ; 1 day
upl.com IN SOA upl.com. root.upl.com. (
2009110303 ; serial <----留意,版本號已經是最新的
60 ; refresh (1 minute)
實例7-2: 限制數據傳輸的IP:
zone "upl.com" IN {
type master;
file "data/master.upl.com.zone";
allow-transfer { 10.1.1.92; }; <---在主服務器上進行限制,這樣就只能10.1.1.92作爲你的從服務器
};
實例8:轉發服務器的配置
類型:條件轉發 和 完全轉發
1、條件轉發的配置:但配置文件找不到的區的時候才轉發出去,還有就是指定了轉發的區也轉發出去
options {
directory "/var/named";
forwarders { 10.1.1.1; };
};
zone "cluster.com" IN {
type forward;
forwarders { 10.1.1.1; }; 《---條件轉發,只有cluster.com這個區才轉發
};
zone "upl.com" IN { 《---沒有定義轉發,所以自己去管理,自己去解析
type master;
file "data/master.upl.com.zone";
allow-transfer { 10.1.1.92; };
};
2、完全轉發的配置
options {
directory "/var/named";
forwarders { 10.1.1.1; };
forward only ;
};
實例9:定義根域
根域地址列表獲取命令:
dig @a.root-servers.net. ns > /var/named/chroot/var/named/named.ca
[root@mail chroot]# chown named:named /var/named/chroot/var/named/named.ca
[root@mail chroot]# chmod 770 !$
options {
directory "/var/named";
forwarders {10.1.1.1;};
forward only;
};
zone "." IN {
type hint;
file "named.ca";
};
DNS服務器搭建及配置,尚觀Day12
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.