Локальный whois сервер

Установка whois сервера.
Качаем последнюю версию
$wget http://www.irrd.net/irrd2.3.10.tgz
$tar zxf irrd2.3.10.tgz
$cd irrd2.3.10
$./configure
$make
#make install
Пишем такой конфиг:

#####################################################################
# MRTd -- MRT version 2.3.10 [17Nov2010]
#####################################################################
#
debug all /v0/files/IRRD/database/irrd.log 0
#
line vty
  login
  password PassW0rd
!
enable password EnablePass
uii_port 5674
irr_port 43
#
#
irr_database radb
#irr_database ripe
irr_database arin
irr_database ripe_as-block
irr_database ripe_as-set
irr_database ripe_aut-num
irr_database ripe_role
irr_database ripe_route
irr_database ripe_route-set
########################################################################

Для работоспособности  сервера нужно написать пару скриптов
/srv/scripts/irrdbase.sh будет запускаться через cron раз в сутки
для начала создадим папку для хранения хешей баз данных с whois серверов
#mkdir /v0/files/IRRD/database

Скипт /srv/scripts/irrdbase.sh:

#!/bin/bash
#
cd /v0/files/IRRD/database
wget -c   ftp://ftp.radb.net/radb/dbase/radb.db.gz
gunzip -dqf radb.db.gz
wget -c    ftp://ftp.radb.net/radb/dbase/arin.db.gz
gunzip -dqf arin.db.gz
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz
gunzip -dqf ripe.db.route.gz
mv ripe.db.route ripe_route.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.as-set.gz
gunzip -dqf ripe.db.as-set.gz
mv ripe.db.as-set ripe_as-set.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.as-block.gz
gunzip -dqf ripe.db.as-block.gz
mv ripe.db.as-block ripe_as-block.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.aut-num.gz
gunzip -dqf ripe.db.aut-num.gz
mv ripe.db.aut-num ripe_aut-num.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.role.gz
gunzip -dqf ripe.db.role.gz
mv ripe.db.role ripe_role.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz
gunzip -dqf ripe.db.route.gz
mv ripe.db.route ripe_route.db
wget -c   ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route-set.gz
gunzip -dqf ripe.db.route-set.gz
mv ripe.db.route-set ripe_route-set.db
killall irrd
killall irrd
/usr/local/sbin/irrd.sh
################END###################

Скрипт  checkirrd.sh watchdog для irrd будет лежать в 
/srv/scripts:  
#!/bin/bash
#
rez=`netstat -tapn|grep irrd|grep 43|rev|awk '{print$1}'|rev`
echo $rez
if [ "$rez" != "" ];
    then 
        echo "OK"
    else 
        echo "$rez irrd is down"
        killall irrd
        killall irrd
        /usr/local/sbin/irrd.sh
fi
#############################################
Скипт для запуска irrd:

#!/bin/bash
#
screen -mdS irrd /usr/local/sbin/irrd -f /etc/irrd.conf -d /v0/files/IRRD/database

#################################################################3
Конфиги для cron
/etc/cron.d/irrd:

MAILTO=root
30 0 * * * root /srv/scripts/irrdbase.sh

/etc/cron.d/ irrdch:

MAILTO=root
*\5 * * * * root /srv/scripts/checkirrd.sh

Вообщем все, должно работать.

1 комментарий: