萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux架設DNS服務器(二)

Linux架設DNS服務器(二)

   2. 安裝服務器軟件

  2.1 取得bind軟件包(現在新的版本為8.2.2 p5)

  從bind的主頁http://www.isc.org上取得最新stable版的三個文件:

  bind-contrib.tar.gz

  bind-doc.tar.gz

  bind-src.tar.gz

  或者從http://www.redhat.com上取得三個文件:

  bind-8.2.2-p5-9.i386.rpm

  bind-devel-8.2.2-p5-9.i386.rpm

  cache-nameserver-6.2-2.noarch.rpm

  2.2 安裝bind軟件包

  安裝tar封裝的軟件包:

  先解壓軟件包

  tar zxpf bind-contrib.tar.gz

  tar zxpf bind-doc.tar.gz

  tar zxpf bind-src.tar.gz

  編輯修改Makefile.set 文件,增加或修改

  'DESTLIB=/usr/lib/bind/lib'

  'DESTINC='/usr/lib/bind/include'

  編譯並安裝

  make

  make install

  安裝rpm封裝的軟件包:

  rpm -Uhv bind-8.2.2-p5-9.i386.rpm

  rpm -Uhv bind-devel-8.2.2-p5-9.i386.rpm

  rpm -Uhv cache-nameserver-6.2-2.noarch.rpm

  3.讓服務器跑起來---基本篇

  3.1

  BIND可被配置成幾種不同的運行方式,通用的BIND配置為純解析器系統,純緩存服務器,主服務器,輔服務器.

  解析器是指通過域名服務器查詢域信息的程序代碼,在unix系統中,它是以庫例程的方式實現的,而並不是一個單獨的客戶程序.純解析器系統很容易配置,只要設置一下/etc/resolv.conf文件.這種方式通常用於由於某些限制不能在本地運行域名服務器軟件的系統中.

  例如:/etc/resolv.conf內容類似為:

  search test.com

  nameserver 127.0.0.1

  nameserver 172.16.0.1

  當配置解析器庫以使用BIND名字服務進行主機查找,你也必須告知它使用哪個名字服務器。對此有一個獨立的文件,稱為resolv.conf。如果這個文件不存在或是空的,那麼解析器就假設名字服務器在你本地的主機上。

  如果在你的本地主機上運行一個名字服務器,你必須單獨地設置它。

  resolv.conf中最重要的選項是nameserver,它給出了要使用的名字服務器的IP地址。如果你通過幾次給出nameserver選項指定了幾個名字服務器,那麼它們會以給出的順序試用。因此,你應該首先給出最可靠的服務器。目前,至多支持三個名字服務器。

  如果沒有給出nameserver選項,那麼解析器試圖連接本地主機上的名字服務器。

  其它兩個選項,domain和search涉及到如果BIND不能用第一個請求解析主機名時附加在主機名上的缺省域。search選項指定了一個試用的域名列表。列表項是用空格或制表符分開的。

  如果沒有給出search選項,就會通過使用域名本身從本地域名以及直至root的父域中建立一個搜尋列表。本地域名可以使用domain語句給出;如果一個也沒有給出,那麼解析器就通過系統調用getdomainname(2)來獲取。

  3.2 其它三類配置方式是用於域名服務器的

  純緩存服務器

  純緩存服務器運行域名服務器軟件,但並沒有域名服務器數據庫文件,它記錄下每一個從遠程域名服務器獲得的數據,以回答將來對同一信息的查詢.

  純緩存服務器所需的三個基本配置文件:

  /etc/named.conf

  /var/named/named.ca

  /var/named/named.local

  創建或修改/etc/named.conf:

  // generated by named-bootconf.pl

  options {

  directory "/var/named";

  /*

  * If there is a firewall between you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below. Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

  forwarders {172.16.0.1;172.16.0.11;};

  };

  //

  // a caching only nameserver config

  //

  zone "." {

  type hint;

  file "named.ca";

  };

  zone "0.0.127.in-addr.arpa" {

  type master;

  file "named.local";

  };

  在文件中"forwarders {172.16.0.1;172.16.0.11;};"其中的IP地址是你網絡中主服務器和輔服務器的IP地址.

  創建或修改/var/named/named.local

  @ IN SOA localhost. root.localhost. (

  1997022700 ; Serial

  28800 ; Refresh

  14400 ; Retry

  3600000 ; Expire

  86400 ) ; Minimum

  IN NS localhost.

  1 IN PTR localhost.

  創建或修改/var/named/named.ca:

  至於/var/named/named.ca就要從redhat linux光碟獲得了.也用命令從互聯網上獲得:

  dig @.aroot-servers.net.ns > /var/named/named.ca

  如果是用rpm封裝的軟件包安裝的話,這三個文件會自動生成,我們只需要修改/etc/named.conf.其中/var/named.ca一般是不用修改的.

  主服務器

  主服務器是給定域的所有信息的授權來源.它所裝載的域信息來自於由域管理員所創建並在本地維護的磁盤文件.

  我們用"test.com"作為例子,我們需要五個基本配置文件:

  /etc/named.conf

  /var/named/named.ca

  /var/named/named.local

  /var/named/named.test.com

  /var/named/named.172.16.0

  創建或修改/etc/named.conf:

  // generated by named-bootconf.pl

  options {

  directory "/var/named";

  /*

  * If there is a firewall between you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below. Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

  };

  //

  // a PM nameserver config

  //

  zone "." {

  type hint;

  file "named.ca";

  };

  zone "0.0.127.in-addr.arpa" {

  type master;

  file "named.local";

  };

  //there are our primary zone files

  zone "test.com" {

  type master;

  file "named.test.com";

  };

  zone "0.16.172.in-addr.arpa" {

  type master;

  file "named.172.16.0";

  };

  文件中的zone "test.com"段是聲明這是用於test.com域的主服務器,用於該域的數據從/var/named/named.test.com文件中裝載.

  文件中的zone "0.16.172.in-addr.arpa"段是指向映射IP地址172.16.0.* 到主機名的文件.用於該域的數據從/var/named/named.172.16.0文件中裝載.

  創建或修改/var/named/named.local

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ; Serial

  28800 ; Refresh

  14400 ; Retry

  3600000 ; Expire

  86400 ) ; Minimum

  IN NS ns.test.com.

  1 IN PTR localhost.

  注意:在修改named.*文件時每次存盤時要注意增加Serial值.如使用絕對域名時千萬別忘了後面帶的"."

  資源記錄中的@字符轉變為當前的域test.com,IN表示資源記錄使用TCP/IP地址,SOA表示管轄開始記錄.ns.test.com. 是這個域的主DNS服務器的標准名稱,在之後是聯系的EMAIL地址,其中@字符必須用"."代替.

  創建或修改/var/named/named.test.com

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ; Serial

  28800 ; Refresh

  14400 ; Retry

  3600000 ; Expire

  86400 ) ; Minimum

  IN NS ns.test.com.

  ns A 172.16.0.1

  ns2 A 172.16.0.11

  www A 172.16.0.2

  ftp CNAME www.test.com.

  mail A 172.16.0.3

  MX 10 mail.test.com.

  創建或修改/var/named/named.172.16.0

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ; Serial

  28800 ; Refresh

  14400 ; Retry

  3600000 ; Expi

copyright © 萬盛學電腦網 all rights reserved