mydns

出典: wiki.nodoka.org

bindの一部として稼動させるため、LISTENはループバックのみ。
詳しくはbindのページを参照。

目次

mydns-1.1.0のインストール

mysqlが既にインストールされている前提。

cd /usr/local/src
wget http://mydns.bboy.net/download/mydns-1.1.0.tar.gz
tar xvfz mydns-1.1.0.tar.gz
cd mydns-1.1.0
vi src/mydns/sort.c

→183行目を編集

node->sort1 = order++;
./configure \
    --prefix=/usr/local/mydns \
    --with-mysql-lib=/usr/local/mysql/lib/mysql \
    --with-mysql-include=/usr/local/mysql/include/mysql
make
make install

データ作成

mysql -uroot
create database mydns
grant all on mydns.* to mydns@localhost identified by 'xxxx';

今回は既存のDNSからレコードをインポートする。

/usr/local/mydns/sbin/mydns --create-tables | mysql -umydns -pxxxx mydns
/usr/local/mydns/bin/mydnsimport --axfr=192.168.0.1 localhost
/usr/local/mydns/bin/mydnsimport --axfr=192.168.0.1 0.0.127.in-addr.arpa
/usr/local/mydns/bin/mydnsimport --axfr=192.168.0.1 domain.com
/usr/local/mydns/bin/mydnsimport --axfr=192.168.0.1 0.168.192.in-addr.arpa

設定ファイル作成

vi /usr/local/mydns/mydns.conf
db-user = mydns
db-password = xxxx
database = mydns
listen = 127.0.0.1
vi /etc/resolv.conf
search domain.com
nameserver 192.168.0.1

起動試験

/usr/local/mydns/sbin/mydns -c /usr/local/mydns/etc/mydns.conf --background

起動ファイル作成

vi /etc/init.d/mydns
#! /bin/sh
#
# mydns         Start the MyDNS server
#
# Author:       Falko Timme <ft@falkotimme.com>.
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mydns
DAEMON=/usr/local/mydns/sbin/$NAME
DESC="DNS server"
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        $DAEMON -c /usr/local/mydns/etc/mydns.conf --background
        echo "."
        ;;
  stop)
        echo "Stopping $DESC: $NAME."
        kill -9 `pidof $NAME` &> /dev/null
        ;;
  restart)
        echo "Restarting $DESC: $NAME."
        $0 stop && sleep 1
        $0 start
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
        exit 1
        ;;
esac
exit 0
chkconfig --add mydns
chkconfig mydns on
service mydns start