Friday, October 22, 2010

RHEL5/CentOS5 mail server 1 - DNS


1 . DNS設定條件

主機設定資訊



主機名稱 :  dns.test.com.tw
IP       :  192.168.239.170
Netmask  :  255.255.255.0
Gateway  :  192.168.239.2
    DNS      :  168.95.1.1

DNS設定資訊
  domain name   : test.com.tw
  dns 主機名稱  : dns.test.com.tw  >  192.168.239.170
  mail 主機名稱 : mail.test.com.tw >  192.168.239.170
  MX 標籤       : mail.test.com.tw (10)

  domain name   : example.com.tw
  dns 主機名稱  : dns.example.com.tw  >  192.168.239.170
  mail 主機名稱 : mail.example.com.tw >  192.168.239.180
  MX 標籤       : mail.example.com.tw (10)

2 . 掛載光碟
# mkdir /cdrom
# mount /dev/cdrom /cdrom
# cd /cdrom/CentOS/

3 . DNS 所需套件 BIND 及設定檔讀取流程
# rpm -ivh bind-9.3.4-6.P1.el5.i386.rpm bind-chroot-9.3.4-6.P1.el5.i386.rpm caching-nameserver-9.3.4-6.P1.el5.i386.rpm

開機自動啟動
# chkconfig named on

DNS服務重新啟動
# service named restart

3.1 Bind 設定檔圖取流程
Bind 8 含以前的版本所讀取設定檔的流程
Zone File 領域設定檔  ->  Resource Record File 正反解領域資料庫

Bind 9 讀取設定檔流程
Configuration File參數設定檔 -> Zone File領域設定檔 -> Resource Record File正反解資料庫

4 . Configuration File 設定
舊版設定中,named.conf包含了參數以及領域設定,但是新版 BIND 9 把[領域設定] 變成可獨立出去的項目了。

查詢  ->  比對Configuration File條件  ->  提供符合條件的領域資料

bind9預設讀取的設定檔是 named.caching-nameserver.conf,變更設定可以利用此檔為範本。

# cd /var/named/chroot/etc/
# cp -a named.caching-nameserver.conf named.conf
# vi named.conf

options {
        listen-on port 53 { 127.0.0.1; 192.168.239.170; };       #啟用服務的IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { localhost; any; };                   #允許查詢的範圍
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

view localhost_resolver {
        match-clients      { localhost; any; };       #來源位置的比對
        match-destinations { localhost; any; };       #目的位置的比對
        recursion yes;                                #遞迴查詢(是否可以查詢正反解資料庫以外的名稱)
        include "/etc/named.zones";                   #符合上面比對所提供的zone檔案

5  test.com.tw 正解領域設定
   5.1 在 named.zones 領域設定檔中新增 test.com.tw
      在 named.zones 領域設定檔中新增 test.com.t,並且指定所要提供的資料庫檔案
# cd /var/named/chroot/etc/
# cp -a named.rfc1912.zones named.zones
# vi named.zones

在檔案的最底下加入以下設定

zone "test.com.tw" IN {
        type master;
        file "test.com.tw.hosts";
        allow-update { none; };
};





  5.2  設定 test.com.tw 正解資料庫
  # cd /var/named/chroot/var/named/
# cp -a localhost.zone test.com.tw.hosts
# vi test.com.tw.hosts

$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
test.com.tw.            IN NS           dns.test.com.tw.
test.com.tw.            IN MX 10        mail.test.ocm.tw.
dns.test.com.tw.        IN A            192.168.239.170
mail.test.com.tw.       IN A            192.168.239.170

6  192.168.237.0  反解領域設定
  6.1 在 named.zones 領域設定檔中新增 192.168.237.0 反解領域
# cd /var/named/chroot/etc/
# vi named.zones
在檔案的最底下加入以下設定
zone "239.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.239.arpa";
        allow-update { none; };
};

  6.2  設定 192.168.239.0 反解資料庫
# cd /var/named/chroot/var/named/
# cp -a localhost.zone 192.168.239.arpa
# vi 192.168.239.arpa
$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           dns.test.com.tw.
70              IN PTR          dns.test.com.tw.
75              IN PTR          mail.test.com.tw.
80              IN PTR          mail.example.com.tw.


7 . 新增一個領域 example.com.tw 在同一台DNS上
一般維護常遇到的大多是只有一個網域,但是多少會遇到一些公司有兩個網域名稱但是只有一台

DNS機器。對於mail寄送而言,只要兩個領域都找的到 MX A 資源紀錄,郵件的寄送過程只有名稱解析內容不同而已,郵件寄送的過程都一樣。


7.1 在 Zone File領域設定檔 中新增example.com.tw的設定
# cd /var/named/chroot/etc/
# vi named.zones

在檔案的最底下加入以下設定
zone "example.com.tw" IN {
        type master;
        file "example.com.tw.hosts";
        allow-update { none; };
};


7.2 新增 example.com.tw 的正解資料庫
# cd /var/named/chroot/var/named/
# cp -a localhost.zone example.com.tw.hosts
# vi example.com.tw.hosts

$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                            IN NS           dns.example.com.tw.
@                           IN MX 10        mail.example.com.tw.
dns.example.com.tw.         IN A            192.168.239.170
mail.example.com.tw.        IN A            192.168.239.180