構建DNS服務器簡易指南
構建DNS 服務器簡易指南新聞瀏覽數(shù): 新聞來源: 49在用TCP/IP協(xié)議族架設的網(wǎng)絡中,每一個節(jié)點都有一個唯一的IP 地址,用來 作為它們唯一的標志。然而,如果讓使用者來記住這些毫無記憶規(guī)律的I
構建DNS 服務器簡易指南
新聞瀏覽數(shù): 新聞來源
: 49
在用TCP/IP協(xié)議族架設的網(wǎng)絡中,每一個節(jié)點都有一個唯一的IP 地址,用來 作為它們唯一的標志。然而,如果讓使用者來記住這些毫無記憶規(guī)律的IP 地址將是不可想象的。人們就需要一種有記憶規(guī)律的字符串來作為唯一標記節(jié)點的名字。 然而,雖然符號名對于人來說是極為方便的,但是在計算機上實現(xiàn)卻不是那么方便的。為了解決這個需求,應運而生了一個 域名 服務系統(tǒng) DNS ,它運行在TCP 協(xié)議之上,負責將字符名-- 域名 轉換成實際相對應的IP 地址。這個過程就是 域名 解析,負責 域名 解析的機器就叫 域名 服務器 。
1、 域名 解析的方法
1.1 最早的 域名 解析方法
最簡單的主機名解析方法是,在一個文件中記錄所有主機名及與其對應的IP 地址,并保證該文件中主機名的唯一性,通過檢索文件中的便可以完成主機名的解析。采用這種最簡單的解決方法有其歷史原因:
在整個70年代,APRANET 只是一個小規(guī)模的,由類似的數(shù)百臺主機組成的團體。于是為了解決主機名解析的問題,將連接到ARPANET 上每臺主機的名字與對應的地址都保存在HOSTS.TXT 文件中。這樣每增加一臺機器,就必須修改HOSTS.TXT 文件一次。隨著網(wǎng)絡的不斷發(fā)展,網(wǎng)絡中的主機數(shù)量爆炸性地增加,這種 域名 解析的方法已經(jīng)無法適應新的解析需要。
1.2 分布式的 域名 服務器
這種方法,我們已經(jīng)在基礎篇的第六章中有了詳細的敘述,在此就不再重復了。在這種分布式的 域名 服務器 體系中,每一臺 域名 服務器 ( DNS )負責解析屬于自己的這一部分主機的 域名 。
一般說來,如果你所處在公司或組織所擁有的主機并不多,一般是將 域名 的解析工作交給自己的ISP 的 域名 服務器 來完成。而如果你所在組織擁有的主機比較多,我們就可以組建自己的 域名 服務器 負責解析你所在組織的主機。
2、 域名 服務器 建立實例
2.1 實例環(huán)境
假設我們需要建立一臺應用于以下情況的一個企業(yè)主 域名 服務器 。
1. 擁有一個C 類網(wǎng)段地址,為202.101.55.0
2. 企業(yè) 域名 注冊為company.com 。
3. 域名 服務器 的IP 定為202.101.55.55,主機名為dns.company.com 。它同時充當Proxy.
4. 企業(yè)網(wǎng)通過 路由器 與Internet 連接。
5. 要解析的 服務器 有:
www.company.com (202.101.55.1) Web 服務器
mail.company.com (202.101.55.2) E-Mail 服務器
2.2 安裝前的準備工作
首先要保證在作為系中統(tǒng)有/etc/resolv.conf和/etc/hosts.conf這兩個文件。/etc/resolv.conf文件中內(nèi)容如下所示:
domain compay.com
nameserver 202.101.55.55
其中第一行指出對于任何希望連到它上面的主機應該搜尋的域。而第二行指出了在哪個地址可以找到需要的 域名 服務大。/etc/hosts.conf的內(nèi)容如下所示: order hosts,bind
multi on
這里的設置告訴主機名稱先在/etc/hosts文件中搜索,然后再查詢 域名 服務器 。
2.3 定義文件/etc/named.boot
要使LINUX 系統(tǒng)完成 域名 服務器 的功能,則需要運行一個named 的服務進程。這個服務進程可以在安裝LINUX 時選中。
named 啟動時需要讀取一個初始化文件--/etc/named.boot,這個文件是named
,的基本配置文件。它并不包含任何 DNS 數(shù)據(jù),針對前面的假定環(huán)境,我們要在這個文件中寫入:
diretory /etc/named
primary company.com db.company
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 55.101.202.IN-ADDR.ARPA db.202.101.55
cache . db.cache
下面我們逐行講解這個文件中的內(nèi)容:
1) 在第一行中我們指定named 從/etc/named目錄下讀取 DNS 數(shù)據(jù)文件。這個目錄可以自行指定并創(chuàng)建,指定后將所有的 DNS 數(shù)據(jù)文件均存放在這個目錄下;
2) 第二行指定named 作為company.com 的主 域名 服務器 ,db.company 文件中包含了所有*.my.com形式的 域名 的解析數(shù)據(jù)。
3) 第三行則指定named 作為127.0.0網(wǎng)段(本地loopback )地址的轉換主 服務器 。其中db.127.0.0文件中包含了所有127.0.0.*形式的地址到 域名 的轉換數(shù)據(jù)。
4) 第四行指定named 作為202.101.55網(wǎng)段地址轉換主 服務器 ,
db.202.101.55文件中包含了所有以202.101.55.*形式的地址到 域名 的轉換數(shù)據(jù)。
5) 最后一行指定named 從db.cache 文件中獲得Internet 的頂層" 根" 服務器 地址。要說明的是,這些數(shù)據(jù)文件的名稱均是自行決定的
2.4 建立正向 域名 轉換數(shù)據(jù)文件db.company
根據(jù)/etc/named.boot文件中的定義,我們在/etc/named目錄下建立文件
db.company ,并且在其中寫入所有在company.com 域內(nèi)的主機節(jié)點。根據(jù)前面假定的環(huán)境,可以寫入:
@ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;文件版本號
28800 ;刷新時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL 生存時間(秒)
IN NS dns.company.com
,www IN A 202.101.55.1
email IN A 202.101.55.2
proxy IN CNAME
下面我們就逐句地理解這里的配置。
1. SOA是主 服務器 設定文件中一定要設定的命令,我們通常將它放在文件的第一行。
1) 最前面的符號"@"代表目前所管轄的域。
2) 接著的"IN" 代表地址類別,這里就是固定使用"IN" 的。
3) 接下來就是命令SOA 。
4) 接下來填入 域名 服務器 ,記住由于 DNS 數(shù)據(jù)文件的特殊格式規(guī)定,在最后一定要加上"·",在這個例子中,我們填入 域名 服務器 :"dns.company.com."
5) 接下來是 域名 服務器 管理員的E-MAIL 地址,但要注意的是,E-Mail 地址中的分隔符"@"在這里用"·"來代替,在最后也要加上" 。" ,在這里,我們相應寫入:"root.dns.company.com."
6) 接下來在括號內(nèi)填上各種選項:
文件版本號:當你修改這個文件的內(nèi)容時,也要修改這個版本序列號。以此來區(qū)分是否有更新。
更新時間:指定二級 服務器 向主 服務器 拷貝數(shù)據(jù)的更新時間周期。 重試時間:指定二級 服務器 在更新出現(xiàn)通信故障時的重試時間。
終止時間:指定二級 服務器 重新執(zhí)行更新動作后仍然無法完成更新任務而終止更新的時間。
生存時間:指定當 域名 服務器 詢問某個 域名 和其IP 地址后,在 域名 服務器 上放置的時間。
注:二級 服務器 所設定的 域名 服務器 是主 服務器 的備份主機。
2. 在第二行中,我們用NS 命令指定這個域的 域名 服務器 。在這里我們指出這個域的 域名 服務器 是"dns.company.com" 。
,3. 接下來的兩行我們使用A 命令來指定 域名 與IP 地址的對應關系。我們將Web 服務器 的域www.company.com 與其IP 地址202.101.55.1對應起來;將E-Mail 服務器 的 域名 mail.company.com與其IP 地址202.101.55.2對應起來。
4. 最后一行,我們使用了CNAME 命令為dns.company.com 指定了另一個 域名 以供使用:proxy.company.com 。
2.5 建立反向 域名 轉換數(shù)據(jù)文件db.127.0.0和db.202.101.55
反向 域名 轉換數(shù)據(jù)文件用來提供IP 地址查詢相應的 DNS 主機名,每個網(wǎng)段分別有一個數(shù)據(jù)文件。
1. 網(wǎng)段127.0.0通常只有一個地址,那就是127.0.0.1 loopback地址。所以我們在db.127.0.0中寫入的內(nèi)容是:
@ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;文件版本號
28800 ;刷新時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL 生存時間(秒)
IN NS dns.company.com
1 IN PTR localhost
前面兩名相信讀者已經(jīng)不會陌生,最后一句我們使用PTR 命令讓配置文件中的主機可以使用IP 地址來知道所對應的 域名 。
最前面的1代表127.0.0.1,對應的 域名 就是localhost 。
2.網(wǎng)段202.101.55就可能會存在更多的記錄,前面假定環(huán)境下的設置應是: @ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;文件版本號
28800 ;刷新時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL 生存時間(秒)
IN NS dns.company.com
1 IN PTR www
,2 IN PTR email
55 IN PTR dns
55 IN PTR proxy
2.6 獲得db.cache 文件
在LINUX 系統(tǒng)中通常在提供了一個named.ca 的文件,該文件中Internet 的頂層 域名 服務器 ,但是這個文件通常會發(fā)生變化,所以建議最好從Internet 上下載最新的版本。該文件可以通過匿名FTP 從ftp.rs.internic.net/domain下載,文件名是named.boot 。將它拷貝一份為db.cache 就可以了。
3、測試 域名 服務器
3.1 使用nslookup 測試
nslookup 命令的功能是查詢 域名 服務器 中的數(shù)據(jù)資料。下例就是使用它來測試 域名 服務器 是否架設成功,其中斜體字代表要輸入的內(nèi)容。
# nslookup
Default server:dns.company.com
Address:202.101.55.55 ;能出現(xiàn)這些信息代表成功
> www
server:dns.company.com
Address:202.101.55.1
3.2 使用ping 測試
還有一種更簡單的測試方法,那就是用ping 命令,如果成功將顯示: # ping www.company.com
Ping www.company.com(202.101.55.1);56 data bytes
64 bytes from 202.101.55.1:icmp_seq=0 ttl=255 time=1.3ms 64 bytes from 202.101.55.1:icmp_seq=1 ttl=255 time=0.6ms 64 bytes from 202.101.55.1:icmp_seq=2 ttl=255 time=0.6ms ……
8.4 小技巧
,安裝好 域名 服務器 后,在內(nèi)部使用 域名 進行遠程連接時,會發(fā)現(xiàn)速度非常慢。其實只要/etc/hosts中加上所有內(nèi)部的機器的 域名 就可以了。