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