Такая вот схемка:
http://s40.radikal.ru/i089/1206/ed/e43ce549001b.png
SQUID1 - Сервер с def route провайдера 1 (PROV1)
SQUID2 - Сервер с def route провайдера 2 (PROV2)
SQUID3 - Сервер пока вообще без def route
Все прокси непрозрачные.
LAN - отдельный VLAN между серверамиХочется чтобы SQUID3 при падении канала PROV1, ходил через SQUID2 и PROV2. А когда PROV1 восстановится ходил через SQUID1 и PROV1.
Думал решить это при помощи LARTC. Однако может squid сам умеет отслеживать "жив или мертв" инет за parent proxy ? Пользователям за SQUID3 нужен стабильный и фильтрованный инет, но чтобы видели они его только через одну дырку - порт 3128 на сервере SQUID3. Зафильтрую все кроме этого порта iptables'ами.
Возможно реализовать схему подобным образом?
Возможно поможет
http://habrahabr.ru/post/76610/
А как это делать через LARTC? Что-то я не нашёл решения там - http://www.opennet.me/docs/RUS/LARTC/
> А как это делать через LARTC? Что-то я не нашёл решения там
> - http://www.opennet.me/docs/RUS/LARTC/4.2.2. Распределение нагрузки.
>> А как это делать через LARTC? Что-то я не нашёл решения там
>> - http://www.opennet.me/docs/RUS/LARTC/
> 4.2.2. Распределение нагрузки.Так это же просто балансировка, при падении одного из каналов половина соединений уйдёт в никуда.
>[оверквотинг удален]
> Все прокси непрозрачные.
> LAN - отдельный VLAN между серверами
> Хочется чтобы SQUID3 при падении канала PROV1, ходил через SQUID2 и PROV2.
> А когда PROV1 восстановится ходил через SQUID1 и PROV1.
> Думал решить это при помощи LARTC. Однако может squid сам умеет отслеживать
> "жив или мертв" инет за parent proxy ? Пользователям за SQUID3
> нужен стабильный и фильтрованный инет, но чтобы видели они его только
> через одну дырку - порт 3128 на сервере SQUID3. Зафильтрую все
> кроме этого порта iptables'ами.
> Возможно реализовать схему подобным образом?Я когда-то давно-давно на FreeBSD делал так, схема работает до сих пор исправно.
#!/bin/sh
GW1=8.8.8.8
/sbin/ping -q -c 4 $GW1 > /dev/null 2>&1if [ $? != 0 ]; then
if [ -f ~vit/failed ]; then
exit 1
else
perl -pi -e "s/#*cache_peer/cache_peer/g" /usr/local/etc/squid/squid.conf
perl -pi -e "s/#*never_direct/never_direct/g" /usr/local/etc/squid/squid.conf
/usr/local/etc/rc.d/squid reload
~vit/inet_failed.pl
touch ~vit/failed
fi
else
if [ -f ~vit/failed ]; then
perl -pi -e "s/#*cache_peer/#cache_peer/g" /usr/local/etc/squid/squid.conf
perl -pi -e "s/#*never_direct/#never_direct/g" /usr/local/etc/squid/squid.conf
/usr/local/etc/rc.d/squid reload
~vit/inet_restored.pl
rm ~vit/failed
else
exit 1
fi
fi
Добавляешь в крон на проверку раз в минуту.
~vit меняешь на свое имя.
cache_peer в squid.conf пишешь через кого ходить.
inet_restored.pl и inet_failed.pl это скрипты, к-е на почту шлют уведомления