BIND (日本語) - ArchWiki

# BIND (日本語)

Berkeley Internet Name Domain (BIND) は Domain Name System(DNS) プロトコルのリファレンス実装です。

## インストール

以下の手順は BIND をインストールしてローカルキャッシュサーバーとして設定する方法です。

公式リポジトリにある bind パッケージをインストールしてください。

必要に応じて `/etc/named.conf` を編集してローカルホストからしか接続を受け付けないように、以下のようなセクションを追加してください:

    listen-on { 127.0.0.1; };

設定した DNS サーバーを使うために `/etc/resolv.conf` を編集します:

    nameserver 127.0.0.1

named デーモンを起動します。

## デーモンを実行するための設定テンプレート

これは BIND でシンプルなホームネットワーク DNS サーバーを作成するための手順です。この例では "domain.tld" というドメインを使用しています。

もっと詳しい説明が欲しい方は Two-in-one DNS server with BIND9 を参照してください。

### 1. zone ファイルを作成する

    # nano /var/named/domain.tld.zone

    $TTL 7200
    ; domain.tld
    @       IN      SOA     ns01.domain.tld. postmaster.domain.tld. (
                                            2007011601 ; Serial
                                            28800      ; Refresh
                                            1800       ; Retry
                                            604800     ; Expire - 1 week
                                            86400 )    ; Minimum
                    IN      NS      ns01
                    IN      NS      ns02
    ns01            IN      A       0.0.0.0
    ns02            IN      A       0.0.0.0
    localhost       IN      A       127.0.0.1
    @               IN      MX 10   mail
    imap            IN      CNAME   mail
    smtp            IN      CNAME   mail
    @               IN      A       0.0.0.0
    www             IN      A       0.0.0.0
    mail            IN      A       0.0.0.0
    @               IN      TXT     "v=spf1 mx"

$TTL (Time to Live) は全てのレコードのデフォルトのパケットの有効期間を秒単位で定義します。この例では7200秒 (2時間) となっています。

Serial は zone レコードを変更し named デーモンを再起動するたびに手動で増やしてください。忘れるとスレーブサーバーに zone 情報が転送されません。スレーブサーバーへの zone 転送は最後に転送された時間から値が増えていなければ転送されません。

### 2. マスターサーバーを設定する

`/etc/named.conf` に zone を追加してください:

    zone "domain.tld" IN {
            type master;
            file "domain.tld.zone";
            allow-update { none; };
            notify no;
    };

完了したらデーモンを再起動してください。

### 3. デフォルトの DNS サーバーに設定

DNS サーバーを動かしている場合、全ての DNS ルックアップでそのサーバーを使ってみたいと思うかもしれません。これには recursive なルックアップをできるようにする必要があります。DNS 増幅攻撃 をふせぐため、ほとんどのリゾルバでは recursion はデフォルトでオフになっています。デフォルトの Arch の `/etc/named.conf` ファイルではループバックデバイスでだけ recursion を許可しています:

    allow-recursion { 127.0.0.1; };

そのため、ホストから一般的な DNS ルックアップを使えるようにするには、`/etc/resolv.conf` ファイルに次の行を記述する必要があります:

    nameserver 127.0.0.1

`/etc/resolv.conf` は生成されるファイルなので、`/etc/resolvconf.conf` を編集して次の行をアンコメントしてください:

    # name_servers=127.0.0.1

`/etc/resolvconf.conf` は再起動時に適当に設定されます。

ローカルネットワーク 192.168.0 などにネームサービスを提供したい場合、IP アドレスの適当な範囲を `/etc/named.conf` に追加してください:

    allow-recursion { 192.168.0.0/24; 127.0.0.1; };

## 簡単な DNS 転送

もし VPN への接続などで問題が生じた場合、転送 DNS サーバーを建てることによって解決することができるでしょう。BIND を使えば簡単です。以下の行を `/etc/named.conf` のグローバルな options セクションか、特定のゾーンのところに追加してください、IP アドレスは置き換えて下さい。

    options {
     listen-on { 192.168.66.1; };
     forwarders { 8.8.8.8; 8.8.4.4; };
    };

完了したらデーモンを再起動してください。

## chroot 環境で実行する

chroot で実行することは必須ではありませんが、セキュリティが向上します。BIND (chroot) をみて実施してください。

## BIND を DNSSEC に対応させる

DNSSEC#BIND (serving signed DNS zones) を見てください。

## 新しいインターフェイスに自動で接続

デフォルトで bind は新しいインターフェイスをスキャンし、数時間たったらインターフェイスを切断します。以下を追加することでこの値を調整できます:

    interface-interval <rescan-timeout-in-minutes>;

`named.conf` の options セクションにパラメータを追加してください。最大値は28日間 (40320分) です。値を0に設定することで機能を無効にすることもできます。

設定を変更したらサービスを再起動して下さい。

## 関連項目

- BIND (chroot)

## BIND の資料

- BIND 9 DNS Administration Reference Book
- DNS and BIND by Cricket Liu and Paul Albitz
- Pro DNS and BIND
- Internet Systems Consortium, Inc. (ISC)
- DNS Glossary

Category:

- Domain Name System (日本語)