DNS 服務(wù)器配置說明
DNS 服務(wù)器配置說明公司DNS 地址為:10.10.3.254帳號:root 密碼:1111111.概述1.1什么是DNSDNS 全名叫Domain Name Server ,中文俗稱“域名服務(wù)器”
DNS 服務(wù)器配置說明
公司DNS 地址為:10.10.3.254
帳號:root 密碼:111111
1.
概述
1.1
什么是DNS
DNS 全名叫Domain Name Server ,中文俗稱“域名服務(wù)器”,在說明DNS Server 之前,可能要先說明什么叫Domain Name(域名) 。通常,在網(wǎng)上辨別一臺電腦的方法是利用IP 地址,但是IP 用數(shù)字表示,沒有特殊的意義,不便于記憶,因此,我們一般會為網(wǎng)上的電腦取一個有某種含義又容易記憶的名字,這個名字我們就叫它
“Domain Name"(域名)。例如:對著名的YAHOO !搜索引擎來說,一般使用者在瀏覽這個網(wǎng)站時,都會輸入http://www.yahoo.com,很少有人會記住這臺Server 的IP 是多少?所以http://www.yahoo.com就是YAHOO! 站點的Domain Name 。這正如我們在跟朋友打招呼時,一定是叫他的名字,幾乎沒有人是叫對方身份證號碼來
打招呼的,但本質(zhì)上在Internet 上真實辨認(rèn)機器的還是IP ,所以當(dāng)使用者在瀏覽器中輸入Domain Name 后,瀏覽器必須先到一臺有Domain Name 和IP 對應(yīng)信息的主機去查詢這臺電腦的IP ,而這臺被查詢的主機,我們稱它為Domain Name Server (域名服務(wù)器),簡稱DNS ,例如:當(dāng)你輸入http://www.yahoo.com時,瀏覽器會將http://www.yahoo.com這個名字傳送到距離它最近的DNS Server 上去做辨認(rèn),如果DNS Server 查詢出域名對應(yīng)的IP ,就會將這個IP 值返回給這臺主機,但如果沒有查詢到,就會出現(xiàn)類似DNS NOT FOUND等告警信息。所以一旦你的電腦的DNS Server 設(shè)置不正確,就好比是路標(biāo)錯了,電腦也就不知道該把域名信息送到哪里去解析了。
1.2DNS
的結(jié)構(gòu)
DNS 是一個分層級的分散式名稱對應(yīng)系統(tǒng)有點像電腦的目錄樹結(jié)構(gòu)在最頂端的是一個“. ” (root ) 然後其下分為好幾個基本類別名稱如com 、org 、edu 等再下面是組織名稱如cisco 、intel 等繼而是主機名稱如www 、mail 、ftp 等。因為當(dāng)初internet 是從美國發(fā)起的所以當(dāng)時并沒有國域名稱但隨著后來internet 的蓬勃發(fā)展DNS 也加進了諸如cn 、jp 、au 等國域名稱。所以一個完整的dns 名稱就好像是這樣的www.xyz.com.cn 而整個名稱對應(yīng)的就是一個IP 地址了。在開始的時候root 下面只有六個組織類別
類別名稱代表意思
edu 教育學(xué)術(shù)單位
org 組織機構(gòu)
,net 網(wǎng)路通訊單位
com 公司企業(yè)
gov 政府機關(guān)
mil 軍事單位
不過自從組織類別名稱開放以後各種各樣五花八門的名稱也相繼現(xiàn)出來了但無論如何取名的規(guī)則最好量適合網(wǎng)站性質(zhì)。除了原來的類別資料由美國的NIC(Network Information Center )管理之外其它在國域以下的類別分別由該國的NIC 管理。
理解DNS
的工作方式
DNS 查詢的工作原理:當(dāng)DNS 客戶端需要查詢程序中使用的名稱時,它會查詢DNS 服務(wù)器來解析該名稱??蛻舳税l(fā)送的每條查詢消息都包括三條信息,指定服務(wù)器回答的問題: * 指定的DNS 域名,規(guī)定為完全合格的域名(FQDN)
* 指定的查詢類型,可根據(jù)類型指定資源記錄,或者指定查詢操作的專用類型。 * DNS 域名的指定類別。
例如,指定的名稱可為計算機的FQDN ,如Debian.linuxsi r .org ,并且指定的查詢類型用于通過該名稱搜索地址(A) 資源記錄。將DNS 查詢看作客戶端向服務(wù)器詢問由兩部分組成的問題,如“您是否擁有名為‘Debian.linuxsi r .org’的計算機的A 資源記錄?”當(dāng)客戶端收到來自服務(wù)器的應(yīng)答時,它將讀取并解釋應(yīng)答的A 資源記錄,獲取根據(jù)名稱詢問的計算機的IP 地址。
DNS 查詢以各種不同的方式進行解析。有時,客戶端也可使用從先前的查詢獲得的緩存信息在本地應(yīng)答查詢。DNS 服務(wù)器可使用其自身的資源記錄信息緩存來應(yīng)答查詢。DNS 服務(wù)器也可代表請求客戶端查詢或聯(lián)系其他DNS 服務(wù)器,以便完全解析該名稱,并隨后將應(yīng)答返回至客戶端。這個過程稱為遞歸(Recursion )。
另外,客戶端自己也可嘗試聯(lián)系其他的DNS 服務(wù)器來解析名稱。當(dāng)客戶端執(zhí)行此
操作時,它會根據(jù)來自服務(wù)器的參考答案,使用其他的獨立查詢。這個過程稱為迭代??傊珼NS 查詢進程分兩部分進行:
*
名稱查詢從客戶端計算機開始,并傳輸至解析程序即DNS 客戶端服務(wù)程序進行解析。
*
不能在本地解析查詢時,可根據(jù)需要查詢DNS 服務(wù)器來解析名稱。
DHCP 是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP 協(xié)議工作,主要有兩個用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP 地址給用戶, 給內(nèi)部網(wǎng)絡(luò)管理員作為對所有計算機作中央管理的手段。本文描述如何安裝配置DNS ,最后介紹DNS 服務(wù)移植到開發(fā)板上。本文假設(shè)讀者有一定的網(wǎng)絡(luò)基礎(chǔ)知識。
2.
安裝Bind
本文檔下述操作是基于Linux 操作系統(tǒng)版本: fedora 12
安裝Bind 可以采用在線安裝方式, 輸入命令如下#yum -y install bind*
,完成安裝后,鍵入如下命令,看是否安裝完全:
#rpm –qa | grep 'bind'
bind-utils-9.6.2-3.P1.fc12.i686 bind-dyndb-ldap-0.1.0-0.5.a1.fc12.i686 PackageKit-device-rebind-0.5.4-0.1.20091029git.fc12.i686 bind-devel-9.6.2-3.P1.fc12.i686 bind-libs-9.6.2-3.P1.fc12.i686 bindfs-1.8.3-3.fc12.i686 samba-winbind-clients-3.4.7-58.fc12.i686 bind-9.6.2-3.P1.fc12.i686 ypbind-1.20.4-20.fc12.i686 bind-to-tinydns-0.4.3-6.fc12.i686 bind-chroot-9.6.2-3.P1.fc12.i686 rpcbind-0.2.0-4.fc12.i686 bind-sdb-9.6.2-3.P1.fc12.i686
(注:對于不同版本系統(tǒng),可能需要的包有所區(qū)別,但大多數(shù)包是相同的,這里僅供參考) 3.
配置
3.1
基本配置(問題:我的配置文件沒有)
1 編輯named.conf 文件,紅色為改動部分,//后為注釋,請不要將注釋寫入文件!
# vi /var/named/chroot /etc/named.conf(如果在此目錄未發(fā)現(xiàn),則用find /name named.conf 命令來查找)
options { listen-on port
53 { any; }; //127.0.0.1 改為any,53 為監(jiān)聽端口號
listen-on-v6 port 53 { ::1;
}; directory “/var/named” ; dump-file
“/var/named/date/cache-dump.db” ; statistics -file
“/var/named/data/named_stats .txt ” ; memstatistics -file
“/var/named/data/named_mem_stats .txt ” ; query-source
prot
53; query-source-v6 port 53; allow-query
{ any; };
//localhost改為any
allow-query-cache
{ any; }; forwarders
{ 202.103.24.68; };//此行默認(rèn)沒有,如果內(nèi)網(wǎng)使用此DNS 服務(wù)器可//以設(shè)置dns 轉(zhuǎn)發(fā),這里一定需要是一個有效的DNS 服務(wù)器地址forward only;
//此行是與上一行搭配使用的,默認(rèn)配置沒有此項}; logging { channel default _debug { file “data/named.run” ; severity dynamic; }; }; viewlocalhost _resolver { match-clients { any; };
//localhost改為any
match-destinations { any; }; //localhost改為any
recursion yes; include “/etc/named.rfc1912.zones” ; };
2 配置named.rfc1912.zones 文件
在此目錄下還有一個文件named.rfc1912.zones 要配置,它是DNS 服務(wù)器的區(qū)域配置文件: #vi
named.rfc1912.zones zone “. ” IN { type hint ; //type 表示類型,hint 表示為互聯(lián)網(wǎng)中根域名服務(wù)器file “name.ca ” ;//file 表示該域定義文件的文件名}; //每一個” }”
或每個配置內(nèi)容語句后面千萬不要忘記”; ”
zone “l(fā)ocaldomain”
,IN { type master ; //master 表示定義的是主域名服務(wù)器file “l(fā)ocaldomain.zone ” ; allow-update
{ none; }; }; zone “l(fā)ocalhost ”
IN { type master ; file “l(fā)ocalhost .zone” ; allow-update
{ none”
}; }; zone "0.0.127.in-addr.arpa" IN { type master ; file "named.local"; allow-update
{ none; }; };
zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"
IN {
type master ;
file "named.ip6.local";
allow-update
{ none; }; };
zone "255.in-addr.arpa" IN { type master ; file "named.broadcast "; allow-update
{ none; }; }; zone "0.in-addr.arpa" IN { type master ; file "named.zero"; allow-update
{ none; }; };
// 下面的hello-world-wh.com 是新添加的實驗用的區(qū)域,正向解析區(qū)域
zone "hello-world-wh.com" IN { type master ;
file "hello-world-wh.
.zone"; // 文件名是可以自定義命名的allow-update
{ none; };
};
// 0.1.10
是我們的反向解析區(qū)域zone "0.1.10.in-addr.arpa" IN {// 142.204.122 是IP 前三項的倒置type master ;
};
// 注:在最后添加自己的DNS 區(qū)域,如果有多個,則可做類似添加
3 生成正向、反向區(qū)域配置文件
在上述的named.rfc1912.zones 文件中,我們在文件尾部添加了自己的正向解析區(qū)域和反向解析區(qū)域配置文件的配置項(“www.hello-worldwh.net.zone ”與” 0.1.10.in-addr.local ” ) ,但這兩個文件還沒有生成,是需要我們手工添加的,它們可由安裝bind 時自動生成的兩個區(qū)域配置文件直接拷貝得到,然后再做修改。
#cd /var/named/(如果在此目錄未發(fā)現(xiàn),則用find / -name data 命令來查找)
#lschroot
dynamic
named.empty
named.loopback data named.ca named.localhost slaves
//data 目錄中用來存放named_mem_stats .txt 文件,該文件用來記錄DSN 服務(wù)器的內(nèi)// 存狀態(tài)信息。//slaves 目錄用來存放從域名服務(wù)器(slave)的區(qū)域配置文件
#cp
–p localdomain.zone
,hello-world-wh.com.zone (此時localdomain.zone 也可以換成named.localhsot , 打開文件named.rfc1912.zones 后可以看到的正向解析指令[由url 解析到ip 地址])
#cp–p named.local 0.1.10.in-addr.local (此時named.local 也可以換成named.lookback, 打開文件named.rfc1912.zones 后可以看到的反向解析指令[由ip 地址解析到url])
// 注意:兩個配置文件名一定要與named.rfc1912.zones 中定義的名稱相同。
#vi
0.1.10.in-addr.local $TTL 86400
@
IN
SOA
localhost .root .localhost .(
2010012700 ; Serial
28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400
); Minimum
IN
NS
hello-world-wh.com. // 注意helloworld-wh.com. 最后的” . ”不要忘記.IN 的位置應(yīng)該注意, 應(yīng)按照格式書
寫,否則會有意想不到錯誤:
23 IN
PTR
mail .hello-world-wh.com. // 23 是
服務(wù)器IP 的最后一項,下同
IN
PTR
ftp.hello-world-wh.com.
23 IN PTR www.hello-world-wh.com. // 注意:23 是指DNS 服務(wù)器IP :10.1.0.23 的最后地址區(qū)域84
上述配置第一行是TTL 設(shè)定,生存時間記錄字段,它以秒未單位定義該資源記錄中的信息存放在告訴緩存中的時間長度。接著是SOA 的配置,SOA 是Start of Authority
的意思。代表master (主DNS 服務(wù)器)/slave (從DNS 服務(wù)器)相關(guān)的認(rèn)證、授權(quán)資料。 不論你的DNS 系統(tǒng)有沒有設(shè)定master /slave
的架構(gòu),都需要含有這個設(shè)定才好。SOA 后面共帶有三個參數(shù),所以該行為:
[zone] IN SOA [主機名][管理員email ] ([ 五組更新時間參數(shù)])
每個設(shè)定項目含義: 主機名: 就是master DNS 的主機名稱,通常填寫本身主機名即可。還是要注意那個小數(shù)點“. ”的存在與否!非常重要!管理員email : 本來應(yīng)該是"root @localhost ." 的,不過因為@ 已經(jīng)被作為特殊代號(zone),所以就用小數(shù)點來取代,因此email 就成為"root .localhost ."
! (五組數(shù)字): 這五個數(shù)字分別代表serial , refresh, ret ry, expire, ttl。Serial
,: 只是一個序號,但這個序號可被用來作為
slave 與master
更新的依據(jù)。舉例來說,master
序號為100 但slave 序號為90 時,那么這個zone
file 的資料就會被傳送到slave
來更新了。由于這個序號代表新舊資料,通常我們
建議你可以利用日期來設(shè)定!舉例來說,上面的資料是在2006/10/20 所寫的第一次,所以可以用2006102001 作為
序號代表!Refresh : 除了根據(jù)Serial
來判斷新舊之外,我們可以利用這個refresh(更新) 命令slave 多久進行一次主動更新;Retry : 如果到了Refresh 的時間,但是slave
卻無法連接到master
時,那么在多久之后,slave 會再次的主動嘗試與主機連線;
Expire
: 如果slave
一直無法與master 連接上,那么經(jīng)過多久的時間之后,則命令
slave
不要再連接
master
了!也就是說,此時我們假設(shè)
master DNS
可能遇到重大問題而無法上線,則等待系統(tǒng)管理員處理完畢后,
再重新來到slave DNS 重新啟動bind
吧!
Minimun
: 類似TTL ,當(dāng)沒有指定ttl 資源記錄時就會用這個值作為默認(rèn)的ttl 值。另外,這幾個數(shù)字的大小是有限制的: Serial <= 2^32 = 4294967296
Refresh >= Retry *2 Refresh Retry < Expire Expire>= Retry * 10 Expire >= 7Days
請注意:SOA 記錄中這對
“() ”符號之第一個“(”括號一定要和SOA 寫在同一行,而不能用
Enter
斷行到下一行去, 而且其左邊最好有一個空格鍵或tab 建。而最后一個
“) ”括號也不能寫在注解符號“;”的右邊。置DNS 的RR
記錄檔,其格式要求非常嚴(yán)格,我們絲毫不能掉以輕心。比方說:如果句子不是以空格鍵、Tab 鍵、或注解符號(;)開頭,也不在SOA 的“() ”之內(nèi),則表示要定義一個“新記錄項 (Entry) ”;如果句子是以空格鍵或tab
鍵開始的話,其設(shè)置被視為上一個“記錄項”的內(nèi)容。
接下來編輯正向區(qū)域配置文件www.myhello-world.net : #vi
hello-world-wh.com.zone $TTL 86400
@
IN
minimum
IN
,SOA
hello-world-wh.com.
root .h ello-world-wh.com.
42
; refresh
15M
; Serial
3
retry
1W
expire
1D )
NS
hello-world-wh.com. 位置應(yīng)該注意,應(yīng)按照格式書寫,否則會有意想不到錯誤://IN 的 IN MX 0 mail .hello-world-wh.com.//IN 的位置應(yīng)該注意,應(yīng)按照格式書寫,否則會有意想不到錯誤:
www
IN
A
A
A
10.1.0.23
IN
10.1.0.23
ftp
IN
10.1.0.23
這里的配置項中:
NS 表明負(fù)責(zé)hello-world-wh.com 域的Name Server 是hello-world-wh.com 這臺主機 MX 記錄標(biāo)明發(fā)往hello-world-wh.com 域的郵件由mail .hello-world
wh.com 服務(wù)器接收MX 后面的0 表示優(yōu)先級,數(shù)字越小,優(yōu)先級越大。A 記錄標(biāo)明了IP 地址和域名之間的對應(yīng)關(guān)系
4 修改/etc/resolv.conf文件,也就是添加主DNS 服務(wù)器#vi
/etc/resolv.confnameserver 10.1.0.23
,注意:在添加主DNS 服務(wù)器IP 后,要記得將以前的nameserver 配置注釋掉,注釋是采用符號“#”進行注釋。
5 測試正向區(qū)域文件和反向解析文件
(1)測試正向區(qū)域文件(文件沒有語法錯誤則顯示OK ,有錯誤則顯示錯誤內(nèi)容) #named-checkzone hello-world-wh.net /var/named/hello-world-wh.com.zone
(2)測試反向解析文件(如果沒有語法錯誤則顯示OK ,有錯誤則顯示錯誤內(nèi)容) #named-checkzone
hello-world-wh.com /var/named/0.1.10.in-addr.local
6 啟動bind 服務(wù)#service
named start
如果在后面顯示OK ,表示正常啟動了,否則會顯示錯誤信息。
7 設(shè)置Linux 防火墻
前面在配置文件named.conf 中,我們設(shè)置的端口號為53 ,有時為了防止防火墻阻止訪問53 端口,因此我們有必要將防火墻關(guān)閉或者是將53 端口設(shè)置為防火墻的信任端口。具體設(shè)置步驟如下:運行命令:#set up
這時會彈出一個對話框,由于是防火墻設(shè)置,因此選擇“firewall Configuration”,然后按“Tab ”鍵切換到“Run Tool” -->回車-->“Security Level ”選項要在” Enable ”前面按一下” Tab ”鍵-->“SelLinux ”選項要選擇” Disabled ” -->按一下” Tab ”鍵-->選中” Customize ” ->彈出新對話框-->在” Other Port ”框欄目中輸入” 53:TCP 53:UDP” ->“OK ” -->返回上一個對話框-->“OK ” -->對話框自動關(guān)閉,防火墻配置完成。
3.3
測試DNS
服務(wù)器
1 測試DNS 服務(wù)器是否配置成功有以下幾種方式:
(1)鍵入host 命令如下:#host
www.hello-world-wh.com
如果域名成功解析,則會顯示:www.hello-world-wh.com has address 10.1.0.23
如果域名輸入錯誤,則會顯示:Host [錯誤域名的名稱] not
found:
如果域名服務(wù)(service named)沒有開啟,則會顯示:;;connection timed out; no servers could be
reached
(2)第二種測試的方式是使用測試命令nslookup, 這個命令在Windows 與Linux 環(huán)境下是通用的,屢試不爽。
#nslookup>www.hello-world-wh.com Server :10.1.0.23 Address :10.1.0.23#53
Name: www.hello-world-wh.com Address : 10.1.0.23
(3)dig 命令測試#dig
www.hello-world-wh.com
2 實驗檢測
在另外一臺機器中,設(shè)置與DNS 服務(wù)器(10.1.0.23)處于同一網(wǎng)段的IP 地址,且要保證兩者之間能夠ping 通,如設(shè)置IP 為:10.1.0.141 ;子網(wǎng)掩碼為:
255.255.255.0 ;網(wǎng)關(guān):10.1.0.1;
然后最重要的就是要保證首選DNS :10.1.0.23
注意事項:
,1. 在進行的URL 命名時應(yīng)該盡量避免名字中存在“_”(下劃線),在bind9 中會出
現(xiàn)異常。
2. 在編輯配置文件時候應(yīng)該盡量按照模板的格式編輯,在空格和冒號的使用應(yīng)該盡量注意!
3. 在安裝bind 時,要查看是否安裝了chroot ,如未安裝應(yīng)該把解析文件存在/var/named 如果安裝了,把其存在/var/named/chroot/var/named 中!
4. 在配置named.conf 時候,可以直接把named.rfc1912.zones 文件的配置項添加到主配置文件中,無需在named.rfc1912.zones 中添加,因為在named.conf 中已經(jīng)把named.rfc1912.zones 文件include 。
版權(quán)所有. 2010 hello-world 3 內(nèi)部保密