2005年04月16日

DNSサーバー

7490317c.jpg
Linux歴も半年になると一生自分には理解できないと思われたような事が、不思議に自然と分かってきます。
多分自宅サーバーを構築する時の最初の壁は、ルーターのポート・フォワーディング設定だと思います。
これを最初からiptablesを使ってNIC2枚でPCルーターで構築しようとすると、難易度は10倍くらいに上がってしまいます。
あと個別のWeb,Mail,ssh,ftp,Samba,WebDAV,Squidのサーバー等は最近は非常に分かり易い設定のHow toサイトがあるので,僕も分厚い本を読むことなく大いに助けられました。
そしてその次の壁はDNSの設定ではないかと思います。
これは単純に見えて本当に奥が深く、正直一番苦しみました。
Googleで検索しても何故かプロバイダーのように個別の2つの固定IP、ns1とns2とで複数のネームサーバーを分かりやすく設定する方法が検索できません。
 
 またあまりに丁寧過ぎて設定が面倒な方法が多いので,
内部向けの設定等が不要な場合ならばこれ以上記述を削れない限界まで簡易に設定する方法を試してみました。
テストしたのはFedora Coreの1と3ですが、多分2でも問題ないと思います。
ここでの2つの固定IPは別の場所にあり、両方とも逆引き出来ない固定IPです。
逆引きの設定が必要な場合は以下にその設定を加えて下さい。
 
 
 
※プライマリDNSサーバー設定
/var/named/chroot/etc/named.conf
 
options {
        directory "/var/named";
        allow-query { any ; };
        allow-transfer { xxx.xxx.xxx.xxx; };←セカンダリーDNSサーバーIP
    notify yes;
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};
// domain1の正引きゾーン情報
zone "domain1" IN {
type master;
file "domain1.db";
};

// domain2の正引きゾーン情報
zone "domain2" IN {
type master;
file "domain2.db";
};

// domain3の正引きゾーン情報
zone "domain3" IN {
type master;
file "domain3.db";
};
 
 
ルートゾーンzoneファイル FCの場合named.caはインストール済み
 
[root@linux ~]# dig > /var/named/chroot/var/named/named.ca
で最新化が可能
 
127.0.0.zoneファイル(ローカルループバック)
 
$TTL    3600
@       IN      SOA     ns.domain1. root.domain1.  (
                                      2005041601 ; Serial
                                      3600       ; Refresh
                                      900        ; Retry
                                      604800     ; Expire
                                      3600 )     ; Minimum
              IN      NS      ns.domain1.
3             IN      PTR     localhost. ←左の3はプライマリのサーバープライベートIPアドレス
                      (例:192.168.0.3の末尾番号)を指定
domain1.dbゾーンファイル設定
 
$TTL    86400
@       IN   SOA    ns.domain1. root.domain1.(
                   2005041601 ; Serial
                      7200   ; Refresh
                       7200   ; Retry
                     2419200  ; Expire
                    86400 )  ; Minimum
    IN   NS       ns.domain1.
    IN   NS       ns.domain2.
    IN   MX  10   domain1.
@   IN    A       domain1のグローバルIPアドレス
*   IN   A       domain1のグローバルIPアドレス

domain2.dbゾーンファイル設定

$ORIGIN domain2.
$TTL 86400
@    IN    SOA      ns.domain1.  root.domain2.(
                    2005041601 ; Serial
                       7200 ; Refresh
                        7200 ; Retry
                      2419200 ; Expire
                     86400 ) ; Minimum
     IN    NS         ns.domain1.
     IN    NS         ns.domain2.
     IN    MX   10     domain2.
@     IN     A        domain2グローバルIPアドレス
*     IN      A        domain2グローバルIPアドレス

domain3.dbゾーンファイル設定

$ORIGIN domain3.
$TTL 86400
@    IN       SOA    ns.domain1. root.domain3.(
                       2005041202 ; Serial
                          7200 ; Refresh
                           7200 ; Retry
                         2419200 ; Expire
                        86400 ) ; Minimum
    IN       NS       ns.domain1.
    IN       NS       ns.domain2.
    IN      MX  10    domain3.
@    IN      A         domain3グローバルIPアドレス
*    IN      A          domain3グローバルIPアドレス
 
※セカンダリDNSサーバー設定
/var/named/chroot/etc/named.conf

options {
        directory "/var/named";
    allow-query { any ; };
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};
 
// domain1のスレーブ設定
zone "domain1" IN {
type slave;
file "slaves/domain1.bak";
masters { xxx.xxx.xxx.xxx; };←プライマリDNSサーバーIP
};
// domain2のスレーブ設定
zone "domain2" IN {
type slave;
file "slaves/domain2.bak";
masters { xxx.xxx.xxx.xxx; };←プライマリDNSサーバーIP
};
// domain3のスレーブ設定
zone "domain3" IN {
type slave;
file "slaves/domain3.bak";
masters { xxx.xxx.xxx.xxx; };←プライマリDNSサーバーIP
};
 
ルートゾーンzoneファイル named.caはプライマリと同じ
 
127.0.0.zoneファイル(ローカルループバック)
 
$TTL    3600
@       IN      SOA     ns.domain2. root.domain2.  (
                                      2005041601 ; Serial
                                      3600       ; Refresh
                                      900        ; Retry
                                      604800     ; Expire
                                      3600 )     ; Minimum
              IN      NS      ns.domain2.
10            IN      PTR     localhost. ←左の10はプライマリのサーバープライベートIPアドレス
                      (例:192.168.0.10の末尾番号)を指定

上手く動作するとdomain#.bak ファイルは瞬時に/var/named/chroot/var/named/slaves に自動的に作られます。
 


yataka1 at 17:43│TrackBack(0)自宅サーバー 

トラックバックURL

この記事へのコメント

1. Posted by 週刊!ブログランキング管理人   2005年04月30日 20:22
初めまして、突然申し訳ありません。

2週間ほど前から「週刊!ブログランキング」の運用を行っております。
貴サイト様を拝見させて頂きまして大変興味深いブログだと感じました。
宜しければ当ランキングに参加登録して頂けませんでしょうか?
○ http://kutsulog.net/

更新情報の通知設定に対応してますのでPING送信して頂ければ、
記事タイトルや更新状況を表示し、カテゴリ毎に新着記事ヘッダーがご紹介されます。
ご参加されていない方もカテゴリ毎にブログチェックが出来る等、
ご紹介機会が単なるランキングと違い多くあるのが特徴です。

また、当サイトも、ご参加サイト様からのアクセスに頼るだけのランキングサイトでは無く、
SEO対策・メルマガ・雑誌広告など広範にサイトプロモーションを行い、独自のアクセス強化を図っていきます。

是非、ご登録を宜しくお願い致します。