Fedora8に内部向けのDNSサーバを構築したログ

Fedora8に内部向けのDNSサーバを構築しました。
手順やハマったところ等、今後の為にログを晒しておきます。

yumでインストール

[root]# yum -y install bind

最初から入ってたと思います。
いや、と言いますか、忘れました。

bind設定ファイル/etc/named.confの編集

[root]# vi /etc/named.conf

以下は/etc/named.confの内容です。

options {
        #listen-on port 53 { 127.0.0.1; };    ←コメントアウト
        #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";
        allow-query     {                     ←追加
                any;
        };
        forwarders      {           ←追加
                192.168.1.1;         ←ルータ   
                ***.***.***.*;        ←プロバイダー通知のDNSサーバ
                ***.***.***.*;        ←プロバイダー通知のDNSサーバ
        };
        recursion yes;
};


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

下のほうに移動。
###ここから###
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
###ここまで###


#以下を新たに記述。
view "internal" {
        match-clients {
                localhost;
                localnets;
        };
        recursion yes;

        zone "." IN {
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.zones";

        zone "hoge.jp" {
                type master;
                file "hoge.jp.lan";
                allow-update { none; };
        };
        zone "1.168.192.in-addr.arpa" {
                type master;
                file "1.168.192.in-addr.arpa.db";
                allow-update { none; };
        };
};

ゾーンファイルの作成

ファイル名は任意です。/etc/named.confで指定したファイル名になります。

[root]#vi /var/named/hoge.jp.lan
$TTL    86400
@       IN      SOA     hoge.jp. root.hoge.jp.(
                        2007031400
                        3600
                        900
                        604800
                        86400
)
                IN      NS              hoge.jp.
                IN      MX      10      hoge.jp.
                IN      A               192.168.1.5
center          IN      A               192.168.1.2
ap              IN      A               192.168.1.3
abc             IN      CNAME           hoge.jp.
xyz             IN      CNAME           hoge.jp.

DNSサーバhoge.jpのIPアドレスは192.168.1.5です。
192.168.1.2や192.168.1.3にはホスト名を指定しています。
また、hoge.jpに対して別名の『abc』『xyz』を指定しています。

[root]# vi /var/named/1.168.192.in-addr.arpa.db 
$TTL    86400
@       IN      SOA     hoge.jp. root.hoge.jp.(
                        2007031400
                        3600
                        900
                        604800
                        86400
)
       IN      NS              hoge.jp.
5      IN      PTR             hoge.jp.
2      IN      PTR             center.hoge.jp.
3      IN      PTR             ap.hoge.jp.

ルートDNSファイルの取得

最新のルートDNSファイルを取得して、ファイルを置き換えます。

[root]# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
[root]# mv named.root /var/named/named.ca
mv: `/var/named/named.ca' を上書きしてもよろしいですか(yes/no)? y

ネットワーク関連ファイルの修正

/etc/hosts

/etc/hostsを以下のように変更する。

#127.0.0.1    hoge         localhost.localdomain localhost
127.0.0.1                  localhost.localdomain localhost
127.0.0.1               localhost.localdomain localhost

のみを記述する。

/etc/resolv.conf

/etc/resolv.confに以下の記述をする。

[root]# vi /etc/resolv.conf
search hoge.jp
nameserver 192.168.1.5

searchはホスト名(abcやxyz)でアクセスした時にhoge.jpを補います。
nameserverは、DNSサーバのIPアドレスを指定します。

/etc/nsswitch.conf

/etc/nsswitch.confを以下のように変更する。

[root]# vi /etc/nsswitch.conf
#hosts: db files nisplus nis dns
hosts: files dns
/etc/host.conf

/etc/host.confに以下の記述をする。

# vi /etc/host.conf
order hosts,bind

bindサービスの起動

[root]# /etc/rc.d/init.d/named start

自動起動の設定

[root]# chkconfig named on

全然アクセスできない。

$ ssh hoge.jp

SELinux停止させる

[root]# vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

DNSサーバから他のサーバへはドメインでアクセス可能

DNSサーバ以外のサーバから他のサーバへはドメイン名でアクセス不能

解決

DNSサーバ以外のサーバへも、前述した『ネットワーク関連ファイルの修正』を実行し、
以下のコマンドを実行したら解決した。

[root]# /etc/rc.d/init.d/dhcdbd restart

クライアントサーバのOSがMacだと設定ファイルがなかったりしてよく分からなかったのだが、
システム環境設定のネットワークでDNSを『192.168.1.5』に検索ドメインを『hoge.jp』に指定して解決した。