Gentoo Logo

Gentoo BIND ガイド

目次:

1.  概要

ここではあなたのローカルネットワーク用とその他全世界用との二つの異なる設定が、 あなたのドメインを解決するbindで動くようにします。 このように一つのBINDで二つの異なるドメインへの名前解決をする為に、 viewという仕組みを利用します。一つのviewで内部(ローカルネットワーク)での名前解決のために使われ、 もう一つが外部(全世界)での名前解決のために使われます。

2.  例示で使われるデータ

キーワード 説明
YOUR_DOMAIN あなたのドメイン gentoo.org
YOUR_PUBLIC_IP ISPから提供されたグローバルIPアドレス 204.74.99.100
YOUR_LOCAL_IP ローカルのIPアドレス 192.168.1.5
YOUR_LOCAL_NETWORK ローカルのネットワークアドレス 192.168.1.0/24
SLAVE_DNS_SERVER あなたのドメインのスレーブDNSサーバのIPアドレス 209.177.148.228
ADMIN DNSサーバ管理者の名前 root
MODIFICATION zoneファイルを修正した日付と回数 2009062901

図 2.1: Network example

Fig. 1: network

3.  BINDを設定する

インストール

まずは、 net-dns/bindをインストールします。

コード表示 3.1: BINDのインストール

# emerge net-dns/bind

/etc/bind/named.confを設定する

BINDの設定で最初に行う事は、/etc/bind/named.confを編集することです。 この段階でまず行う事は、BINDのルートディレクトリの指定、IPアドレスと リッスンするポートの指定、pidファイルのパス、そしてIPv6に関する設定です。

コード表示 3.2: optionsセクションの設定

options {
        directory "/var/bind";

        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; YOUR_LOCAL_IP; };

        pid-file "/var/run/named/named.pid";
};

次に、ローカルネットワーク向けのviewを設定します。

コード表示 3.3: ローカルネットワークのview

view "internal" {
        match-clients { YOUR_LOCAL_NETWORK; localhost; };
        recursion yes;

        zone "YOUR_DOMAIN" {
                type master;
                file "pri/YOUR_DOMAIN.internal";
                allow-transfer { any; };
        };
};

更に、世界中の人が私たちのドメインの名前を解決出来て、私たちが世界中の他の ドメインをの名前を解決出来る様にする為に、(そして私たちのDNSサーバを 利用したいと思う誰かの為に)グローバルネットワーク向けのviewを設定します。

コード表示 3.4: グローバルネットワークのview

view "external" {
        match-clients { any; };
        recursion no;

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

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "YOUR_DOMAIN" {
                type master;
                file "pri/YOUR_DOMAIN.external";
                allow-query { any; };
                allow-transfer { SLAVE_DNS_SERVER; };
        };
};

そして最後に、ログ保存のポリシーを設定します。

コード表示 3.5: ログ保存のポリシー

logging {
        channel default_syslog {
                file "/var/log/named/named.log" versions 3 size 5m;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
       category default { default_syslog; };
};

ここで、/var/log/named/が存在し、namedがそのディレクトリの 所有権を持っている必要があります。

コード表示 3.6: ログファイルを作成する

# mkdir -p /var/log/named/
# chmod 770 /var/log/named/
# touch /var/log/named/named.log
# chmod 660 /var/log/named/named.log
# chown -R named /var/log/named/
# chgrp -R named /var/log/named/

ローカルネットワーク向けのzoneファイルを作成する

ここでは、上の画像で例示されているホスト名とIPアドレスを利用しています。 全てではありませんが、殆どのドメイン名は"."(ドット)で終了している事に注意してください。

コード表示 3.7: /var/bind/pri/YOUR_DOMAIN.internal

$TTL 2d
@	IN SOA	ns.YOUR_DOMAIN.	ADMIN.YOUR_DOMAIN. (
	MODIFICATION	; serial
	3h	; refresh
	1h	; retry
	1w	; expiry
	1d )	; minimum

YOUR_DOMAIN.		IN MX	0 mail.YOUR_DOMAIN.
YOUR_DOMAIN.		IN TXT	"v=spf1 ip4:YOUR_PUBLIC_IP/32 mx ptr mx:mail.YOUR_DOMAIN ~all"
YOUR_DOMAIN.		IN NS	ns.YOUR_DOMAIN.
YOUR_DOMAIN.		IN NS	SLAVE_DNS_SERVER
www.YOUR_DOMAIN.	IN A	192.168.1.3
ns.YOUR_DOMAIN.		IN A	192.168.1.5
mail.YOUR_DOMAIN.	IN A	192.168.1.3
router.YOUR_DOMAIN.	IN A	192.168.1.1
hell.YOUR_DOMAIN.	IN A	192.168.1.3
heaven.YOUR_DOMAIN.	IN A	192.168.1.5
desktop.YOUR_DOMAIN.	IN A	192.168.1.4

グローバルネットワーク向けのzoneファイルを作成する

ここでは、外部のクライアント向けに必要なサブドメイン(www, mail そして ns)を指定するだけです。

コード表示 3.8: /var/bind/pri/YOUR_DOMAIN.external

$TTL 2d
@	IN SOA	ns.YOUR_DOMAIN.	ADMIN.YOUR_DOMAIN. (
	MODIFICATION	;serial
	3h	;refresh
	1h	;retry
	1w	;expiry
	1d )	;minimum

YOUR_DOMAIN.		IN MX	0 mail.YOUR_DOMAIN.
YOUR_DOMAIN.		IN TXT	"v=spf1 ip4:YOUR_PUBLIC_IP/32 mx ptr mx:mail.YOUR_DOMAIN ~all"
YOUR_DOMAIN.		IN NS	ns.YOUR_DOMAIN.
YOUR_DOMAIN.		IN NS	SLAVE_DNS_SERVER
www.YOUR_DOMAIN.	IN A	YOUR_PUBLIC_IP
ns.YOUR_DOMAIN.		IN A	YOUR_PUBLIC_IP
mail.YOUR_DOMAIN.	IN A	YOUR_PUBLIC_IP

その他の設定と起動

namedをデフォルトのランレベルに追加する必要があるでしょう。

コード表示 3.9: デフォルトのランレベルへの追加

# rc-update add named default

4.  クライアントの設定

この時点で、あなたはローカルネットワークの全てのマシンから、名前解決の為にあなたの DNSサーバを利用する事が出来ます。ローカルネットワーク上のマシンの /etc/resolv.confを編集してください。

コード表示 4.1: /etc/resolv.conf の編集

search YOUR_DOMAIN
nameserver YOUR_DNS_SERVER_IP

YOUR_DNS_SERVER_IP は、ドキュメントで出て来たYOUR_LOCAL_IP と同一であり、 上の画像においては 192.168.1.5 となる事に注意してください。

5.  テストをする

新しいDNSサーバのテストを行います。まず、BINDのサービスを起動します。

コード表示 5.1: 手動でBINDを起動する

# /etc/init.d/named start

BINDが適切に設定されているかのテストの為に、いくつかのドメインに対してhost コマンドを発行します。このテストは、ローカルネットワーク内のどのコンピュータでも 可能です。もしあなたが net-dns/host をインストールしていない場合は、代わりに pingを利用することも可能です。pingが嫌ならば、まずemerge hostを実行しましょう。

コード表示 5.2: テストの実行

$ host www.gentoo.org
www.gentoo.org has address 209.177.148.228
www.gentoo.org has address 209.177.148.229

$ host hell
hell.YOUR_DOMAIN has address 192.168.1.3

$ host router
router.YOUR_DOMAIN has address 192.168.1.1

6.  iptablesでサーバを保護する

もしあなたがiptablesでサーバを保護しているのなら、DNSサービスを保護する為に 以下のルールを追加するといいでしょう。

コード表示 6.1: iptablesのルール

iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT


印刷

ページの更新日 2009年 8月 21日

この翻訳はすでにメンテナンスされていません。

要約: このガイドでは、あなたのドメインやローカルネットワークの為にBINDをインストールし、設定する方法を紹介します。

Vicente Olivert Riera
Author

Joshua Saddler
Editor

城間隆行
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.