茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671761 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00036.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]bind - DNS 設定

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]bind - DNS 設定
bind - DNS 設定

參考資訊

DNS and BIND 管理
DNS 是所有伺服之母,電腦連節時均以 IP 為主,比方說輸入 202.43.195.52 就會到台灣雅虎,當然您也可以打 tw.yahoo.com 到 Yahoo-Taiwan 首頁,但是,當您輸入 tw.yahoo.com 時,可曾想過其實背後是由 DNS 幫您做轉換成 IP 的動作!
DNS 的組成,是由分散式 DB 所構成的,每個 DNS 可以管理屬於自己的網域,也可以受權自己所屬的子網域給別人,在你得到網域之後,你上層的 DNS 就不會管你如何設定,如何受權;而你受權子網域之後,您也不用管理你的子網域如何管理,因為“一旦受權 完全自由”。當然,您可別先掛掉 (或你的上一層 DNS),不然就連你的小孩 (子網域) 都跟著掛了!

實作 DNS 管理

以下,假設 abc 實業公司申請屬於他們的 domain,一旦申請了自己的 網域名稱 之後,接下來就要設定讓你的 DNS 能夠活起來,在 Linux 裡,長久以來多數都使用 bind 這個套件來做 DNS 的管理,他經歷了歷史的考驗,因此在多絕大部份的功能上都最為完整。

檔案編輯

在編輯 DNS 時,大部份只需要編輯 database 檔,而初次或有網域變動時才會需要編輯到 /etc/named.conf。
編輯設定檔 (/etc/named.conf)
# vi /etc/named.conf
_______________________________________________________________________________
options {
     directory "/var/named";
}

controls {
          inet 127.0.0.1 allow { localhost; } 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 "named.local";
     allow-update { none; };
};

include "/etc/rndc.key";
____________________________________________________________________________


當您開啟 /etc/named.conf 之後,您就可以發現已經存在一些資訊了,而 /etc/named.conf 這個目錄主要是設定每個網域資訊是存在那一個檔案裡,比方說 localhost 這個 domain 是存在 localhost.zone 的檔案裡,而 root domain 資訊是放在 named.ca 裡面。然而,假設現在已經申請了 abc.com.tw 這個 domain,所以當 .com.tw 受權過來後就可以設定我們所屬的網域了。

正解設定

編輯設定檔 (/etc/named.conf)

在 /etc/named.conf 裡面輸入一段設定,並指定 abc.com.tw 的網域資訊是放在那裡的。
zone "abc.com.tw" IN {
     type master;
     file "db-abc.com.tw";
     allow-update { none; };
};

指定 abc.com.tw 的 domain 資訊放在 db-abc.com.tw,把 /etc/named.conf 存起來。接下來要去“那裡”編輯 db-abc.com.tw 呢?其實答案就在 /etc/named.conf 裡的 options { directory "/var/named"; } 這個區段裡,看到了吧!所以接下來的 db-abc.com.tw 就要在 /var/named 編好之後放在這裡,這樣才能正確被讀入呢!

編輯設定檔 (/var/named/db-abc.com.tw)
$TTL          86400
$ORIGIN abc.com.tw.
@          1D IN SOA                    @ root.abc.com.tw. (
                                        2005021801          ; 修改序號
                                        3H                  ; refresh
                                        15M                 ; retry
                                        1W                  ; expiry
                                        1D )                ; minimum

@                   IN NS         dns.abc.com.tw.
dns.abc.com.tw.     IN A          11.22.33.100

;設定 MX record
@                   IN MX 10      ms1
@                   IN MX 20      ms2
ms1                 IN A          11.22.33.69
ms2                 IN A          11.22.33.70

www                 10 IN A       11.22.33.85     ;www 做 load balancing
www                 10 IN A       11.22.33.86     ;www 做 load balancing
web                 IN CNAME      www             ;讓 web.abc.com.tw 也指到 www

上述範列設定了一些技巧,以下一一解釋重要部份:

$ORIGIN abc.com.tw.
說明這個設定檔是屬於那一個網域的。
root.abc.com.tw.
指定管理者的 mail,也就 root@abc.com.tw,root 之後的 . 代表著 @ 的意思,不用 @ 的原因是 "@" 符號有特別的含意。
@ IN NS dns.abc.com.tw.
指定當前 abc.com.tw. 的 dns 查詢主機是那一部
dns.abc.com.tw. IN A 11.22.33.44
指定 dns.abc.com.tw. 的正解。
@ IN MX 10 ms1
@ IN MX 20 ms2
指定 abc.com.tw. 的 MX 記錄,分別指向 ms1.abc.com.tw 和 ms2.abc.com.tw、而 ms1 的優先等級高於 ms2,此為重要設定,若郵件無法傳遞,有部份原因是 MX 記錄沒有設好 (若有 mail gateway、mail routing 時尤為重要)。
ms1 IN A 11.22.33.50
ms2 IN A 11.22.33.51
設定 ms1.abc.com.tw 和 ms2.abc.com.tw 的正解 A 記錄。
www 10 IN A 11.22.33.85
www 10 IN A 11.22.33.86
www.abc.com.tw。設定了兩組 www 的 A 正解記錄主要是有兩台 www 伺服器在運作,為避免伺服器太過忙碌,而使用兩組設定以分攤流量 (Load balancing)。
web IN CNAME www
既 web.abc.com.tw,其實就是指向 www.abc.com.tw,這只是 www.abc.com.tw 的一個別名而已。

符號說明:

@:當地的 domain 簡寫,也就是 abc.com.tw
;:這個符號代表註解,在 ; 之後的文字將被視為無效。
此時,abc.com.tw 的網域正解設定應已完成,接下來看看 DNS 是否能查得到

正解檢查

查 MX record
[root@rhel200 named]# host -t mx abc.com.tw
abc.com.tw mail is handled by 20 ms2.abc.com.tw.
abc.com.tw mail is handled by 10 ms1.abc.com.tw.
[root@rhel200 named]#

www.abc.com.tw
[root@rhel200 named]# host www.abc.com.tw
www.abc.com.tw has address 11.22.33.69
www.abc.com.tw has address 11.22.33.70
[root@rhel200 named]#

查 web.abc.com.tw
[root@rhel200 named]# host web.abc.com.tw
web.abc.com.tw is an alias for www.abc.com.tw.
www.abc.com.tw has address 11.22.33.85
www.abc.com.tw has address 11.22.33.86
[root@rhel200 named]#

反解設定

編輯設定檔 (/etc/named.conf)

加入一個 reserve zone。
        zone "33.22.11.in-addr.arpa" IN {
                type master;
                file "db-11.22.33";
        };

再到 /var/named 裡編輯 db-11.22.33
$TTL    86400
@       IN      SOA     abc.com.tw. root.abc.com.tw.  (
                                      2004102501 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      dns.abc.com.tw.
69      IN      PTR     ms1
70      IN      PTR     ms2
85      IN      PTR     www
86      IN      PTR     www
100      IN      PTR     dns

正反解的設其實都差不多,只是在新增對應反解時是使用 PTR 記錄。而 69 是 69.33.22.11.in-addr.arpa 的簡寫。

反解檢查
[root@mailgw named]# host 11.22.33.100
100.33.22.11.in-addr.arpa domain name pointer dns.abc.com.tw.
[root@mailgw named]# host 11.22.33.85
85.33.22.11.in-addr.arpa domain name pointer www.abc.com.tw.
[root@mailgw named]#

以上,若是正反解都 OK 了,那麼就可以開開心心的讓別人查到您的 DNS 了。

Bind 9 新功能 view

view 在實做上, 主要的功能就是可以讓你的 DNS 伺服器見人說人話, 見鬼說鬼話, 怎麼說呢, 比方說你在一些網路主機不想被別人使用 DNS 來查到, 那麼就可以使用 view 功能來隔開, 像一般公司內的伺服器, 會使用內部網段, 但是又不想要讓別人可以從外面查到 (就算查到對一般人也沒什麼用處), 又不想多增加一台所謂的內部 DNS 伺服器, 所以我們就可以使用 view 的功能, 看是 Client 連上來是屬於那一個區段來回應.

設定 acl

為什麼要設定 acl, 就是 Access Control List, 主要是用來分類群組用的. 以下的範例, 將把 intranet 設定在 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, 而不在這三個範圍之內的, 就叫 internet. 設定完之後, 再使用 view function 劃清界線.

以下, 在 /etc/named.conf 做設定
//acl 設定各不同 Client 的分組

acl "intranet" { 192.168.1.0/24; 192.168.2.0/24; 192.168.3.0/24; };
acl "internet" { ! 192.168.1.0/24; ! 192.168.2.0/24; ! 192.168.3.0/24; };

view "intranet" {
        //使用 match-clients 來檢視查尋的 Client 來源 (公司網路)
        match-clients { "intranet"; };
        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 "named.local";
                allow-update { none; };
        };

        zone "abc.com.tw" IN {
                type master;
                file "db.abc.com.tw";
        };

        zone "33.22.11.in-addr.arpa" IN {
                type master;
                file "db-11.22.33";
        };

        // 以下這一段就是不希望本公司以外的人可以查到
        zone "company.abc.com.tw" IN {
                type master;
                file "db-in.company.abc.com.tw";
        };

        // the company.abc.com.tw PTR record
        zone "1.168.192.in-addr.arpa" IN {
                type master;
                file "db-192.168.1.0";
        };
};

view "internet" {
        //使用 match-clients 來檢視查尋的 Client 來源 (非公司網路)
        match-clients { "internet"; };
        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 "named.local";
                allow-update { none; };
        };

        zone "abc.com.tw" IN {
                type master;
                file "db.abc.com.tw";
        };

        zone "33.22.11.in-addr.arpa" IN {
                type master;
                file "db-11.22.33";
        };
};

以上設定, 就不示範如何設定 db 資料庫檔, 因為設定方法就如同上面所說的一樣, 沒有什麼改變.

你可以很明確的發現, 在我們設定 view "internet" 和 view "intranet" 時, 都需要把原本的 zone 都重新定義才行, 看起來就會像是獨立的 DNS Server, 現在只要使用不同的網路, 就可以發現你的 DNS 是見人說人話, 見鬼說鬼話了!

授權子網域

如果當您的網路規摩有一定的程度之後, 也許會想要再新增一個子網域. 在這個範例之後, 將會示範如何在一個現有的網域下再新增一個 DNS 網域, 並把該子網域授權給下層的單位管理.

新增一個 demo.abc.com.tw 的子網域, 並把 demo.abc.com.tw 的 DNS 伺服器指到 211.6.9.85

編輯 /var/named/db.abc.com.tw
$ORIGIN demo.abc.com.tw.
demo.abc.com.tw.     IN NS dns.demo.abc.com.tw.
dns.demo.abc.com.tw. IN A  211.6.9.85

避免成為 Open DNS servers

Open DNS servers 簡單來說,就是只要大家指向你為查詢伺服器,那麼你就會為大家努力的查詢,而且來者不拒。成為 Open DNS servers,一般除了 ISP 之外,其它私人或企業伺服器應該是不需要的。

以下設定,可以設定為只為 192.168.1.0/24 查詢,不為外界的連線查詢。

建立一個 acl:
root # vi /etc/named.conf
---------------/etc/named.conf-----------------------
#在檔案最上面加入 trusted 的 acl。
acl "trusted" {127.0.0.1; 192.168.1.0/24;};
----------------------------------------------------------
root #

在 option {}; 區段加入 allow-recursion 設定:
root # vi /etc/named.conf
---------------/etc/named.conf-----------------------
options {
~其它 option 設定~
allow-recursion { trusted; };
};
----------------------------------------------------------
root #

經過以上的設定之後,這台 DNS 就只會為 192.168.1.0/24 和 127.0.0.1 (本機) 查詢。



原文出處:bind - DNS 設定
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]簡易 DNS 伺服器設定(Bind)

Linux網管入門-簡易 DNS 伺服器設定(Bind)


一、DNS的原理
  我們知道電腦網路系統只認識所謂的 IP(如:140.128.55.2),
  但是您可能記得住網路上面所有主機的 IP 嗎?
  因為這四組數字是沒有什麼規則與意義的!!
  因此為了讓人類方便記憶,才會發展出可以經由主機名稱( hostname )對應到電腦 IP 的一個模式,
  這樣我們就可以輕輕鬆鬆的記住主機名稱即可,
  電腦 IP 那就交給 Domain Name System ( DNS )去搞定吧!!
  DNS tree架構圖
  

二、如何運用Linux內建之Bind來管理DNS
  在linux rpm的安裝之下,預設主設定檔是在/etc/named.conf,但是相關記錄路徑在/var/named之中。
  查詢方式:nslookup、dig
    nslookup進入後輸入正解和反解資料
  
    dig @ns1.tcrc.edu.tw ( 要透過的dns主機) www.nchu.edu.tw ( 要查詢的主機)
  

  預設啟動可以在後面路徑執行:/etc/rc.d/init.d/named start(stop、restart)
  通常只需要修改幾個地方即可完成設定:
  /var/named/chroot/etc/named.conf(DNS設定及路徑檔)
zone "xxx.tc.edu.tw" {
  type master;
  file "/var/named/xxx.tc.edu.tw.hosts";
  };
zone "xxx.128.140.in-addr.arpa" {
  type master;
  file "/var/named/140.128.xxx.rev";
  };

  /var/named/chroot/var/named/xxx.tc.edu.tw.hosts(正解檔)
$ttl 38400
xxx.tc.edu.tw. IN SOA dns.xxx.tc.edu.tw. root .mail.xxx.tc.edu.tw. (
   1094554582 //更新的序號,每次更新後必須比前次數值增大,通常可以用修改日期來設定
   10800 //多久進行更新一次
   3600 //多久主機主動進行確認,以便再更新一次
   604800 //超過多久時間主機都主動進行確認就放棄了

   38400 ) //最前面ttl沒有設定,就以此值為ttl之值
 //設定正解有幾種型態NS、A、CNAME、MX等…
 xxx.tc.edu.tw. IN NS dns.xxx.tc.edu.tw. //NS 表示 name server 的意思
 dns.xxx.tc.edu.tw. IN A 140.128.xxx.1 //A 表示一般正解的意思
 mail.xxx.tc.edu.tw. IN CNAME dns.xxx.tc.edu.tw. //同一個IP有兩個以上正解時設定
 xxx.tc.edu.tw. IN MX 10 mail.xxx.tc.edu.tw. //此網域中mail優先處理主機設定
  };

  /var/named/chroot/var/named/140.128.xxx.rev(反解檔)
$ttl 38400
xxx.128.140.in-addr.arpa. IN SOA dns.xxx.tc.edu.tw. root .mail.xxx.tc.edu.tw. (
   1094554582 //更新的序號,每次更新後必須比前次數值增大,通常可以用修改日期來設定
   10800 //多久進行更新一次
   3600 //多久主機主動進行確認,以便再更新一次
   604800 //超過多久時間主機都主動進行確認就放棄了
   38400 ) //最前面ttl沒有設定,就以此值為ttl之值
 //設定反解有幾種型態NS、PTR等…

 xxx.128.140.in-addr.arpa. IN NS dns.xxx.tc.edu.tw. //NS 表示 name server 的意思
 1.128.140.in-addr.arpa. IN A dns.xxx.tc.edu.tw. //A 表示一般正解的意思
  };


三、如何透過Webmin來設定簡易的DNS
  在WEBMIN可以從「伺服器」->「BIND 8 DNS 伺服器」中去設定。
  
  進入後畫面發現在bind的真正版本都已經9.X版了。
  
  進入後畫面如下,並先建立一個新的主控區域(Master)。
  
  選擇正解與反解兩項分別設定,並分別輸入網域名稱或IP網段,管理者電子郵件,完成後按下確定。
  
  在本身網域中,各台主機的DNS和IP對應就是透過A記錄來查詢。
  
  分別輸入主機 名稱 和 IP ,好了按確定。
  

  在此網段中主要負責網域名稱的主機,是由此設定。
  
  輸入此網域名稱和主要負責的主機名,在此以本機名稱為主。
  
  如果一台主機有兩個或以上的名稱,就可以透過CN(別名),來作設定。
  
  先輸入別名的名稱,後面是和那台主機相同。
  
  在webmin0.83以上,反解大都會自行更新,不過大家還是可以自已檢查一下,確認好後,再按下「套用變更」就可以正常。
  



原文出處: Linux網管入門-簡易 DNS 伺服器設定(Bind)
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Linux DNS(BIND)安裝與設定
Linux DNS(BIND)安裝與設定

一、 DNS介紹
網域名稱系統DNS(Domain Name System)是網際網路的一項核心服務,它作為可以將域名和IP位址相互對映的一個分布式資料庫,能夠使人更方便的存取網際網路,而不用去記住能夠被機器直接讀取的IP數串。
DNS 使用TCP和UDP埠53。

二、 系統配置
主機環境 :
Centos 5.6 32位元
Master Dns:192.168.1.122
Slave Dns:192.168.1.123
設定項目 :
Master Dns
Slave Dns

三、 DNS (BIND)設定方式
1. 安裝套件:
1.1 在開始設定DNS之前要先確認是否有以下套件
bind-utils、bind-chroot、bind、bind-libs
    [root@localhost ~]# rpm -qa | grep '^bind'
    bind-libs-9.3.6-16.P1.el5     #給 bind 與相關指令使用的函式庫
    bind-9.3.6-16.P1.el5          #這個是用戶端搜尋主機名稱的相關指令
    bind-chroot-9.3.6-16.P1.el5   #就是 bind 主程式所需軟體
    bind-utils-9.3.6-16.P1.el5    #將 bind 主程式限制在/var/named/chroot裡


基本上在安裝Linux時就會把以上四樣所需的安裝好。

若是沒有安裝的話請自行先行安裝
    安裝方式一:
    [root@localhost ~]# yum -y install bind bind-chroot bind-utils bind-libs

    安裝方式二:
    [root@localhost ~]# yum –y install  bind*


1.2 安裝caching-nameserver相關套件(一定要安裝)
    [root@localhost ~]# yum -y install caching-nameserver



2.設定master DNS Server
2.1 設定named.conf文件
先建立一個named.conf文件,然後在修改內容。
    [root@localhost ~]#  cd /var/named/chroot/etc/
    [root@localhost etc]# cp named.rfc1912.zones named.conf
    [root@localhost etc]# chown root:named named.conf


2.2 編輯DNS主要設定檔named.conf
黃色文字部份請依個人需求自行設定,想了解named.conf的設定方式可參考【DNS主要設定檔named.conf介紹】
    [root@localhost ~]#  vim /var/named/chroot/etc/named.conf
    // named.rfc1912.zones:
    // Provided by Red Hat caching-nameserver package
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    options {
                directory "/var/named";
                dump-file "/var/named/data/cache_dump.db";
                statistics-file "/var/named/data/named_stats.txt";
                query-source    port 53;
                query-source-v6 port 53;
                allow-query     { any; };
                version         "None of your business";
                forwarders { 168.95.1.1; 168.95.192.2; 8.8.8.8; };
             };

    zone "." IN {
            type hint;
            file "named.ca";
    };

    zone "localdomain" IN {
            type master;
            file "localdomain.zone";
            allow-update { none; };
    };

    zone "localhost" IN {
            type master;
            file "localhost.zone";
            allow-update { none; };
    };

    zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.local";
            allow-update { none; };
    };

    zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
            file "named.ip6.local";
            allow-update { none; }
    };

    zone "255.in-addr.arpa" IN {
            type master;
            file "named.broadcast";
            allow-update { none; };
    };

    zone "0.in-addr.arpa" IN {
            type master;
            file "named.zero";
            allow-update { none; };
    };

    #正解
    zone "faq-book.com.tw" IN {
            type master;
            file " faq-book.com.zone";
            also-notify {192.168.1.123;};
            allow-transfer {192.168.1.123;};
            allow-update { none; };
    };
    #反解
    zone "192.168.1.in-addr.arpa" IN {
            type master;
            file "192.168.1.local";
            also-notify {192.168.1.123;};
            allow-transfer {192.168.1.123;};
            allow-update { none; };
    };


2.3 建立正反解檔案
正反解檔案放在( /var/named/chroot/var/named)
    [root@localhost ~]#  cd /var/named/chroot/var/named/
    [root@localhost named]# cp localhost.zone faq-book.com.zone
    [root@localhost named]# cp named.local 192.168.1.local
    [root@localhost named]# chown root:named faq-book.com.zone 192.168.1.local


2.4編輯faq-book.com.zone 正解(請依照個人設定)
    [root@localhost ~]# cd /var/named/chroot/var/named/
    [root@localhost named]# vim faq-book.com.zone
    $TTL  3600
    @               IN SOA  ns.faq-book.com.  root.faq-book.com. (
                                   42              ; serial (d. adams)
                                   3H              ; refresh
                                   15M             ; retry
                                   1W              ; expiry
                                   1D )            ; minimum

                    IN NS           ns.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN NS           ns1.faq-book.com.
                    IN MX    5      mail
                    IN A            192.168.1.122
    ns              IN A            192.168.1.122
    ns1             IN A            192.168.1.123
    www             IN A            192.168.1.122
    mail            IN A            192.168.1.122
    blog            IN A            192.168.1.122
    ftp             IN CNAME        www


2.5 編輯192.168.1.local 正解
    [root@localhost ~]# cd /var/named/chroot/var/named/
    [root@localhost named]# vim 192.168.1.local
    $TTL    3600
    @       IN      SOA     ns.faq-book.com. root.faq-book.com.  (
                                    1997022700 ; Serial
                                    28800      ; Refresh
                                    14400      ; Retry
                                    3600000    ; Expire
                                    86400 )    ; Minimum

            IN      NS      ns.faq-book.com.
            IN      NS      ns1.faq-book.com.
    122     IN      PTR     faq-book.com.
    122     IN      PTR     blog.faq-book.com.
    122     IN      PTR     www.faq-book.com.
    122     IN      PTR     mail.faq-book.com.


3. 建立Slave DNS Server

3.1 設定named.conf文件
先建立一個named.conf文件,然後在修改內容。
    [root@localhost ~]#  cd /var/named/chroot/etc/
    [root@localhost etc]# cp named.rfc1912.zones named.conf
    [root@localhost etc]# chown root:named named.conf


3.2 編輯DNS主要設定檔named.conf,黃色文字部份請依個人需求自行設定
    [root@localhost ~]# vim /var/named/chroot/etc/named.conf
    // named.rfc1912.zones:
    // Provided by Red Hat caching-nameserver package
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    options {
                         directory "/var/named";
                         dump-file "/var/named/data/cache_dump.db";
                         statistics-file "/var/named/data/named_stats.txt";
                         query-source    port 53;
                         query-source-v6 port 53;
                         allow-query     { any; };
                         version         "None of your business";
                         forwarders { 168.95.1.1; 168.95.192.2; 8.8.8.8; };
    };

    zone "." IN {
           type hint;
           file "named.ca";
    };

    zone "localhost" IN {
           type master;
           file "localhost.zone";
           allow-update { none; };
    };

    #正解
    zone "faq-book.com" IN {
           type slave;
           file "slaves/faq-book.com.zone";
           masters { 192.168.1.122; };
    };
    #反解
    zone "192.168.1.in-addr.arpa" IN {
           type slave;
           file "slaves/192.168.1.local";
           masters { 192.168.1.122; };
    };


3.3 設定完這兩台DNS Server後就請啟動或是重新啟動dns服務。
    [root@localhost ~]#  /etc/init.d/named restart


4. 測試DNS
    [root@localhost ~]#  nslookup
    > server 127.0.0.1      #用本機的DNS做測試
    Default server: 127.0.0.1
    Address       : 127.0.0.1#53

    > faq-book.com
    Server:     127.0.0.1
    Address:         127.0.0.1#53

    Name:        faq-book.com
    Address:      192.168.1.122

    > set q=mx
    > faq-book.com
    Server:     127.0.0.1
    Address:         127.0.0.1#53

    faq-book.com    mail exchanger = 5 mail.faq-book.com.

    > set q=ns
    > faq-book.com
    Server:     127.0.0.1
    Address:         127.0.0.1#53
    faq-book.com    nameserver = ns.faq-book.com.
    faq-book.com    nameserver = ns1.faq-book.com.

    > set q=a
    > bolg.faq-book.com
    Server:     127.0.0.1
    Address:         127.0.0.1#53

    blog.faq-book.com   canonical name = www.faq-book.com.
    Name:   www.faq-book.com
    Address: 192.168.1.122


如果測試完DNS後都正常的話就表示大制上設定好了。

5.設定開機自動執行
    [root@localhost ~]#  chkconfig named on




原文出處:Linux DNS(BIND)安裝與設定(上) - iT邦幫忙::IT知識分享社群
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]鳥哥的 Master Slave DNS 設定教學
協同工作的 DNS: Slave DNS 及子網域授權設定

我們在本章一開始就曾談過,DNS 大概是未來最重要的網路服務之一,因為所有的主機名稱需求都得要 DNS 提供才行。 因此,ISP 在提供 domain name 註冊時,就強調得要有兩部以上的 DNS 伺服器才行。而為了簡化 DNS 管理人員的負擔, 使用 Master/Slave DNS 架構的情況會比較好!為什麼呢?讓我們再回憶一下 Slave DNS 的特色:

為了不間斷的提供 DNS 服務,你的領域至少需要有兩部 DNS 伺服器來提供查詢的功能;
承上,這幾部 DNS 伺服器應該要分散在兩個以上的不同 IP 網域才好;
為方便管理,通常除了一部主要 Master DNS 之外,其他的 DNS 會使用 slave 的模式;
slave DNS 伺服器本身並沒有資料庫,他的資料庫是由 master DNS 所提供的;
master/slave DNS 必需要可以相互傳輸 zone file 的相關資訊才行,這部份需要 /etc/named.conf 之設定輔助。

除此之外,如果你有朋友或者是學生想要跟你要一個子網域,那又該如何設定另一部 DNS 伺服器呢?就讓我們依序來談談囉~

master DNS 權限的開放

我們使用 19.4.3 的案例,繼續來架設一部支援該案例的 slave DNS 吧!基本的假設為:

提供 slave DNS 伺服器進行 zone transfer 的伺服器為 master.centos.vbird
centos.vbird 及 100.168.192.in-addr.arpa 兩個 zone 都提供給 slave DNS 使用
master.centos.vbird 的 named 僅提供給 slave.centos.vbird 這部主機進行 zone transfer
Slave DNS server 架設在 192.168.100.10 這部伺服器上面 (所以 zone file 要修訂)

如上所示,我們的 master.centos.vbird 這部伺服器除了 named.conf 需要調整之外,兩個 zone file 也都需要調整! 在 named.conf 當中,需要設定哪個 IP 可以對我的 zone 進行傳輸 (allow-transfer),而在 zone file 當中,就是各加入一筆 NS 的記錄即可!增加的部分如下所示:
# 1. 修訂 named.conf,主要修改 zone 參數內的 allow-transfer 項目
[root@www ~]# vim /etc/named.conf
....前面省略....
zone "centos.vbird" IN {
        type master;
        file "named.centos.vbird";
        allow-transfer { 192.168.100.10; };  // 在這裡新增 slave 的 IP
};
zone "100.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.100";
        allow-transfer { 192.168.100.10; };  // 在這裡新增 slave 的 IP
};

在上頭所列示的那兩個資料庫檔案當中,你必須要新增所需要的 NS 標誌才行!NS 對應的主機名稱為 slave.centos.vbird, IP 則是 192.168.100.10 呦!結果如下:
# 2. 在 zone file 裡面新增 NS 標誌,要注意需要有 A(正解) 及 PTR(反解) 的設定
[root@www ~]# vim /var/named/named.centos.vbird
$TTL    600
@                       IN SOA   master.centos.vbird. vbird.www.centos.vbird. (
                                 2011080402 3H 15M 1W 1D )
@                       IN NS    master.centos.vbird.
@                       IN NS    slave.centos.vbird.
master.centos.vbird.    IN A     192.168.100.254
slave.centos.vbird.     IN A     192.168.100.10
@                       IN MX 10 www.centos.vbird.
....(底下省略)....

[root@www ~]# vim /var/named/named.192.168.100
$TTL    600
@       IN SOA  master.centos.vbird. vbird.www.centos.vbird. (
                2011080402 3H 15M 1W 1D )
@       IN NS   master.centos.vbird.
@       IN NS   slave.centos.vbird.
254     IN PTR  master.centos.vbird.
10      IN PTR  slave.centos.vbird.
....(底下省略)....
# 要特別注意一件事,那就是,你的 zone file 內的序號要增加!鳥哥測試日期是 8/4,
# 第 2 次進行,所以序號就以該天的日期為準來設計的!最後記得 restart 一下啦!

[root@www ~]# /etc/init.d/named restart
[root@www ~]# tail -n 30 /var/log/messages | grep named
starting BIND 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 -u named -t /var/named/chroot
....(中間省略)....
zone 100.168.192.in-addr.arpa/IN: loaded serial 2011080402
zone centos.vbird/IN: loaded serial 2011080402
zone 100.168.192.in-addr.arpa/IN: sending notifies (serial 2011080402)
zone centos.vbird/IN: sending notifies (serial 2011080402)

反正重新啟動過 named 後,直覺記得就是要查閱 messages 登錄資訊就對了。從上表的輸出來看,會多一個 sending notifies (傳送注意事項) 關鍵字的資料,那就是提醒 slave DNS 來比對序號大小了!所以,你說,序號有沒有很重要呢?當然很重要啊! 連登錄訊息都會告知序號的大小哩!這樣 master DNS 就設定妥當囉!接下來玩玩 Slave 的設定吧!

Slave DNS 的設定與資料庫權限問題

既然 Slave DNS 也是 DNS 伺服器嘛!所以,當然也是需要安裝 bind, bind-chroot 等等的軟體! 這部份回去 19.3.1 裡面瞧瞧即可,反正記得使用 yum 安裝就對了。 接下來得要設定 named.conf 吧?而既然 Master/Slave 的資料庫是相同的,所以,理論上, named.conf 內容就是大同小異囉~ 唯一要注意的就是 zone type 類型的差異,以及宣告 master 在哪裡就是了。 至於 zone filename 部分,由於 zone file 都是從 master 取得的,透過 named 這個程式來主動建立起需要的 zone file,因此這個 zone file 放置的目錄權限就很重要!讓我們直接來處理看看:
# 1. 準備 named.conf 的內容:
[root@clientlinux ~]# vim /etc/named.conf
....(前面的部分完全與 master.centos.vbird 相同,故省略)....
zone "centos.vbird" IN {
        type slave;
        file "slaves/named.centos.vbird";
        masters { 192.168.100.254; };
};
zone "100.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/named.192.168.100";
        masters { 192.168.100.254; };
};

# 2. 檢查 zone file 預計建立的目錄權限是否正確!底下目錄為系統預設值:
[root@clientlinux ~]# ll -d /var/named/slaves
drwxrwx---. 2 named named 4096 2011-06-25 11:48 /var/named/slaves
# 注意權限、使用者以及群組三個欄位的資料!需要與 named 這個用戶及群組有關!

[root@clientlinux ~]# ll -dZ /var/named/slaves
drwxrwx---. named named system_u:object_r:named_cache_t:s0 /var/named/slaves
# 也不要忘記與 SELinux 有關的事情!

為了方便使用者設定,CentOS 預設在 /var/named/slaves/ 處理好了相關權限~所以你可以輕鬆的處理權限問題~ 我們就建議你的 slave zone file 放置在該目錄下!所以上表當中的 file 參數才會這麼寫~此外,那個 masters 結尾有個 s 喔!這裡最容易寫錯~那麼要不要處理 zone file 呢?除了 named.ca 這個 . 需要主動存在之外, 另外兩個 type slave 的資料庫檔案,當然不必存在啊!因為會從 master 處取得嘛!接下來,就讓我們來啟動 named 並進行觀察吧!
[root@clientlinux ~]# /etc/init.d/named start
[root@clientlinux ~]# chkconfig named on
[root@clientlinux ~]# tail -n 30 /var/log/messages | grep named
starting BIND 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 -u named -t /var/named/chroot
loading configuration from '/etc/named.conf'
....(中間省略)....
running
zone 100.168.192.in-addr.arpa/IN: Transfer started.
zone 100.168.192.in-addr.arpa/IN: transferred serial 2011080402
zone centos.vbird/IN: Transfer started.
zone centos.vbird/IN: transferred serial 2011080402  <==注意序號正確否
# 你會看到如上的訊息,重點是還有告知序號喔!非常重要!

[root@clientlinux ~]# ll /var/named/slaves
-rw-r--r--. 1 named named 3707 2011-08-05 14:12 named.192.168.100
-rw-r--r--. 1 named named  605 2011-08-05 14:12 named.centos.vbird
# 這兩個 zone file 會主動被建立起來呢!

[root@clientlinux ~]# dig master.centos.vbird @127.0.0.1
[root@clientlinux ~]# dig -x 192.168.100.254 @127.0.0.1
# 上述兩個檢測的指令如果是正確的顯示出 A 與 PTR 的話,那就完成了!

你瞧!如此一來你的 zone file 就會主動的被建立起來喔!未來如果你的 master DNS 要更新資料庫時, 只要修改過序號,並重新啟動 named 後,這部 slave DNS 就會跟著更新啦!啊!真是『福氣啦!』!! 不過,如果你發現到啟動 slave DNS 時,你的登錄資訊竟然是這樣:
zone centos.vbird/IN: Transfer started.
transfer of 'centos.vbird/IN' from 192.168.100.254#53: connected using
192.168.100.10#58187
dumping master file: tmp-a1bYfCd3i3: open: permission denied
transfer of 'centos.vbird/IN' from 192.168.100.254#53: failed while receiving
responses: permission denied
transfer of 'centos.vbird/IN' from 192.168.100.254#53: end of transfer

如果出現類似這樣的訊息時,不必懷疑啦!肯定是權限錯誤啦!請再次檢查你的資料庫檔案所放置的目錄權限是否可以讓 named 寫入啊!處理處理就好了!現在,你的 DNS 會變的更加強壯囉!因為有類似的備援系統囉~不過仍然要注意的是, 網路查詢 centos.vbird 時,master 與 slave 的地位是相同的,並不是 master 掛點才使用 slave 來查詢喔!所以,這兩部伺服器的相同 domain 的資料庫內容要完全一致才行!



原文出處:鳥哥的 Linux 私房菜 -- DNS Server
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|