歡迎您光臨本站 註冊首頁

用實驗快速掌握DNS配置

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

用實驗快速掌握DNS配置

用實驗快速掌握DNS配置

由於配置DNS很重要,本文主要以做實驗來快速掌握DNS配置.
[實驗目的]
1.配置一個只可轉發請求的DNS.
2.配置一個masterDNS.
3.配置一個slaveDNS.
[實驗環境]
1.兩台互連的計算機.
2.系統Redhat 8.0.
[實驗步驟]
一.實驗準備.
1.兩台機關掉iptables
# service iptables stop
# chkconfig iptables off
2.兩台機檢查安裝必要軟體
# rpm -q bind
# rpm -q bind-utils
# rpm -q caching-nameserver
根據結果,安裝沒安裝的軟體,從安裝盤裡找出沒安裝的包,有選擇的執行下列步驟:
# rpm -Uvh bind-9*
# rpm -Uvh bind-utils*
# rpm -Uvh caching-nameserver*
3.互連兩台機.
①編輯兩台機的相應文件.(編輯最好用vi,以下也是)
機器1:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.0.254
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.254
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server1

機器2:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.1
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=station1
②分別在兩台機上運行:
機器1:
# ifdown eth0
# ifup eth0
# ping 192.168.0.1
機器2:
# ifdown eth0
# ifup eth0
# ping 192.168.0.254
主意:兩台機能互相ping通,繼續下列實驗,不通,再找找原因.
二.機器1上配置一個masterDNS.
機器1上:
1.編輯/etc/named.conf文件:
/etc/named.conf
options {
directory 「/var/named/」;
};

zone 「.」 IN {
type hint;
file 「named.ca」;
};

zone 「localhost」 IN {
type master;
file 「localhost.zone」;
};

zone 「0.0.127.in-addr.arpa」 IN {
type master;
file 「named.local」;
};

zone 「example1.com」 IN {
type master;
file 「db.example1」;
};

zone 「0.168.192.in-addr.arpa」 IN {
type master;
file 「db.192.168.0」;
};
----------------------------------------------------------------------
解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段.
上述文件有六部分:option ,5個zone.
其中option,」.」,」localhost」,」0.0.127.in-addr.arpa」原來就有.
「example1.com」,「0.168.192.in-addr.arpa」為現在子網的正向和反向搜索區的
定義,「db.example1」,」db.192.168.0」的名字是隨便取的,它們必需在/var/named/下
存在.
主義{}前後及中間的空格,及分號.
-----------------------------------------------------------------------
2.用vi創建兩個文件,/var/named/db.example1,/var/named/db.192.168.0
/var/named/db.example1
$TTL 86400
@ IN SOA server1.example1.com. Root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
IN A 192.168.0.254
server1 IN A 192.168.0.254
station1 IN A 192.168.0.1
www IN A 192.168.0.254
ftp IN A 192.168.0.254
pop IN A 192.168.0.254
www1 IN CNAME server1.example1.com.
ftp1 IN CNAME server1.example1.com.
@ IN MX 10 server1.example1.com.
server1.example1.com IN MX 10 server1.example1.com.
----------------------------------------------------------------------
解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段.
上述文件是一個正向搜索的資料庫:
$TTL 86400 是文件開頭,數字錶示默認存活期,用秒計算的,做什麼不用不要管它,
記著添上就行.

接著的格式就是: <type>; <rdata>;

如: server1.example1.com ,www.
Www是簡寫,實際會默認添上定義這個文件的那個 zone 「example1.com」里的
example1.com,即:www=www.example1.com.這個段可以升略不寫,默認跟前一行的
相同.@表示」example1.com」.

一般為internet類,即:IN ,可以省去不寫.

<type>; 分別有SOA,NS,A,MX,CNAME,及反向資料庫里的PTR.
SOA=start of authority 必要的
NS=nameserver 必要的
A=域名和ip地址的映射. 必要的
MX=mail exchange. 可選的
CNAME=域名的一個假名 可選的
PTR=用在反向:ip地址和域名的影射. 必要的

假名不可以放在NS MX 的<rdata>;欄位.

SOA 括弧中的5個數字:
對應為( serial refresh retry expire Minimum )
serial 可以是任何數字,一般:年月日修改數.
refresh 是SOA信息的刷新時間.
Retry是與授權伺服器聯繫的頻率.
Expire slave伺服器保存有關的區域信息,不更新它的時間間隔.
Minimum 區域中記錄的存活時間.

H=hour D=day M=minute W=week

SOA 后的server1.example1.com.表示這個區域授權給哪台機.
root.server1.example1.com.表示管理人.用.代替@

完整域名后一定要加.號,否則會自動為你加」example1.com」.

以上如果你不懂,不用急,以後慢慢想清楚.
-----------------------------------------------------------------------

/var/named/db.192.168.0
$TTL 86400
@ IN SOA server1.example1.com. root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
1.0.168.192.in-addr.arpa IN PTR station1.example1.com.
----------------------------------------------------------------------
解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段.
此文件是反向搜索的資料庫.
主意IP反著寫.
其它的不用解釋.
-----------------------------------------------------------------------
3.檢驗:
# cat >;>; /var/log/messages
******
******
+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host www.example1.com
# host www1.example1.com
# host 192.168.0.254

看看是否可以解析,如:server1.example1.com 對應的IP為192.168.0.254,
192.168.0.254對應域名為server1.example1.com.如果不能解析,說明,配置有問題,
可以到日誌/var/log/messages里查看.具體位置在文件末尾的兩行*******后,和調試
程序一樣,甚至他會告訴你哪個文件,哪行錯了.修改後,重新執行:
# cat >;>; /var/log/messages
******
******
+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host www.example1.com
# host www1.example1.com
# host 192.168.0.254
直到無錯,且能夠正確解析.

三.機器2上配置一個只負責轉發請求域名解析的DNS
機器2上:
1.編輯/etc/named.conf
/etc/named.conf
options {
directory 「/var/named/」;
forwarders { 192.168.0.254; };
};
........
------------------------------------------------------------
解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段.
forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,則交給
192.168.0.254這個DNS,其實在配置masterDNS時,也可以在option里加一個forwarders
具體IP就是你平時上網用的DNS.如果有兩個或多個也可以這樣寫:
{ 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92/24; 192.168.0.254 ;}
.....表示其它的東西,不要動.
---------------------------------------------------------------------
2.檢驗:
# cat >;>; /var/log/messages
******
******
+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host www.example1.com
# host www1.example1.com
# host 192.168.0.254

看看是否可以解析,如:server1.example1.com 對應的IP為192.168.0.254,
192.168.0.254對應域名為server1.example1.com.
這個配置比較簡單,一般不會有筆誤,如果錯誤,排除bug的方法同檢查masterDNS
一樣,看日誌.

三.機器2上配置一個slaveDNS
機器2上:
1.編輯/etc/named.conf
/etc/named.conf
options {
directory 「/var/named/」;
};

zone 「.」 IN {
type hint;
file 「named.ca」;
};

zone 「localhost」 IN {
type master;
file 「localhost.zone」;
};

zone 「0.0.127.in-addr.arpa」 IN {
type master;
file 「named.local」;
};

zone 「example1.com」 IN {
type slave;
masters { 192.168.0.254; };
file 「db.example1-slave」;
};

zone 「0.168.192.in-addr.arpa」 IN {
type slave;
masters { 192.168.0.254; };
file 「db.192.168.0-slave」;
};
------------------------------------------------------------
解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段.
與masterDNS,不同的是:type slave; masters { 192.168.0.254; };
slaveDNS的效果就是定期的向masterDNS複製一份資料庫.
一個網路一般只能有一個masterDNS,多個slaveDNS,slaveDNS用來使DNS的
訪問負載均衡.減輕masterDNS的負擔.
此時,刪掉上面配置forward 的那句:forwarders { 192.168.0.254; };
加著也沒錯,只不過,容易判斷是否是slaveDNS在起作用。
------------------------------------------------------------
2.檢驗:
# cat >;>; /var/log/messages
******
******
+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host www.example1.com
# host www1.example1.com
# host 192.168.0.254

看看是否可以解析,如:# host server1.example1.com 顯示:
www.example1.com has address 192.168.0.254
# host 192.168.0.254 顯示:
254.0.168.192.in-addr.arpa domain name pointer server1.example1.com.
0.168.192.in-addr.arpa.

且查看在/var/named/下是否生成: db.example1-slave , db.192.168.0-slave
兩個文件.
如果,沒有生成這兩個文件,說明配置有文體。具體檢查日誌/var/log/messages
排除錯誤。直到無錯,且自動生成兩個文件,且能正確解析。
另外,一定注意,機器1和機器2的iptables保持關掉。
[實驗總結]
本文只是為了讓你快速入門,且告訴你一個簡單的手動配置一個DNS的方法,具體的
原理講的很少,如果想了解更多,請參考其他專業的文檔。如果你即使在不熟的情況下,
做完此實驗,且做的時候多想過一些問題,絕對有助於看其他文檔。
[題外話]
至於讓機器2作為一般的客戶端,採用機器1的DNS,需要修改/etc/resolv.conf文件,
不屬於DNS配置的範圍。
至於如何讓機器1連到Internet,更不是本文所討論的範圍。
《解決方案》

用實驗快速掌握DNS配置

不錯

收藏..........
《解決方案》

用實驗快速掌握DNS配置

還有更好的,就是沒人來頂,,,呵榀,,,,,
http://bbs.chinaunix.net/forum/viewtopic.php?t=217167&highlight=jeffreyli

:em02:  :em02:
《解決方案》

用實驗快速掌握DNS配置

《解決方案》

TTTTTTT
《解決方案》

樓主,我想問一下這個反解文件:

/var/named/db.192.168.0
$TTL 86400
@ IN SOA server1.example1.com. root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
1.0.168.192.in-addr.arpa IN PTR station1.example1.com.

就是
254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
1.0.168.192.in-addr.arpa IN PTR station1.example1.com.

in-addr.arpa後面是不是有個點.
只前我也是照網上說的配置一下,就是不能反解,後來在google上搜了一下,發現在in-addr.arpa后加點反解就可以.
《解決方案》

頂!頂!頂!頂!頂!
《解決方案》

:) 8錯 呀LZ:em11:
《解決方案》

《解決方案》

多謝,真是一句話點醒我夢中人

[火星人 ] 用實驗快速掌握DNS配置已經有711次圍觀

http://coctec.com/docs/service/show-post-35924.html