Linux

bind、DNSサーバーについて(CentOS6)

目次

トップレベルドメインリストの入手

ftp://ftp.rs.internic.net/domain/

から入手。

named.root

がそのファイル。
当サーバーではこのファイルを

named.ca

として名前を変更して使用する。

ドメイン名の登録確認

  1. IANA(Internet Assigned Numbers Authority) が管理している国名コード(ccTLD)のリストは、http://www.iana.org/domains/root/db で確認できる。
  2. whois domain-name でも検索できる(らしい)
    (自分の環境ではだめだった。)
  3. whois 以外では、
    dig ns domain-name
    でもいけるようだ。

bind のバージョン確認

named -v

named.conf

  1. ネームサーバーのワーキングディレクトリ設定
    options {
             directory "/var/named";
    };
  2. root ヒントファイルの設定
    zone "."  in {
                 type hint;
                 file "named.ca";
    };
  3. プライマリマスタネームサーバー
    zone "foo.example"  {
               type  master;
               file "db.foo.example";
    };
  4. スレーブネームサーバー
    zone "foo.example"  {
               type  slave;
               masters { 192.168.0.1; };
               file "bak.foo.example";
    };

ゾーンデータの作成

  1. $TTL の指定(1日)
    1. 単位を省略して整数のみを記載すると秒の意味
      $TTL 86400     ; 1 day
    2. 単位を指定する。
      s(秒)、m(分)、h(時間)、d(日)、w(週)
      1日の指定を単位を使って表すと
      $TTL 1d        ; 1 day
    3. 2つの単位の混合
      $TTL 1d12h     ; 1日半
    4. $TTL は、1時間から1日が一般的

SOA レコード

  1. ゾーンのデータが変更されたかどうかを、スレーブネームサーバがどれくらいの頻度で確認するかなど、ゾーン全体に関わる情報を記述する。
  2. SOA レコードはドメイン名の記述から始まり、次にゾーンのクラスを指定(ほとんどの場合、Internet を示す IN を指定)して、SOA レコードのタイプを示す SOA を記述します。
  3. SOA レコードでは、タイプの後に7つの要素を記述します。
    1. MNAME フィールド
      • このゾーンのプライマリマスタネームサーバのドメイン名を指定する。
    2. RNAME フィールド
      • ゾーン管理者に到達性のあるメールアドレス。メールアドレスで使われる @ 記号は使えないため、 . (ドット)に変更して記述する。
    3. シリアル番号
      • YYYYMMDDVV の形式が望ましい。
        例) 2013121700
    4. リフレッシュ
      • このゾーンのスレーブネームサーバが、どれくらいの頻度で、自分のマスタネームサーバに、ゾーンのシリアルが増加しているかどうか(変更があったか)について、問い合わせる時間を指定する。
    5. リトライ
      • シリアルの確認時にエラーが出た時、次に問い合わせるまでの間隔を指定する。
    6. 期限切れ
      • スレーブサーバーがマスターに到達できなくなった時、どれくらいの期間、反応を続けるかを指定する。通常、事故などに備え、数週間から1ヶ月程度の値を用いる
    7. ネガティブキャッシュTTL
      • 他のネームサーバがゾーンに対する権威を持ったネームサーバからの否定応答をキャッシュしてもよい時間を設定する。この値は、15分から3時間程度のかなり短めに設定してもよい。
    8. 例)
      $TTL 86400      ; 1 day
      foo.example.            IN SOA  ns1.foo.example. root.foo.example. (
                                     2002123041 ; serial
                                     3600       ; refresh (1 hour)
                                     900        ; retry (15 minutes)
                                     604800     ; expire (1 week)
                                     3600       ; minimum (1 hour)
                                     )
      
                             NS      ns1.foo.example.
                             NS      ns2.foo.example.

slave 設定の /etc/named.conf

       zone "foo.net" IN {
               type slave;
               file "slaves/db.foo.example";
               masters { 111.222.112.221; };
       };

       zone "112.222.111.in-addr.arpa" IN {
               type slave;
               file "slaves/db.111.222.112";
               masters { 111.222.112.221; };
       };

Log のカテゴリ

  • 参考外部サイト : BINDのロギング機能(Server Architecture for Linux)
    カテゴリ名内容
    defaultチャンネルが割り当てられていない全てのカテゴリ。
    general以下のカテゴリに分類されない、その他全てのメッセージ
    databasenamed の内部データベースに関するメッセージ。
    security要求の承認と拒否に関するメッセージ。
    config設定ファイルの処理に関するメッセージ。
    resolver名前解決に関するメッセージ。再帰的に問い合わせへの応答も含む。
    xfer-in他サーバーから自ホストへのゾーン転送に関するメッセージ。
    xfer-out自ホストから他サーバーへのゾーン転送に関するメッセージ。
    notify非同期びゾーン更新通知に関するメッセージ。
    clientクライアントからの要求に関するメッセージ。
    unmatchedどのview にもマッチしなかったメッセージ。
    networkネットワークに関するメッセージ。
    upadate動的更新に関するメッセージ。
    queries問い合わせのログ。
    dnssecDNSSECとTSIGの処理に関するメッセージ。
    lame-servers名前解決を試みようとして発見した、間違った設定のサーバーに関するメッセージ。

トラブルシューティング

view internal: query failed (SERVFAIL) 対応

  • jnl ファイルとの不整合らしい。
    以下のコマンドでjnlファイルを適用すると解決!
    rndc freeze
    rndc thaw

Dynamic DNS, Unable to add forward map from 対応

  • /var/named を含むこれ配下のアクセス権を確認する
  • named 権限が必要

permission の設定をしていても(設定済みでも) jnl(ジャーナル)の作成に失敗する

  • SELinux が原因。以下のコマンドを実行
    setsebool -P named_write_master_zones 1

nsupdate

sudo nsupdate
> server hogehoge.unyaunya.com
  • 追加(正引き)
    update add www.unyaunya.com 3600 IN A 192.168.1.101
    update add www.example.com 3600 CNAME test.example.com
  • 追加(逆引き)
    update add 10.10.168.192.in-addr.arpa. 3600 IN PTR www.unyaunya.com.
  • 削除
    • 正引き
      update delete www.unyaunya.com In A 192.168.1.101
    • 逆引き
      update delete 2.0.168.192.in-addr.arpa. IN PTR
  • 反映
    send
  • nsupdate console の終了
    quit
  • 備考
    • send を送信した時点で即時反映される。
      ただし、zone ファイルは jnl ファイルを経由して
      少しあとに更新される。

ubuntu, 18.04以降, DNS, cache, キャッシュ, nslookup, 削除

  • なんとまぁLinuxでもDNSの応答がキャッシュされるようになった模様
  • ubuntu 18.04
  • クリア方法は以下
    sudo systemd-resolve --flush-caches
  • ubuntu 22.04
    resolvectl flush-caches

ipv6

参考サイト


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-24 (火) 20:29:58 (450d)