ご契約中のお客さま

BIND9の設定 (UNIX)

UNIX系OSでBIND8又はBIND9を利用しDNSサーバーを構築する設定例を紹介します。
前提とするネットワーク環境例はDNSサーバー設定方法 トップページをご覧ください。

DNSサーバー構築設定例

UNIX系OSでBIND9を利用し権威DNSサーバーを構築する設定例を紹介します。

1.入手先

BINDの開発元Internet Software Consortium(ISC)は以下です。ソースを入手しコンパイルする方法やご利用OS用のパッケージで導入する方法等あります。ご利用環境にあわせて導入してください。
セキュリティの観点からも最新のバージョンを使うことを推奨します。

Internet Software Consortium(ISC)
InterNIC

2.設定ファイルの構成

/etc/named.conf
  - namedプログラムの設定ファイル
/var/named/named.root
  - ルートキャッシュファイル(予めダウンロードしておいたファイルを/var/named/に保存
/var/named/example.com.zone
  - ドメイン「example.com」の正引きゾーンファイル
/var/named/32.69.168.192.in-addr.arpa.zone
  - ネットワーク「192.168.69.32/28」の逆引きゾーンファイル
/var/named/localhost.zone
  - ループバックアドレス「127.0.0.1」の正引きゾーンファイル
/var/named/0.0.127.in-addr.arpa.zone
- ループバック「127.0.0.1」の逆引きゾーンファイル

3.権威DNSサーバーのみ運用している場合

■ named.confファイルの設定

//======================================
// /etc/named.conf
//======================================
//optionsでDNS全般の設定をします.
options {
directory "/var/named";
version "unknown"; //BINDのバージョン情報を公開しない
recursion no; //再帰検索要求は受け付けない
allow-query {any;}; //どこからの問合せも受け付ける
allow-transfer {
192.168.69.32/28; //お客様のネットワーク
10.20.20.2/32; //弊社セカンダリDNS
};
};
//ルートキャッシュファイルを指定します.
zone "." in {
type hint;
file "named.root";
};
//ループバックアドレス「127.0.0.1」の正引きゾーンをプライマリとして設定します.
zone "localhost" in {
type master;
file "localhost.zone";
};
//ループバックアドレス「127.0.0.1」の逆引きゾーンをプライマリとして設定します.
zone "0.0.127.in-addr.arpa" in {
type master;
file "0.0.127.in-addr.arpa.zone";
};
//ドメイン「example.com」の正引きゾーンをプライマリとして設定します.
zone "example.com" in {
type master;
file "example.com.zone";
};
//ネットワーク「192.168.69.32/28」の逆引きゾーンをプライマリとして設定します.
//OCNサービスをご利用でクラスC未満のIPアドレスご利用の場合,
//ネットワークアドレス全て(4オクテット)を使ってゾーン名を設定します.

zone "32.69.168.192.in-addr.arpa" in {
type master;
file "32.69.168.192.in-addr.arpa.zone";
};

※設定変更したあとに named .confファイルを reload/restartして変更を反映させます。

■ 各ゾーンファイルの設定

各ゾーンの設定ファイルは、named.confの設定により保存先ディレクトリとファイル名が決まります。
SOAレコードのSerial番号は、ゾーンデータを変更する都度必ず増加させてください。特にセカンダリDNS運用開始後の増加忘れは、セカンダリとのゾーンデータの不一致が起こります。

;===========================================================
; ドメイン「example.com」の正引きゾーン
; /var/named/example.com.zone
;===========================================================

$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1 ;Serial
  10800 ;Refresh
  3600 ;Retry
  604800 ;Expire
  3600 ;Negative cache TTL
  )
; Authoritative Name Servers
  IN NS pdns.example.com.
  IN NS sdns.ocn.ad.jp.
  ; Mail exchanger
  IN MX 10 pdns.example.com.
; Hosts
pdns IN A 192.168.69.34
host1 IN A 192.168.69.35
www IN CNAME pdns.example.com.
mail IN CNAME pdns.example.com.

;===========================================================
; ネットワーク「192.168.69.32/28」の逆引きゾーン
; /var/named/32.69.168.192.in-addr.arpa.zone
;===========================================================

$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1  ;Serial
  10800  ;Refresh
  3600  ;Retry
  604800  ;Expire
  3600  ;Negative cache TTL
  )
; Authoritative Name Servers
  IN  NS  pdns.example.com.
  IN  NS  sdns.ocn.ad.jp.
; Hosts
34  IN  PTR  pdns.example.com.
35  IN  PTR  host1.example.com.

;===========================================================
; ループバックアドレス「127.0.0.1」の正引きゾーン
; /var/named/localhost.zone
;===========================================================

$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1  ;Serial
  10800  ;Refresh
  3600  ;Retry
  604800  ;Expire
  3600  ;Negative cache TTL
  )
  IN  NS  localhost.
  IN  A  127.0.0.1

;===========================================================
; ループバックアドレス「127.0.0.1」の逆引きゾーン
; /var/named/0.0.127.in-addr.arpa.zone
;===========================================================

$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1  ;Serial
  10800  ;Refresh
  3600  ;Retry
  604800  ;Expire
  3600  ;Negative cache TTL
  )
  IN  NS  localhost.
1  IN  PTR  localhost.

4.キャッシュDNSサーバーのみ運用している場合

再帰検索要求に対して答える必要のあるアドレス帯のみ許可するようにします。
下記は、192.168.1.0/24のアドレス帯からのみ再起検索要求に対して答える設定例です。

■ named.confの設定

//======================================
// /etc/named.conf
//======================================
//optionsでDNS全般の設定をします.
options {
directory "/var/named";
version "unknown"; //BINDのバージョン情報を公開しない
recursion yes; //再帰検索要求を受け付ける
allow-query { 192.168.1.0/24; }; //192.168.1.0/24以外からの問い合わせを受け付けない
};

//ルートキャッシュファイルを指定します.
zone "." in {
  type hint;
  file "named.root";
};
//ループバックアドレス「127.0.0.1」の正引きゾーンをプライマリとして設定します.
zone "localhost" in {
  type master;
  file "localhost.zone";
};
//ループバックアドレス「127.0.0.1」の逆引きゾーンをプライマリとして設定します.
zone "0.0.127.in-addr.arpa" in {
  type master;
  file "0.0.127.in-addr.arpa.zone";
};

※設定変更したあとに named .confファイルを reload/restartして変更を反映させます。

■ 各ゾーンファイルの設定

各ゾーンの設定ファイルは、named.confの設定により保存先ディレクトリとファイル名が決まります。

;===========================================================
; ループバックアドレス「127.0.0.1」の正引きゾーン
; /var/named/localhost.zone
;===========================================================
$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1  ;Serial
  10800  ;Refresh
  3600  ;Retry
  604800  ;Expire
  3600  ;Negative cache TTL
  )
  IN  NS  localhost.
  IN  A  127.0.0.1

;===========================================================
; ループバックアドレス「127.0.0.1」の逆引きゾーン
; /var/named/0.0.127.in-addr.arpa.zone
;===========================================================
$TTL 86400
@ IN SOA pdns.example.com. postmaster.example.com. (
  1  ;Serial
  10800  ;Refresh
  3600  ;Retry
  604800  ;Expire
  3600  ;Negative cache TTL
  )
  IN  NS  localhost.
1  IN  PTR  localhost.

5.権威DNSサーバーとキャッシュDNSサーバーを併用して運用している場合

基本的には権威DNSサーバーとキャッシュDNSサーバーは別々に立ち上げることを推奨しますが、様々な事情によりやむを得なく権威DNSとキャッシュDNSを1つのDNSサーバーで併用する場合は、下記のようにview機能を利用することで、オープンリゾルバーを回避することができます。
下記は、192.168.1.0/24のアドレス帯と自DNSサーバーからのみ再起検索要求に対して答える設定例です。

■ named.confの設定

//======================================
// /etc/named.conf
//======================================
options {
一部抜粋
allow-query { any; }; //どこからの問合せも受け付ける
version "unknown"; //BINDのバージョン情報を公開しない
  };
};
view "internal" { //内部向けの動作を定義する
  match-clients { //内部と定義するアドレス帯を指定
    127.0.0.1;
    192.168.1.0/24; //お客様ネットワーク
  };
  recursion yes; //再帰検索要求を受け付ける
  zone "." in {
    type hint;
    file "named.root";
  };
  zone "localhost" in {
    type master;
    file "localhost.zone";
  };
  zone "0.0.127.in-addr.arpa" in {
    type master;
  };
  zone "example.com" in {
    type master;
    file "example.com.zone";
  };
  zone "32.69.168.192.in-addr.arpa" in {
    type master;
    file "32.69.168.192.in-addr.arpa.zone";
  };
};
view "external" { //外部向けの動作を定義する
  match-clients {
    any;
  };
  recursion no; //再帰検索要求を受け付けない
  zone "localhost" in {
    type master;
    file "localhost.zone";
  };
  zone "0.0.127.in-addr.arpa" in {
    type master;
    file "0.0.127.in-addr.arpa.zone";
  };
  zone "example.com" in {
    type master;
    file "example.com.zone";
  };
  zone "32.69.168.192.in-addr.arpa" in {
    type master;
    file "32.69.168.192.in-addr.arpa.zone";
  };
};

※設定変更したあとに named .confファイルを reload/restartして変更を反映させます。

ページトップへ戻る