DNS(域名服務(wù)器)的作用是把域名轉(zhuǎn)換成IP地址,或反過(guò)來(lái)。更詳細(xì)的信息:維基百科。
此實(shí)驗(yàn),將在局域網(wǎng)的一臺(tái)主機(jī)上用Bind9搭建DNS服務(wù)器,提供域名解析服務(wù)。另有兩臺(tái)HTTP服務(wù)器,設(shè)定域名為www.my.com和abc.my.com(隨便取一個(gè)域名)。網(wǎng)絡(luò)結(jié)構(gòu)圖:
上圖中兩臺(tái)服務(wù)器Server0和Server1是在VirtualBox下虛擬的,網(wǎng)卡類型用橋接,怎么安裝請(qǐng)見(jiàn)這里。根據(jù)我的實(shí)際情況,宿主系統(tǒng)(WinXP)ip地址是192.168.1.99,Server0是 192.168.1.98,Server2是192.168.1.97,網(wǎng)關(guān)(路由)是192.168.1.1,接電信ISP。
Server0 上安裝HTTP服務(wù)器和DNS服務(wù)器,Server1上安裝HTTP服務(wù)器。上面的網(wǎng)絡(luò)搭建好之后,三臺(tái)機(jī)器之間能夠互ping得通。
先為兩臺(tái)服務(wù)器安裝HTTP服務(wù)器,如果在安裝Ubuntu已選擇安裝LAMP,則跳過(guò)這步。否則,執(zhí)行sudo apt-get install nginx安裝nginx,它是一個(gè)小巧的HTTP 服務(wù)器,安裝完它會(huì)自動(dòng)啟動(dòng),在瀏覽器測(cè)試一下http://192.168.1.97,看到"Welcome to nginx!"即成功。
實(shí)驗(yàn)?zāi)康氖鞘沟萌_(tái)電腦都能用www.my.com訪問(wèn)server0,abc.my.com訪問(wèn)server1.
安裝Bind9:
sudo apt-get install bind9 dnsutils bind9-doc
其中只需bind9就可,后面兩個(gè)是dns的測(cè)試工具和bind9的文檔,hiweed推薦。
DNS記錄類型請(qǐng)看維基百科,常用有A記錄、CNAME記錄、MX記錄和NS記錄。
轉(zhuǎn)發(fā)配置:是當(dāng)本地的DNS服務(wù)器在本地?cái)?shù)據(jù)文件里找不到對(duì)應(yīng)網(wǎng)站后,移交給下一步查詢的DNS服務(wù)器(遞推)。編輯/etc/bind/named.conf.options文件,取消 forwarders{}的注釋,在{}加入8.8.8.8; 這是Google的DNS服務(wù)器。
Zone概念:zone即域的意思,像g.cn、 twitter.com這樣的形式就是域,www.g.cn,ditu.g.cn這些就是子域。Bind9的配置文件中,一個(gè)域用一個(gè)文件來(lái)存放,在文件中指明每個(gè)子域?qū)?yīng)的IP地址。
主DNS服務(wù)器配置:編輯/etc/bind/named.conf.local文件,添加域my.com:
zone "my.com"{ type master; file "db.my.com"; };
注意別漏了分號(hào),type指定這臺(tái)DNS服務(wù)器為主服務(wù)器,file指定該域的解析文件,默認(rèn)路徑在/etc/var/cache/bind , /etc/bind/db.local是bind自帶的模板文件,復(fù)制一份到 /etc/var/cache/bind ,并改名成db.my.com:
sudo cp /etc/bind/db.local /var/cache/bind/db.my.com
然后編輯/var/cache/bind/db.my.com,最終如下:
$TTL 604800@ IN SOA my.com. root.my.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL;@ IN NS localhost.@ IN A 127.0.0.1;@ IN AAAA ::1www IN A 192.168.1.98abc IN A 192.168.1.97server IN CNAME abc
從上往下看,$TTL設(shè)置記錄在DNS緩存服務(wù)器上的生存周期(秒)。SOA記錄定義了my.com這個(gè)域,以及相關(guān)參數(shù),默認(rèn)就行。最后三行,添 加A記錄,www指向server0的IP,abc指向server1的IP,server則CNAME到abc(這一行非必須,僅演示CNAME)。
修改完成后重啟bind:
sudo /etc/init.d/bind9 restart
此時(shí)DNS服務(wù)器已經(jīng)開始工作了,要使用該DNS服務(wù)器,以XP為例,到"控制面板"–"網(wǎng)絡(luò)連接",找到上網(wǎng)的網(wǎng)卡,右鍵選擇"屬性",如圖設(shè)置:
然后打開瀏覽器,訪問(wèn)www.my.com,abc.my.com,server.my.com吧。
Linux 修改DNS,請(qǐng)修改/etc/resolv.conf文件。
關(guān)于反向解析:即從IP解析到域名。本實(shí)驗(yàn)中,該功能沒(méi)什么用途。在反垃圾郵件方面,它很有作用,由于郵件的協(xié)議,偽裝域名發(fā)送郵件是可能的,這時(shí)候,郵件服務(wù)器端收到郵件后,根據(jù)郵件的IP地址反解析,得到域名,如果域名和郵件的發(fā)信人域名一致,則收下,否則拒絕。
新聞熱點(diǎn)
疑難解答
圖片精選