第六招 linux域名服務(wù)
Linux 域名服務(wù)作者:田逸(sery@163.com) 2006年第3期域名服務(wù)是互連網(wǎng)上一個(gè)十分重要的服務(wù),也是internet 能夠迅速普及的一個(gè)重要原因。域名解析服務(wù)解決了用戶記憶IP 地
Linux 域名服務(wù)
作者:田逸(sery@163.com) <網(wǎng)管員世界> 2006年第3期
域名服務(wù)是互連網(wǎng)上一個(gè)十分重要的服務(wù),也是internet 能夠迅速普及的一個(gè)重要原因。域名解析服務(wù)解決了用戶記憶IP 地址的麻煩,因?yàn)橛涀∮幸饬x的主機(jī)名比記住IP 地址要容易得多,例如主機(jī)名www.ibm.com 與IP 地址 129.42.17.99,我相信www.ibm.com 更加容易被記住。
域名服務(wù)的功能是一種將主機(jī)名轉(zhuǎn)換成IP 地址的一種機(jī)制,因?yàn)橛?jì)算機(jī)之間的通訊是不能直接識(shí)別主機(jī)名,只能識(shí)別IP 地址。有多種把主機(jī)名轉(zhuǎn)換成IP 地址的方法,但是在Internet 上,是用域名服務(wù)器(domain name server)來(lái)處理成千上萬(wàn)個(gè)主機(jī)和IP 地址的轉(zhuǎn)換。
申請(qǐng)域名空間
中國(guó)的域名管理機(jī)構(gòu)是中國(guó)國(guó)家互連網(wǎng)中心(www.cnnic.net.cn ), 從2002年12月16日起,國(guó)家互連網(wǎng)中心不再直接面對(duì)最終用戶提供CN 域名注冊(cè)相關(guān)服務(wù),域名注冊(cè)服務(wù)將轉(zhuǎn)由CNNIC 認(rèn)證的域名注冊(cè)服務(wù)機(jī)構(gòu)提供。在注冊(cè)域名時(shí),最好選擇本地的域名注冊(cè)服務(wù)機(jī)構(gòu)。
注冊(cè)域名成功后,需要注冊(cè)商為自己的域名空間解析一個(gè)或多個(gè)主機(jī),大部分的域名注冊(cè)服務(wù)商會(huì)分配給用戶帳號(hào),允許用戶在自己的域名空間做解析操作。為了自己建立域名服務(wù)器,最好申請(qǐng)一段全球唯一單播IP 地址。
安裝域名服務(wù)器BIND
大部分linux 發(fā)行版都附帶Bind 安裝包,先運(yùn)行命令 # rpm –qa | grep bind ,看是否安裝域名服務(wù)軟件bind. 如果沒(méi)有安裝的話,可以用linux 的安裝光盤,找到rpm 安裝包后手動(dòng)安裝。正確安裝成功后,會(huì)生成一些相應(yīng)的配置文件、守護(hù)進(jìn)程及啟動(dòng)腳本;如:在目錄/etc下有named.conf, rndc.key, rndc.conf, /etc/rc.d目錄下的啟動(dòng)腳本named, 以及 /var 下的區(qū)域文件named.ca 、named.local 文件。也可以下載bind 的源碼包來(lái)安裝。
配置域名服務(wù)器
配置域名服務(wù)器似乎比配置其他的服務(wù)要麻煩一些,因?yàn)槌诵薷呐渲梦募猓€需要自己動(dòng)手編寫在配置文件里定義的區(qū)域文件,而其他一些服務(wù)程序僅僅是更改一下配置文件。在配置文件中定義的區(qū)域越多,需要手動(dòng)創(chuàng)建的區(qū)域文件也越多。
在未做配置之前,讓我們先熟悉一下配置文件named.conf 的默認(rèn)狀態(tài)值。
options {
directory “/var/named”; //定義區(qū)域文件所在的目錄
};
zone “. ” IN { //頂級(jí)域名服務(wù)器區(qū)域文件名稱
type hint;
file “named.ca ”;
};
zone “l(fā)ocalhost ” IN { //本機(jī)地址正向解析
type master; //DNS 服務(wù)器的類型分主與輔助兩種
file “l(fā)ocalhost.zone ”;
allow-update {none};
,};
zone “0.0.127.in-addr.arpa IN { //本機(jī)地址反向解析
type master;
allow-update{none};
file “named.local ”;
};
在實(shí)際的配置過(guò)程中,只需在named.conf 文件里,照“zone{};”代碼塊的格式添加相關(guān)的行,是不是很容易呢?當(dāng)然,根據(jù)具體的需要,還可以在named.conf 文件中加入其他代碼快,比如轉(zhuǎn)發(fā)器 “forwarder {};”. 現(xiàn)在,假設(shè)申請(qǐng)了一個(gè)域名空間sery.com, 一段可用的全球唯一單播IP 地址,并且在域名注冊(cè)服務(wù)商的服務(wù)器上解析出一臺(tái)主機(jī)ns.sery.com, 其IP 地址為202.108.99.222(假設(shè)的,勿對(duì)號(hào)入座) ,接下來(lái)就可以著手來(lái)配置了。
先把安裝了域名解析服務(wù)的機(jī)器IP 設(shè)置成202.108.99.222, 然后修改配置文件/etc/named.conf,內(nèi)容如下:
//默認(rèn)的代碼塊如上,此處省略以減少篇幅
zone “sery.com ” IN { //正向解析
type master;
file “named.sery.com ”;
};
zone “99.108.202-addr.arpa ” IN { //反向解析
type master;
file “ip.sery.com ”;
};
include “/etc/rndc.key”;
保存文件然后退出。然后參照默認(rèn)的區(qū)域文件/var/named/localhost.zone的樣式手動(dòng)創(chuàng)建在/etc/named.conf中定義的區(qū)域文件named.sery.com 及ip.sery.com 文件。localhost.zone 文件的內(nèi)容如下:
$TTL 86400 //解析的地址在數(shù)據(jù)庫(kù)中緩存時(shí)間
$ORIGIN localhost
@ ld IN SOA @ root (
20060101 //序列號(hào)
28800 //刷新時(shí)間
7200 //重試時(shí)間
3600000 //過(guò)期時(shí)間
3h //保存時(shí)間
)
ld IN NS @
ld IN A 127.0.0.1
用vi 編輯器把文件/var/named/named.sery.com改成下列式樣:
,$TTL 86400
@ IN SOA sery.com. root.sery.com. (
20060101
28800
144000
3600000
86400
)
;Name servers
IN NS ns.sery.com. //主DNS
IN NS ns1.sery.com. //輔DNS
;mail server
IN MX mail.sery.com.
ns IN A 202.108.99.222
ns1 IN A 202.108.99.200
www IN A 202.108.99.201
mail IN A 202.108.99.202
ftp IN A 202.108.99.203
再創(chuàng)建反向解析文件 # vi /var/named/ip.sery.com:
$TTL 86400
@ IN SOA 99.108.22-addr.arpa. root.sery.com. (
20060101
28800
144000
3600000
86400
)
IN NS ns.sery.com.
IN NS ns1.sery.com.
IN MX mail.sery.com.
200 IN PTR ns1.sery.com.
201 IN PTR www.sery.com.
202 IN PTR mail.sery.com.
203 IN PTR ftp.sery.com.
222 IN PTR ns.sery.com
到這個(gè)步驟,一個(gè)具備基本功能的域名解析服務(wù)器就創(chuàng)建成功了。一個(gè)不可忽視的問(wèn)題是在域名空間和主機(jī)名的后面都有一個(gè)代表頂級(jí)域的點(diǎn)“. ”,很多配置任務(wù)不能成功的原因就是把這個(gè)“. ”給丟掉了。出于安全考慮,最好給配置文件和區(qū)域文件加上訪問(wèn)權(quán)限,只允許超級(jí)用戶有訪問(wèn)權(quán)限。即 # chmod 700 /etc/named.conf , # chmod –R 777 /var/named/.也可以把區(qū)域文件用 # tar cvf named.tar /etc/named 打包后把它備份到安全的地方,這個(gè)方案對(duì)于充當(dāng)多域解析或要解析大量主機(jī)的服務(wù)器很有好處,因?yàn)樵诎l(fā)生故障或遷移服務(wù)器時(shí)恢復(fù)DNS 服務(wù)將大大節(jié)省時(shí)間。
,在比較重要的網(wǎng)絡(luò)環(huán)境中, 可能需要服務(wù)不間斷的運(yùn)行, 一個(gè)單獨(dú)的DNS 無(wú)法保障網(wǎng)絡(luò)服務(wù)不間斷的提供, 這需要配備一個(gè)或多個(gè)輔助域名服務(wù)器. 輔助域名服務(wù)器需要單獨(dú)的服務(wù)器來(lái)?yè)?dān)當(dāng). 與主域名服務(wù)器的配置文件相比, 只需少許的變化. 接前面的例子, 我們把另外一臺(tái)linux 服務(wù)器的IP 地址設(shè)置成202.108.99.200, 修改配置文件/etc/named.conf:
options {
directory “/var/named”;
};
zone “. ” IN {
type hint;
file “named.ca ”;
};
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;
allow-update{none};
file “named.local ”;
};
zone “sery.com ” IN {
type slave;
file “named.sery.com ”;
master { 202.108.99.222;};
};
zone “99.108.202-addr.arpa ” IN {
type slave;
file “ip.sery.com ”;
master {202.108.99.222;};
};
include “/etc/rndc.key”;
修改完配置文件后, 把主服務(wù)器上創(chuàng)建的區(qū)域文件拷貝到輔助服務(wù)器的/var/name目錄下.
DNS服務(wù)的啟動(dòng)和關(guān)閉
由于DNS 服務(wù)需要持續(xù)運(yùn)行, 在大部分情況下, 都是把它作為系統(tǒng)服務(wù)自動(dòng)運(yùn)行的. 要確保相應(yīng)的運(yùn)行級(jí)別目錄有啟動(dòng)運(yùn)行腳本. 運(yùn)行命令 # service named start 啟動(dòng)DNS 服務(wù),
,命令 # service named stop 停止DNS 服務(wù).
DNS 服務(wù)的驗(yàn)證
有很多種方法檢驗(yàn)DNS 服務(wù)器配置的正確性, 最簡(jiǎn)單的方法是nslookup, 我通常使用從外地的機(jī)器訪問(wèn)用DNS 服務(wù)解析的主機(jī). 比如我讓上海的兄弟ping 我解析的主機(jī).
額外的話題
1、 關(guān)于多域的DNS 解析配置. 一個(gè)域名服務(wù)器可以提供多域解析服務(wù),需要的操作是
在配置文件定義區(qū)域,然后單獨(dú)創(chuàng)建定義的每個(gè)區(qū)域文件。
2、 主機(jī)域名與IP 地址并非一一對(duì)應(yīng)的關(guān)系
3、 DNS 對(duì)于負(fù)載均衡的作用。通過(guò)別名的定義可以實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)訪問(wèn)的負(fù)載均衡。
2006-1-9
于北京通州