The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Отказоустойчивые сервера"
Отправлено Gennadi, 09-Ноя-06 00:14 
Как-то приходилось делать что-то подобное....

Firewall-1 через который все выходят в интернет.  ( IP 111.111.111.66 )

Firewall-2 через rsync зеркалится с Firewall-1 . ( IP 111.111.111.67 )

если Firewall-1 неотвечает на ping от Firewall-2 ( что значит Firewall-1 умер ), то он перенимает сетевые настройки от Firewall-1.

Note: необязательно ping можно к примеру SSH Port проверять.....

На Firewall-2 создал небольшой скрипт:


file:/usr/local/bin/fwcontrol

============================================================
#!/bin/bash
cd /usr/local/bin
START="1"
HOST="111.111.111.66"
MAILTO="admin@domain.ru"
if [ -f flag ]
then
    while [ -f flag ]
    do    
    echo
    echo "......NEW Firewall is OK!"
    echo
    sleep 2
    done    
else
    while [ $START = "1" ]
    do
    ping -c 4 $HOST > _tmp
        if [ "Unreachable" = "`cat _tmp | grep Unreachable |awk -F " " '{print $6}' | head -n 1`" ]
        then
        echo "        ERROR! Host $HOST is not found..........."
        echo
        ifconfig eth0 111.111.111.66 netmask 255.255.255.192 up    #
        ifconfig eth1 222.222.222.222 netmask 255.255.255.0 up    #
        ifconfig eth2 123.123.123.123 netmask 255.255.255.0 up    #
        route add default gw 111.111.111.65            #
        touch flag
        echo "    
    Firewall-1 is down!

    Firewall-2 is up.

    `ifconfig`

    `route -n`" | mailx -s "Firewall-1 is down" $MAILTO
    /etc/init.d/fwcontrold stop
        exit 0
        else    
        echo
        echo "    .......Firewall is OK!"
        fi
    done
sleep 2
exit 0
fi
=====================================================================


который запускается как demon fwcontrold:


file:/etc/inin.d/fwcontrold
=====================================================================
#! /bin/sh
FW_BIN_DIR=/usr/local/bin
FW_BIN_PID=/var/run/fw.pid
FW_BIN=$FW_BIN_DIR/fwcontrol
. /etc/rc.status
rc_reset
case "$1" in
    start)
    if [ -f $FW_BIN_PID ]
    then
        echo -n "Daemon FW-CONTROL is running"
    else
        echo -n "Starting Daemon FW-CONTROL..........."
        echo ""
        cd $FW_BIN_DIR

        $FW_BIN > /dev/null 2>&1 &
        echo $! > $FW_BIN_PID
        echo " started_fw. PID:$!"
        
    fi
    rc_status -v
    ;;
    stop)
    if [ ! -f $FW_BIN_PID ]
    then
        echo -n "Daemon FW-CONTROL is down"
        if [ -f $FW_BIN_DIR/flag ]
        then
        rm $FW_BIN_DIR/flag
        fi
    else
        echo -n "Shutting down FW-CONTROL "
        echo ""
        kill -9 `cat $FW_BIN_PID`
        rm $FW_BIN_PID
        if [ -f $FW_BIN_DIR/flag ]
        then
        rm $FW_BIN_DIR/flag
        fi
        echo "FW-CONTROL STOP request issued."
    fi
    rc_status -v
    ;;
    restart)

    $0 stop
    sleep 5
    $0 start

    rc_status
    ;;
    status)
    echo -n "Checking for service FW-CONTROL "
    checkproc $FW_BIN
    rc_status -v
    ;;
    *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac
rc_exit
====================================================================


/etc/inin.d/fwcontrold start|stop|status|restart


Eсли Firewall-1 умер, то админ получает е-майл, быстренько надёргивает штанишки и бегом решать проблему. :))))


Скрипты написаны для SuSE, но при небольшой доработке можно приспособить других...

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру