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