Jump to content
Калькуляторы

FreeBSD и скрипты маршрутизации.

Парни. У кого нибудь есть скрипт, описание скрипта ниже.

На сервере под управлением FreeBSD есть 2 канала в Мир.

Суть скрипта такова, Скрипт пингует указанный адресс, если пинг не прошел 3-4 пакета, он удаляет маршрут default основного шлюза, и переписывает маршрут default на другой шлюз.

Вот как то так. Может не столь корректно сформировал вопрос, ну соть понятно.

У кого есть, поделитесь.

Спасибо.

Share this post


Link to post
Share on other sites

Да и пинговать ya.ru.. :) В прошлый раз СТОЛЬКО народу попреключалось на резервы, когда яндекс полег.

 

А сам скрипт - 1 класс вторая четверть.

 

вот, за 2 минуты на коленке. то, что впишете вместо ya.ru зарутить на 1 оператора, чтобы не хлопало туда-сюда. или выкосить часть, где возврат маршрута.

 

1.2.3.4 - основной шлюз

2.3.4.5 - резерв

#!/bin/sh
if ping -q -c 1 ya.ru 2>&1 > /dev/null  ; then
 rm -f /tmp/pingfailed
 if [ -f /tmp/backuproute ] ; then
  echo "MAIN route"
   route delete default
   route add default 1.2.3.4
   rm -f /tmp/backuproute
 fi
else
if [ ! -f /tmp/backuproute ] ; then
  if [ -f /tmp/pingfailed ] ; then
    CNT=`cat /tmp/pingfailed`
  else
    CNT="0"
  fi
  CNT=$(( ${CNT} + 1 ))
  echo $CNT > /tmp/pingfailed
  if [ "$CNT" -ge "5" ] ; then
    echo "BACKUP Route"
    touch /tmp/backuproute
   route delete default
   route add default 2.3.4.5
  fi
fi
fi

Share this post


Link to post
Share on other sites

Да и пинговать ya.ru.. :) В прошлый раз СТОЛЬКО народу попреключалось на резервы, когда яндекс полег.

 

А сам скрипт - 1 класс вторая четверть.

 

вот, за 2 минуты на коленке. то, что впишете вместо ya.ru зарутить на 1 оператора, чтобы не хлопало туда-сюда. или выкосить часть, где возврат маршрута.

 

1.2.3.4 - основной шлюз

2.3.4.5 - резерв

#!/bin/sh
if ping -q -c 1 ya.ru 2>&1 > /dev/null  ; then
 rm -f /tmp/pingfailed
 if [ -f /tmp/backuproute ] ; then
  echo "MAIN route"
   route delete default
   route add default 1.2.3.4
   rm -f /tmp/backuproute
 fi
else
if [ ! -f /tmp/backuproute ] ; then
  if [ -f /tmp/pingfailed ] ; then
    CNT=`cat /tmp/pingfailed`
  else
    CNT="0"
  fi
  CNT=$(( ${CNT} + 1 ))
  echo $CNT > /tmp/pingfailed
  if [ "$CNT" -ge "5" ] ; then
    echo "BACKUP Route"
    touch /tmp/backuproute
   route delete default
   route add default 2.3.4.5
  fi
fi
fi

Благодарствую :)

А сам скрипт - 1 класс вторая четверть. Извиняюсь, сочковал в то время ;)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.