子域dns
一、DNS 的基本知識(shí)我們都知道,網(wǎng)絡(luò)通信中,數(shù)據(jù)鏈路等使用的地址是MAC 地址。網(wǎng)絡(luò)層使用的是IP 地址,傳輸層使用的地址是端口號(hào),它們各有各的識(shí)別方式。而和用戶關(guān)系最密切的就是IP 地址,每個(gè)入網(wǎng)
一、DNS 的基本知識(shí)
我們都知道,網(wǎng)絡(luò)通信中,數(shù)據(jù)鏈路等使用的地址是MAC 地址。網(wǎng)絡(luò)層使用的是IP 地址,傳輸層使用的地址是端口號(hào),它們各有各的識(shí)別方式。而和用戶關(guān)系最密切的就是IP 地址,每個(gè)入網(wǎng)的(不論是Internet 或Intranet )計(jì)算機(jī)都必須有自己的IP 地址,這樣才可保證信息的正確傳遞。但I(xiàn)P 地址是數(shù)字構(gòu)成的,非常難與記憶和表達(dá)他的實(shí)際用途,所以人們用形象的域名代替IP ,方便交流和記憶,但需要注意的是,網(wǎng)絡(luò)通信中數(shù)據(jù)包的傳輸是靠IP 地址進(jìn)行的。也就是說(shuō),當(dāng)www . syd . com 向www1. syd . com 發(fā)送信息的時(shí)候,首先必須將自己的和對(duì)方的域名轉(zhuǎn)化為實(shí)際的IP 地址,并填寫在數(shù)據(jù)包的頭部,才進(jìn)行數(shù)據(jù)的傳輸。而完成域名到IP 或IP 到域名的翻譯(解析)的軟件就是DNS 服務(wù)系統(tǒng)。DNS 服務(wù)系統(tǒng)必然要安裝在某個(gè)計(jì)算機(jī)上,這個(gè)計(jì)算機(jī)就是所謂為的DNS 服務(wù)器。 目前為止,實(shí)現(xiàn)這種域名解析的方法主要有三種:
1) hosts 文件,但要求所有互相解析的機(jī)器必須都配置
1) NIS (SUN 的技術(shù)) 集中管理域名,只適合局域網(wǎng), 原因大家自己想
3) DNS 實(shí)現(xiàn)域名的層次化,分布式管理,目前大部分都是這種方式
DNS 服務(wù)的配置比較難,而且可能需要ISP 的支持,DNS 也是各種網(wǎng)絡(luò)應(yīng)用服務(wù)的基礎(chǔ),例如網(wǎng)站,郵件。。。都需要域名的支持,而且有了DNS ,IP 的移植就方便多了。
二、Linux 下配置DNS 服務(wù)器的條件
目前的各種Linux 中都提供了實(shí)現(xiàn)DNS 服務(wù)的軟件,而且默認(rèn)大部分都是直接安裝的(這與Linux 主要面向服務(wù)領(lǐng)域的宗旨是分不開(kāi)的)。Linux 中的DNS 服務(wù)器軟件叫bind , 目前是版本9吧. 它的管理程序叫named (這里的d 表示守護(hù)進(jìn)程,也即Windows 中的服務(wù))
1)檢查是否安裝DNS 服務(wù)軟件
#rpm -ql bind
如果沒(méi)有安裝,可以添加:
#rpm -ivh *bind*.rpm(RH9的第一張)
#rpm -ivh *nameservere*.rpm((RH9的第二張) )
三、DNS 服務(wù)器組成和配置方式
DNS服務(wù)系統(tǒng)采用C /S 結(jié)構(gòu),普通用戶的機(jī)器是C ,提供DNS 解析服務(wù)的是S ,客戶端的配置相當(dāng)簡(jiǎn)單,只需要在/etc /resolv . conf 中添加DNS 服務(wù)器的IP 就可以了(最多三個(gè)),格式如下:
nameserver 172.16.0.3
nameserver 10.8.10.244 (表示由這些機(jī)器完成域名到IP 的翻譯) (注意,實(shí)驗(yàn)中最好將自己的DNS 服務(wù)器IP 放在前面,否則可能測(cè)試失敗,但上網(wǎng)速度要慢些,為了實(shí)驗(yàn),值得!)
DNS 服務(wù)器端的配置主要包括主配置文件和區(qū)域文件。
主配置文件:/etc /named . conf 完成區(qū)域的聲名和全局配置(如子域聲名,訪問(wèn)控制等等)
區(qū)域文件(默認(rèn)在/var/named 下) ,文件名與主配置文件中聲名的一樣,主要完成DNS 資源記錄(包括SOA , MX , A , NS , CNAME 等等),下面的配置文件中詳細(xì)說(shuō)明。
,==================================================================== 下面的內(nèi)容是實(shí)現(xiàn)過(guò)程
=====================================================================
四、文本配置的實(shí)現(xiàn)
1.配置規(guī)劃
為了大家能夠容易看懂,這里我先把我實(shí)現(xiàn)的設(shè)想寫出來(lái):
我在自己的機(jī)器(512MB , 80GB , 1.7GHz , 64MB Vcard) 上安裝了兩個(gè)RH AS 3系統(tǒng),這樣我總共有3臺(tái)機(jī)器進(jìn)行試驗(yàn)。我的目的是在兩個(gè)Linux 系統(tǒng)中進(jìn)行試驗(yàn),實(shí)現(xiàn)域名解析和子域名。
我要實(shí)現(xiàn)的域是syd168. com , 域中包含的機(jī)器有:www , bbs , ftp , mai , ssl 它們分別用于完成網(wǎng)站,BBS ,F(xiàn)TP ,電子郵件和電子商務(wù)站點(diǎn),而且都在一個(gè)機(jī)器上(172.16.0.3) ,實(shí)際中常常在不同的機(jī)器上。
另外,我計(jì)劃實(shí)現(xiàn)syd168. com 與的子域sub . syd168. com , 子域有它自己的主機(jī)解析記錄(www , mail , ftp , ssl ...) ,并跨網(wǎng)段。
提示,如果在一個(gè)機(jī)器上,各種服務(wù)對(duì)應(yīng)到不同的域名要用到虛擬主機(jī)技術(shù),以后我會(huì)發(fā)布它們的實(shí)現(xiàn)方法,其實(shí)這里有很多相關(guān)資料的。
RH AS1:
IP:172.16.0.3/16
網(wǎng)關(guān):172.16.0.2
DNS客戶配置172.16.0.3
RH AS2:
IP:172.16.0.4/16
網(wǎng)關(guān):172.16.0.2
DNS客戶配置172.16.0.4
1.配置主配置文件
當(dāng)安裝完Bind 之后,默認(rèn)產(chǎn)生主配置文件/etc /named . conf
#vi /etc/named.conf 其中加入如下內(nèi)容
**********************/etc /named . conf ************************** options {
directory "/var/named"; //區(qū)域文件的存放位置
forwarders {10.8.10.244;};
//allow-query {172.16.0.0/16};
//allow-transfer {172.16.0.0/16;};
//forward only;
};
controls {
inet 122.0.0.1 allow { localhost ;
172.16.0.3; 172.16.0.4;} keys { rndckey ; };
};
zone "." IN {
,type hint;
file "named.ca" ;
};
zone "localhost" IN {
type master;
file "localhost.zone" ;
allow -update { none ; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "localhost.arpa" ;
allow -update { none ; };
};
//=====================新加入的內(nèi)容=====================
zone "syd168.com" IN { //要實(shí)現(xiàn)syd168.com 域
type master; //要實(shí)現(xiàn)的是主域
file "syd168.com.zone" ; //主域的記錄文件(好記的名字) 存放在/var/named下
};
zone "0.16.172.in-addr.arpa" IN { //syd168.com的反向解析區(qū)域 type master; //類型是主要區(qū)域
file "syd168.com.arpa" ; //反向區(qū)域記錄的存放文件(好記的名字) ,位置同上
};
//=====================新加入內(nèi)容結(jié)束=====================
include "/etc/rndc.key";
2. 建立兩個(gè)區(qū)域文件/var/named 下
1) #vi /var/named/syd168.com.zone
//=============正向區(qū)域文件/var/named/syd168.com.zone=============
$TTL 2h
syd168. com . IN SOA www. syd168. com . master . syd168. com . ( //最左邊的syd168.com 可以簡(jiǎn)化為@, 后面依次為 IN SOA 主DNS 服務(wù)器域名 DNS服務(wù)器管理員郵件
20040730 ; serial number //區(qū)域序列號(hào),當(dāng)修改時(shí)要增加,否則從域可能不一致!
,2h ; refresh timeout //從域刷新超時(shí)時(shí)間
40m ; retry refresh timeout //從域重試刷新時(shí)間
1w ; expire timeout //從域刷新失敗并認(rèn)為主域無(wú)效的時(shí)間 2h ; TTL time
)
//以下每行都要靠左,即左側(cè)不要留出空白
syd168. com . IN NS www. syd168. com . //表示syd168.com 的域名由www.syd168.com(或IP) 翻譯
www IN A 172.16.0.3 //www.syd168.com對(duì)應(yīng)的IP 為172.16.0.3
www IN A 172.16.0.4 //www.syd168.com對(duì)應(yīng)的IP 為172.16.0.4,單域名多IP 可實(shí)現(xiàn)負(fù)載均衡
ftp IN A 172.16.0.4 //左邊也可以寫為ftp.syd168.com. 注意!這時(shí)最后必須多個(gè)點(diǎn),否則錯(cuò)誤。
mail IN A 172.16.0.5 //全域名必須以點(diǎn)結(jié)束!
bbs IN A 172.16.0.6 //IN 表示Internet ,A 表示Address test IN A 172.16.0.7 //注意 ,這些IP 必須可連同,否則徒勞!
ssl IN A 172.16.0.3
syd168. com . IN MX 10 mail. syd168. com . //表示發(fā)往syd168.com 域的郵件由mail.syd168.com 主機(jī)轉(zhuǎn)發(fā),MX 表示mail exchange 在
//以下兩行是實(shí)現(xiàn)子域的方法,要實(shí)現(xiàn)的子域是syd168.com 的子域sub.syd168.com, 父域中給出指向子域的服務(wù)器地址
sub IN NS www. sub . syd168. com . //表示后綴為sub.syd168.com 的域名由www.sub.syd168.com 負(fù)責(zé)翻譯,NS 表示Name Server www . sub IN A 172.16.1.3 //表明www.sub 主機(jī)在本域中的主機(jī)解析為172.16.1.3
//以下是主機(jī)的別名,我一般不設(shè),因?yàn)樯厦嬉呀?jīng)是標(biāo)準(zhǔn)名了,要?jiǎng)e名干什么,如果需要也可直接設(shè)置主機(jī)名
www1 IN CNAME www
ftp1 IN CNAME ftp
bbs1 IN CNAME bbs
mail1 IN CNAME mail
test1 IN CNAME test
ssl1 IN CNAME ssl1
//=============正向區(qū)域文件結(jié)束=============
,//=============反向區(qū)域文件/var/named/syd168.com.arpa=============
$TTL 2h
@ IN SOA www. syd168. com . master . syd168. com . (
20040730 ; serial number
2h ; refresh timeout
40m ; retry refresh timeout
1w ; expire timeout
2h ; TTL time
)
IN NS www. syd168. com . //注意本行左側(cè)需要有空格,或者填入" 區(qū)域名.", 即0.16.172.in-addr.arpa.
3 IN PTR www. syd168. com . 表示 www. syd168. com 對(duì)應(yīng)的主機(jī)IP 為172.16.0.3(反向解析)
4 IN PTR ftp. syd168. com .
5 IN PTR mail. syd168. com .
6 IN PTR bbs. syd168. com .
7 IN PTR test. syd168. com .
//=============反向區(qū)域文件結(jié)束=============
3. 測(cè)試與調(diào)試配置
修改完成后,保存推出
1) #service named start //啟動(dòng)named 服務(wù)(提供DNS 服務(wù)的進(jìn)程),常見(jiàn)的錯(cuò)誤是缺少. 或;或左邊多余的空格, 排除直道本命令沒(méi)有錯(cuò)誤
2) #named //我的虛擬機(jī)必須這樣才可解析,正常機(jī)器大概不需要,并且我在/etc/rc.d/rc.local中加入了運(yùn)行named 的行
3) #named -g 檢查是否有錯(cuò)誤,一般會(huì)很清楚,很多人說(shuō)服務(wù)運(yùn)行正常,但無(wú)法解析,除了/etc/resolv.conf中沒(méi)有添加DNS 服務(wù)器的IP, 大多錯(cuò)誤都可以通過(guò)這個(gè)命令排除
4) #host www.syd168.com //測(cè)試是否成功? 如果成功,別的主機(jī)記錄一般也沒(méi)什么問(wèn)題。host 可以用ping 代替
5) host 172.16.0.3 //測(cè)試反向解析
6) host -t MX syd168. com //測(cè)試郵件交換器
7) host -t NS syd168. com //測(cè)試域名服務(wù)器
補(bǔ)充說(shuō)明:#named -g 非常有用!反正我的所有DNS 錯(cuò)誤都是用它排除的。主要是直觀,能給出出錯(cuò)的行。實(shí)質(zhì)上是日志的更細(xì)顯示
如果本機(jī)測(cè)試沒(méi)有問(wèn)題,強(qiáng)烈建議在遠(yuǎn)程測(cè)試,開(kāi)始一般都失敗,為什么?因?yàn)槟銢](méi)有添加nameserver 172.16.0.3 到它的/etc /resolv . conf 中。試試看?哈哈,原來(lái)如此簡(jiǎn)單!
,五、子域的實(shí)現(xiàn)
1.子域規(guī)劃
其實(shí),子域的實(shí)現(xiàn)上面都寫出來(lái)了。這里也是重復(fù)。我要實(shí)現(xiàn)的實(shí)父域syd168. com 的子域,什么意思???就是客戶機(jī)在父域上查詢(一般都這樣)的時(shí)候,發(fā)現(xiàn)后綴包含子域的部分,就轉(zhuǎn)到子域所在的服務(wù)器上查找,就這么簡(jiǎn)單。
2.子域的實(shí)現(xiàn)
1)修改主域的區(qū)域文件,主機(jī)記錄部分添加如下2行
sub IN NS www. sub . syd168. com . //表示后綴為sub.syd168.com 的域名由www.sub.syd168.com 負(fù)責(zé)翻譯,NS 表示Name Server www . sub IN A 172.16.1.3 //表明www.sub 主機(jī)在本域中的主機(jī)解析為172.16.1.3
2)在子域服務(wù)器上修改主配置文件和建立區(qū)域文件,方法和上面的一樣,只是區(qū)域?yàn)閟ub . syd168. com , 反向區(qū)域比較復(fù)雜,再說(shuō)我馬上要走了,,,時(shí)間。。。
3.測(cè)試配置
要測(cè)試子域,必須配置正確,根據(jù)子域的原理,客戶在父域中查不到時(shí)才到子域查,所以測(cè)試的時(shí)候,測(cè)試機(jī)器上的DNS 客戶配置一定要去掉子域服務(wù)器的IP ,否則您的測(cè)試是錯(cuò)誤的!不可信的。只有證明了DNS 查詢是經(jīng)由主域服務(wù)器再到子域服務(wù)器上的。