Автор Тема: Backup isp  (Прочетена 2345 пъти)

nahap

  • Напреднали
  • *****
  • Публикации: 22
    • Профил
Backup isp
« -: Mar 31, 2008, 08:17 »
Здравейте,

С FreeBSD 4.11 съм. Някой може ли да ми посочи линк за скрипт за load balance м/у 2 доставчика. искам ако паде едната връзка, автоматично да почне да рутира през другата. Мерси предварително.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Backup isp
« Отговор #1 -: Mar 31, 2008, 08:27 »
Разгледай тази наскорошна тема и връзките, към които води. Тук има и други теми по въпроса. Научи се да използваш търсачката, а когато стигнеш до по-точен проблем - питай '<img'>

edit: А всъщност, защо ти е load balancing? Щом вторият доставчик ще се ползва само за бекъп, то закачи 2-та доставчика на 2 лан карти, задай маскиранията и рутиранията да минават през интерфейса на основния доставчик и пусни един скрипт, който с най-елементарен ping да проверява наличието на връзка през този интерфейс. Когато скриптът установи липса на връзка, го направи да смени името на интерфейса във файла с правилата или просто си направи още един файл с правила за другия интерфейс. Скриптът ще изчисти старите правила и ще зареди новите, като може да продължи да проверява за свързаност през интерфейса на основния доставчик и когато връзката се възстанови, скриптът ще пренапише правилата отново. Ако целта ти не е едновременно ползване и на двата доставчика, а просто единия да седи като бекъп, това е по-добрата схема.



Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

nahap

  • Напреднали
  • *****
  • Публикации: 22
    • Профил
Backup isp
« Отговор #2 -: Mar 31, 2008, 15:24 »
Благодаря за съвета. Да в действителност не ми трябва load balance..само failover. Така че остава варианта със скрипта който сменя рутинга '<img'>
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Backup isp
« Отговор #3 -: Mar 31, 2008, 15:45 »
Пробвай да го направиш, а ако срещнеш някакви спънки при реализирането му - ще помагаме ':ok:'
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

nahap

  • Напреднали
  • *****
  • Публикации: 22
    • Профил
Backup isp
« Отговор #4 -: Apr 01, 2008, 09:57 »
намерих този скрипт..така като гледам ми се струва че ще сработи, но по-опростен вариант не можах да измисля. Ще ти пиша като почна процедурата да видим какво ще стане '<img'>

#!/usr/bin/perl
use Net::Frame::Device;
use Net::Ping;

$uplink1_interface="fxp0";
$uplink2_interface="sis1";
$lan_interface="bge0";
$primary_gateway="0.0.0.0";
$secondary_gateway="0.0.0.0";

# print current date and time
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time);
$year=$year+1900;
print "GMT Time: $year-$mon-$mday $hour:$min:$sec\n";

my $device_uplink1 = Net::Frame::Device->new(dev => $uplink1_interface);
my $device_uplink2 = Net::Frame::Device->new(dev => $uplink2_interface);
my $device_lan = Net::Frame::Device->new(dev => $lan_interface);

print "Current default gateway:", $device_lan->gatewayIp, "\n";
print "Primary default gateway:", $primary_gateway, "\n";
print "Secondary gateway:", $secondary_gateway, "\n";

print "Checking primary internet uplink ...\n";
if (check_uplink($primary_gateway)) {
if ($device_lan->gatewayIp ne $primary_gateway) {
# set default route to $primary_gateway
`route delete default`;
`route add default $primary_gateway`;

# Change uplink interface to uplink1_interface
change_nat_interface($uplink1_interface);

# restart IPFW and NATD daemon
`/etc/rc.d/ipfw restart`;

print "Default gateway has been changed to $primary_gateway via interface $uplink1_interface\n";
} else {
print "Current default gateway is set to primary gateway and is ok\n";
}
} elsif (check_uplink($secondary_gateway)) {
if ($device_lan->gatewayIp ne $secondary_gateway) {
# set default route to $secondary_gateway
`route delete default`;
`route add default $secondary_gateway`;

# Change uplink interface to uplink2_interface
change_nat_interface($uplink2_interface);

# restart IPFW and NATD daemon
`/etc/rc.d/ipfw restart`;

print "Default gateway has been changed to $secondary_gateway via interface $uplink2_interface\n";
} else {
print "Current default gateway is set to secondary gateway and is ok\n";
}
} else {
print "Any uplink is up and working\n";
}

print "----\n";

######################################################
# Ping IP address and decide if it's reachable or not
# 1.parameter: IP
######################################################
sub check_uplink {
my ($ip) = @_;

my $p = Net::Ping->new("icmp");
my $ok = $p->ping($ip);
$p->close();

return $ok; # 0 - false; 1 - true
}

######################################################
# Change NATD interface file
# 1.parameter: network interface
######################################################
sub change_nat_interface {
my ($nat_if) = @_;

$filename="/tmp/natd_iface";
if (open(F, "> $filename")) {
print "change_nat_iface: writing $nat_if to $filename\n";
print F $nat_if;
close F;
} else {
print "change_nat_iface: Cannot write to $filename\n";
return 0;
}

return 1; # 0 - false; 1 - true
}
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
backup?
Настройка на програми
kicker 5 3670 Последна публикация Sep 21, 2012, 17:19
от setic
Backup на линукс хард.
Настройка на програми
sys7em 12 4662 Последна публикация Dec 07, 2004, 16:23
от sys7em
Проблем с Backup
Хардуерни и софтуерни проблеми
rootgz 1 2640 Последна публикация Mar 07, 2005, 10:58
от toxigen
Backup в Линукс
Настройка на програми
bobo 4 2893 Последна публикация Apr 14, 2005, 20:47
от bobo
Linux Backup
Настройка на програми
phantomlord 1 2081 Последна публикация Apr 23, 2005, 13:53
от sys7em