bind97 on CentOS 5.6

  Linux

CentOS 5.6 に bind97 (9.7.0-6.P2.el5) パッケージがあるので bind (9.3.6-16.P1.el5) から移行してみる。

  1. DNS サーバーの停止
    • /sbin/service named stop
  2. bind の削除と bind97 のインストール … bind97 用の caching-nameserver はないみたい。
    • yum remove bind bind-* caching-nameserver
      yum install bind97 bind97-chroot bind97-utils
      • bind97 に caching-nameserver をインストールしようとしても依存関係の衝突が起きてインストールできない。
      • yum install caching-nameserver
        Error: bind97 conflicts with bind
        Error: bind97 conflicts with caching-nameserver
        Error: bind97-libs conflicts with bind-libs
  3. chroot へ設定ファイルをコピー … bind97-chroot パッケージがアホアホなのかな?
    • cp -a /etc/named.conf /var/named/chroot/etc/
      cp -a /etc/named.iscdlv.key /var/named/chroot/etc/
      cp -a /etc/named.rfc1912.zones /var/named/chroot/etc/
      cp -a /var/named/named.ca /var/named/chroot/var/named/
      cp -a /var/named/named.empty /var/named/chroot/var/named/
      cp -a /var/named/named.localhost /var/named/chroot/var/named/
      cp -a /var/named/named.loopback /var/named/chroot/var/named/
  4. ディレクトリ dynamic の作成 … やっぱり bind97-chroot パッケージがアホアホなのかな?
    • mkdir /var/named/chroot/var/named/dynamic
      chmod 750 /var/named/chroot/var/named/dynamic
      chown named:named /var/named/chroot/var/named/dynamic
      • ディレクトリ dynamic なしでも起動するぽだけどエラーが出る。
      • May 11 01:33:45 allekto named[12341]: zone managed-keys.bind/IN/_meta: loading from master file dynamic/managed-keys.bind failed: file not found
        May 11 01:33:45 allekto named[12341]: dynamic/managed-keys.bind.jnl: create: file not found
        May 11 01:33:45 allekto named[12341]: zone managed-keys.bind/IN/_meta: sync_keyzone:dns_journal_open -> unexpected error
  5. 設定 named.conf をやり直し (Sample: named.conf-20110512110727.txt)
    • cp -a /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.orig
      sed -i \
          -e 's/^\tlisten-on port 53 { 127.0.0.1; };$/\tlisten-on port 53 { any; };/' \
          -e '/^\tlisten-on-v6 port 53 { ::1; };$/s/^/\/\//' \
          -e 's/^\tallow-query     { localhost; };$/\tallow-query     { localhost; 49.212.13.139; };/' \
          -e '/^\trecursion yes;$/s/$/\n\tallow-recursion { localhost; 49.212.13.139; };\n\tallow-query-cache { localhost; 49.212.13.139; };\n\tminimal-responses yes;\n\tversion none;/' \
          -e '/^include "\/etc\/named.rfc1912.zones";$/s/^/zone "pooh.gr.jp"  {\n\ttype master;\n\tfile "pooh.gr.jp.db";\n\tallow-query     { any; };\n\tallow-transfer  { 203.0.113.0; };\n\tallow-update    { none; };\n};\n\n/' \
      /var/named/chroot/etc/named.conf
  6. ゾーン db の作成 (Sample: pooh.gr.jp.db-20110512110709.txt)
    • {
          echo -e '$TTL\t300'
          echo -e '@\t\tSOA\tallekto.pooh.gr.jp. hostmaseter.pooh.gr.jp. ('
          echo -e '\t\t\t\t2011051101\t; Serial'
          echo -e '\t\t\t\t10800\t\t; Refresh'
          echo -e '\t\t\t\t3600\t\t; Retry'
          echo -e '\t\t\t\t604800\t\t; Expiry'
          echo -e '\t\t\t\t3600\t\t; Minimum'
          echo -e '\t\t\t\t)'
          echo -e ';'
          echo -e '\t\t\tNS\tallekto.pooh.gr.jp.'
          echo -e '\t\t\tNS\tmoon.sutaz.org.'
          echo -e '\t\t\tMX 10\tallekto.pooh.gr.jp.'
          echo -e '\t\t\tTXT\t"v=spf1 mx ~all"'
          echo -e ';'
          echo -e '\t\t\tA\t49.212.13.139'
          echo -e 'www\t\t\tCNAME\tallekto.pooh.gr.jp.'
          echo -e 'allekto\t\t\tA\t49.212.13.139'
      } > /var/named/chroot/var/named/pooh.gr.jp.db
  7. DNS サーバーの再開
    • /sbin/chkconfig named on
      /sbin/service named start

DNSSEC も実装しないとな…。