隨筆-179  評論-666  文章-29  trackbacks-0

          DNS是域名系統(tǒng)(Domain Name System)的縮寫,它的作用是將主機名解析成IP(正向解析),從IP地址查詢其主機名(反向解析)。

          DNS的工作原理
          (1)客戶機發(fā)出查詢請求
          當(dāng)被詢問到有關(guān)本域中的主機名稱的時候,DNS服務(wù)器會直接做出回答。如果所查詢的主機名稱屬于其它域的話,則會檢查緩存中有沒有相關(guān)資料,如果沒有發(fā)現(xiàn)則會轉(zhuǎn)向root服務(wù)器查詢,然后root服務(wù)器會將該域名的授權(quán)(authoritative)服務(wù)器(可能會超過一臺)的地址告知本地服務(wù)器,然后會向其中的一臺服務(wù)器查詢,并將這些服務(wù)器名單存到緩存中以備將來之需(省去再向root查詢的步驟)。

          (2)遠(yuǎn)方服務(wù)器回應(yīng)查詢
          將查詢結(jié)果回應(yīng)給客戶,并同時將結(jié)果存儲一個備份在自己的緩存里面,如果在存放時間尚未過時之前再接到相同的查詢,則以存放于緩存里面的資料來做回應(yīng)。

          DNS服務(wù)器分類
          1.主域名服務(wù)器(master)
          主域名服務(wù)器是一個域或區(qū)域的管理權(quán)威。這個服務(wù)器的主要責(zé)任就是解析域或區(qū)域內(nèi)的所有主機的名稱。可以使用一個或多個輔域名服務(wù)器作為主域名服務(wù)器的備份。

          2.輔域名服務(wù)器(slave)
          輔域名服務(wù)器是備份服務(wù)器。它們不是域區(qū)源數(shù)據(jù)存放的地方,但它們也授權(quán)響應(yīng)域名的查詢。輔域名服務(wù)器通常從域的主域名服務(wù)器獲得域區(qū)數(shù)據(jù)。輔服務(wù)器也被稱為從屬服務(wù)器。

          3.唯高速緩存服務(wù)器(hint)
          緩存服務(wù)器負(fù)責(zé)臨時存儲主域名服務(wù)器己解析過域名記錄。

          打算用兩個vps,一個做主域名服務(wù)器,一個做輔助域名服務(wù)器。系統(tǒng)用的是CentOS5.6(32bit)。

          Linux上常用的是bind,包括以下軟件包:
          bind bind-libs bind-utils bind-chroot caching-nameserver

          bind是DNS服務(wù)器軟件
          bind-libs是bind使用的庫
          bind-utils是bind查詢工具
          caching-nameserver唯高速緩存服務(wù)器

          一、安裝DNS服務(wù)器

          1.開始安裝DNS服務(wù)器:

          yum install bind bind-libs bind-utils bind-chroot

          這里更新源上的版本是bind 9.3.6-16.P1.el5,DNS的配置文件放在/var/named/chroot目錄下。

          2.復(fù)制配置規(guī)范文件:

          cp /usr/share/doc/bind-9.3.6/sample/etc/* /var/named/chroot/etc
          cp -a /usr/share/doc/bind-9.3.6/sample/var/named/* /var/named/chroot/var/named

          相關(guān)配置文件說明:
          主配置文件:/var/named/chroot/etc/named.conf 設(shè)置一般的named參數(shù),指向該服務(wù)器使用的域數(shù)據(jù)庫的信息源。
          根域名服務(wù)器指向文件:/var/named/chroot/var/named/named.root 指向根域名服務(wù)器,用于唯高速緩存服務(wù)器的初始配置。
          正向解析文件:/var/named/chroot/var/named/localhost.zone localhost區(qū)文件,用于將名字localhost轉(zhuǎn)換為本地回送IP地址(127.0.0.1),正向解析。
          反向解析文件:/var/named/chroot/var/named/named.local localhost區(qū)文件,用于將本地回送IP地址(127.0.0.1)轉(zhuǎn)換成名字localhost,反向解析。

          3.嘗試啟動DNS服務(wù)器:

          service named restart

          顯示:

          Stopping named: [ OK ]
          Starting named: [FAILED]

          查看系統(tǒng)日志:

          cat /var/log/messages |grep named

          發(fā)現(xiàn)錯誤:

          my named[1384]: /etc/named.conf:100 configuring key ‘ddns_key’: bad base64 encoding

          是沒有ddns_key造成的,執(zhí)行/usr/sbin/dns-keygen來生成TSIG keys。然后替換named.conf中
          secret “use /usr/sbin/dns-keygen to generate TSIG keys”;引號內(nèi)的內(nèi)容。

          /usr/sbin/dns-keygen
          5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI

          編輯/var/named/chroot/etc/named.conf文件,添加ddns_key:

          vim /var/named/chroot/etc/named.conf

          修改如下:

          key ddns_key
          {
          algorithm hmac-md5;
          secret “5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI”;
          };

          添加好ddns_key后,重啟named服務(wù)成功,但是DNS服務(wù)器還不能使用,需要進行其他配置。

          4.我們看到在named.conf文件中有這樣幾個區(qū)塊:
          options //設(shè)置data相關(guān)文件,對data/目錄要有寫的權(quán)限
          logging //debug log
          view “localhost_resolver” //本地解析,caching only nameserver
          view “internal” //限定同一個局域網(wǎng)的內(nèi)部用戶使用
          key ddns_key //設(shè)置ddns key
          view “external” //限制外部用戶請求這個DNS服務(wù)器

          5.首先設(shè)置/var/named/chroot/var/named/data目錄的用戶和組為named:named:

          cd /var/named/chroot/var/named
          chown named:named data

          6.為/var/named/chroot/var/named目錄添加寫權(quán)限:

          cd /var/named/chroot/var
          chmod g+w named

          如果這個目錄沒有寫權(quán)限的話,named服務(wù)可以啟動,但是系統(tǒng)日志里會有,”the working directory is not writable”錯誤。

          7.修改name.conf中view “external”區(qū)域內(nèi)設(shè)置:

          vim /var/named/chroot/etc/named.conf
          recursion yes; //打開遞歸
          allow-query-cache { any; }; //允許查詢緩存

          8.再重啟DNS服務(wù)器:

          service named restart
          Stopping named: [ OK ]
          Starting named: [ OK ]

          啟動成功。

          此時查看日志:

          tail -30 /var/log/messages |grep named

          沒有報錯即可。

          9.設(shè)置開機自啟動:

          chkconfig –level named 345 on

          此時這個DNS服務(wù)器就可以使用了。
          windows系統(tǒng)下修改網(wǎng)絡(luò)連接里的DNS服務(wù)器地址用ping、nslookup命令測試。
          linux系統(tǒng)修改/etc/resolv.conf里的nameserver地址,使用host、dig、nslookup命令測試。

          二、配置區(qū)域主域名服務(wù)器
          以test.com域為例子:
          www.test.com 192.168.1.100 //web服務(wù)
          ns.test.com 192.168.1.101 //域名服務(wù)
          work.test.com 192.168.1.100
          mail.test.com 192.168.1.103 //郵件服務(wù)
          ftp.test.com 192.168.1.104 //文件服務(wù)

          1.編輯/var/named/chroot/etc/named.rfc1912.zones文件:

          vim /var/named/chroot/etc/named.rfc1912.zones

          在最后添加正向解析區(qū)域test.com:

          zone “test.com” IN {
          type master;
          file “test.com.zone”;
          allow-update { none; };
          };

          然后添加反向解析區(qū)域1.168.192.in-addr.arpa:

          zone “1.168.192.in-addr.arpa” IN {
          type master;
          file “test.com.resv”;
          allow-update { none; };
          };

          2.創(chuàng)建正向解析數(shù)據(jù)文件/var/named/chroot/var/named/test.com.zone:

          cd /var/named/chroot/var/named
          cp localhost.zone test.com.zone

          3.編輯test.com.zone文件:

          vim test.com.zone

          修改如下

          $TTL  86400
          @    IN SOA @  root (
          42     ; serial (d. adams)
          3H     ; refresh
          15M     ; retry
          1W     ; expiry
          1D )     ; minimum

          IN NS     ns.test.com.
          www   IN A     192.168.1.100
          ns    IN A     192.168.1.101
          work   IN CNAME   www
          mail    IN A     192.168.1.103
          @     IN MX 10   mail.test.com.
          ftp     IN A     192.168.1.104

          4.創(chuàng)建反向解析數(shù)據(jù)文件/var/named/chroot/var/named/test.com.resv:

          cp named.local test.com.resv

          5.編輯test.com.resv文件:

          vim test.com.resv

          修改如下

          $TTL  86400
          @  IN  SOA  localhost. root.localhost. (
          1997022700 ; Serial
          28800  ; Refresh
          14400  ; Retry
          3600000 ; Expire
          86400 ) ; Minimum
          IN  NS  ns.test.com.
          100  IN  PTR  www.test.com.
          101  IN  PTR  ns.test.com.
          103  IN  PTR  mail.test.com.
          104  IN  PTR  ftp.test.com.

          6.編輯named.conf,將test.com區(qū)域加入到view “external”中:

          vim /var/named/chroot/etc/named.conf

          由于zone “test.com”是寫在named.rfc1912.zones文件中的,在view “external”中添加:

          include “/etc/named.rfc1912.zones”;

          7.重啟服務(wù):

          service named restart

          此時客戶端請求解析test.com域會直接使用設(shè)置的參數(shù),不會向根去詢問。

          三、配置輔域名服務(wù)器
          配置輔域名服務(wù)器相對來說簡單不少,只要主配置文件中加入一個區(qū)域,然后指定可以更新信息的主域名服務(wù)器就可以了,無需配置區(qū)域數(shù)據(jù)庫文件。

          1.編輯/var/named/chroot/etc/named.rfc1912.zones文件:

          vim /var/named/chroot/etc/named.rfc1912.zones

          在最后添加正向解析區(qū)域test.com:

          zone “test.com” IN {
          type slave;
          file “slaves/test.com.hosts”;
          masters { 1.1.1.1; }; //這里填主DNS服務(wù)器IP
          };

          然后添加反向解析區(qū)域1.168.192.in-addr.arpa:

          zone “1.168.192.in-addr.arpa” IN {
          type slave;
          file “slaves/test.com.resv”;
          masters { 1.1.1.1; }; //這里填主DNS服務(wù)器IP
          };

          2.編輯named.conf,將named.rfc1912.zones文件加入到view “external”中:

          vim /var/named/chroot/etc/named.conf

          在view “external”中添加:

          include “/etc/named.rfc1912.zones”;

          3.設(shè)置/var/named/chroot/var/named/slaves目錄用戶和組為root:named:

          cd /var/named/chroot/var/named
          chown root:named slaves

          為/var/named/chroot/var/named/slaves添加寫權(quán)限:

          chmod g+w slaves

          named用戶對slaves目錄沒有寫權(quán)限會同步不了主域名服務(wù)器上的解析數(shù)據(jù)文件。

          4.重啟DNS服務(wù):

          service named restart

          5.查看/var/named/chroot/var/named/slaves目錄:
          產(chǎn)生test.com.hosts test.com.resv文件,說明更新成功。

          需要注意:
          1)主從服務(wù)器中正/反向zone名稱必須一致。
          2)從服務(wù)器中file可指定相對路徑,也可指定絕對路徑。
          3)需將輔助DNS服務(wù)器的首選DNS服務(wù)器指向為主DNS服務(wù)器。

          參考資料:
          http://www.cnblogs.com/cabin/archive/2010/10/18/1848168.html
          http://www.linux.gov.cn/netweb/


          http://blog.iuhux.com/2011/08/11/%E5%9C%A8centos%E7%9A%84vps%E4%B8%8A%E5%AE%89%E8%A3%85dns%E6%9C%8D%E5%8A%A1%E5%99%A8/


          posted on 2011-11-21 16:25 Alpha 閱讀(3643) 評論(1)  編輯  收藏 所屬分類: Linux Nginx

          評論:
          # re: 在CentOS的VPS上安裝DNS服務(wù)器 2012-08-27 23:50 | moper
          這個好像蠻不錯的,學(xué)習(xí)了  回復(fù)  更多評論
            
          主站蜘蛛池模板: 新疆| 囊谦县| 德阳市| 湖北省| 平山县| 九寨沟县| 始兴县| 桑日县| 富裕县| 襄城县| 滨州市| 宁津县| 宜都市| 南雄市| 都昌县| 松江区| 喀喇| 青龙| 凯里市| 阳山县| 公安县| 襄汾县| 旬阳县| 平江县| 栖霞市| 巴楚县| 海宁市| 西安市| 万年县| 永善县| 普兰店市| 荣昌县| 嵊州市| 洛扎县| 博乐市| 新巴尔虎右旗| 政和县| 梁山县| 大邑县| 天门市| 濮阳市|