URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 60832
[ Назад ]

Исходное сообщение
"опять про скрипт для двух провайдеров"

Отправлено Unit , 11-Окт-05 16:26 
есть скрипт, проверящий канал на двух провайдеров

rezult=`ping -q -c 5 -I eth2 192.168.1.2 | grep '100%' | wc -l`
#rezult=1 если пинги не идут,
#rezult=0 если пинги идут

if [ $rezult -eq 1 ];   then
    route del default
    route add default gw 192.168.1.1
else
    route del default
    route add default gw 192.168.2.1
fi
вопросы:
1- я так понимаю, что когда происходит route del default в этот момент интернет у пользователей будет отваливаться,
то есть если даже канал рабоатет, люди сидят в Инете через gw 192.168.2.1 (к примеру в клиент-банк), а мы ему    
    route del default
    route add default gw 192.168.2.1 (то есть презапустили тот же самый шлюз). - или это не будет заметно?
если заметно, то имхо, надо в скрипт добавить проверку какой сейчас default gw,
как это сделать?

2- если из 5 послыаемых пактов до Ip назначения 192.168.1.2 назад вернутся только 3 то чему будет равен rezult 1 или 0?


Содержание

Сообщения в этом обсуждении
"опять про скрипт для двух провайдеров"
Отправлено Вадим , 11-Окт-05 16:38 
>есть скрипт, проверящий канал на двух провайдеров
>
>rezult=`ping -q -c 5 -I eth2 192.168.1.2 | grep '100%' | wc
>-l`
>#rezult=1 если пинги не идут,
>#rezult=0 если пинги идут
>
>if [ $rezult -eq 1 ];   then
>    route del default
>    route add default gw 192.168.1.1
>else
>    route del default
>    route add default gw 192.168.2.1
>fi
>вопросы:
>1- я так понимаю, что когда происходит route del default в этот
>момент интернет у пользователей будет отваливаться,
>то есть если даже канал рабоатет, люди сидят в Инете через gw
>192.168.2.1 (к примеру в клиент-банк), а мы ему
>    route del default
>    route add default gw 192.168.2.1 (то есть презапустили
>тот же самый шлюз). - или это не будет заметно?
>если заметно, то имхо, надо в скрипт добавить проверку какой сейчас default
>gw,
>как это сделать?
>
>2- если из 5 послыаемых пактов до Ip назначения 192.168.1.2 назад вернутся
>только 3 то чему будет равен rezult 1 или 0?

аськи слетят полюбому
проверку на default gw можно awk-ом разобрать netstat -rn
wc -l считает колво в строчке, значит будет 1


"опять про скрипт для двух провайдеров"
Отправлено Unit , 11-Окт-05 16:54 
>>есть скрипт, проверящий канал на двух провайдеров
>>
>>rezult=`ping -q -c 5 -I eth2 192.168.1.2 | grep '100%' | wc
>>-l`
>>#rezult=1 если пинги не идут,
>>#rezult=0 если пинги идут
>>
>>if [ $rezult -eq 1 ];   then
>>    route del default
>>    route add default gw 192.168.1.1
>>else
>>    route del default
>>    route add default gw 192.168.2.1
>>fi
>>вопросы:
>>1- я так понимаю, что когда происходит route del default в этот
>>момент интернет у пользователей будет отваливаться,
>>то есть если даже канал рабоатет, люди сидят в Инете через gw
>>192.168.2.1 (к примеру в клиент-банк), а мы ему
>>    route del default
>>    route add default gw 192.168.2.1 (то есть презапустили
>>тот же самый шлюз). - или это не будет заметно?
>>если заметно, то имхо, надо в скрипт добавить проверку какой сейчас default
>>gw,
>>как это сделать?
>>
>>2- если из 5 послыаемых пактов до Ip назначения 192.168.1.2 назад вернутся
>>только 3 то чему будет равен rezult 1 или 0?
>
>аськи слетят полюбому
>проверку на default gw можно awk-ом разобрать netstat -rn
а чуть подробней можно как задействовать netstat -rn
  -r, --route                display routing table
  -n, --numeric              don't resolve names

>wc -l считает колво в строчке, значит будет 1



"опять про скрипт для двух провайдеров"
Отправлено bass , 12-Окт-05 04:18 
>>>есть скрипт, проверящий канал на двух провайдеров
>>>
>>>rezult=`ping -q -c 5 -I eth2 192.168.1.2 | grep '100%' | wc
>>>-l`
>>>#rezult=1 если пинги не идут,
>>>#rezult=0 если пинги идут
>>>

ping -c 2 192.168.1.2                                                                          
if [  $? !-eq 0 ];

>>>if [ $rezult -eq 1 ];   then
>>>    route del default
>>>    route add default gw 192.168.1.1
>>>else
>>>    route del default
>>>    route add default gw 192.168.2.1
>>>fi
>>>вопросы:
>>>1- я так понимаю, что когда происходит route del default в этот
>>>момент интернет у пользователей будет отваливаться,
>>>то есть если даже канал рабоатет, люди сидят в Инете через gw
>>>192.168.2.1 (к примеру в клиент-банк), а мы ему
>>>    route del default
>>>    route add default gw 192.168.2.1 (то есть презапустили
>>>тот же самый шлюз). - или это не будет заметно?
>>>если заметно, то имхо, надо в скрипт добавить проверку какой сейчас default
>>>gw,
>>>как это сделать?
>>>
>>>2- если из 5 послыаемых пактов до Ip назначения 192.168.1.2 назад вернутся
>>>только 3 то чему будет равен rezult 1 или 0?
>>
>>аськи слетят полюбому
>>проверку на default gw можно awk-ом разобрать netstat -rn
>а чуть подробней можно как задействовать netstat -rn
>  -r, --route        
>       display routing table
>  -n, --numeric        
>     don't resolve names
>
>>wc -l считает колво в строчке, значит будет 1


чесное слово я вас непонимаю. зачем скрипты? сложно метрики поставить у 2-х гейтвеев?


"опять про скрипт для двух провайдеров"
Отправлено AD , 12-Окт-05 06:58 
И как это интересно 2 дефолта ты на freebsd сделаешь с разными метриками?

"опять про скрипт для двух провайдеров"
Отправлено Unit , 12-Окт-05 08:52 
>И как это интересно 2 дефолта ты на freebsd сделаешь с разными
>метриками?
у меня ОС - Linux,
метрики подразумеваются через тот же iproute2 я так понял bass,  
но у меня часть пользователей идет через один канал, часть через другой, а в случае когда отваливается один из каналов переходят работать на другой.


"опять про скрипт для двух провайдеров"
Отправлено Unit , 12-Окт-05 15:18 
как все-таки проверить на то какой сейчас default gw?



"опять про скрипт для двух провайдеров"
Отправлено paul , 12-Окт-05 15:53 
>как все-таки проверить на то какой сейчас default gw?

блин, тема уже была:
1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
2. проверка лежит канал или нет: route -q add -host {тестовый ip} {ip инт-фейса проверяемого канала}; ping {тестовый ip};
3. есть скрипт на перле, который проверяет 4 контрольных точки и в случае завала по всем переключает канал - если надо давай мыло


"опять про скрипт для двух провайдеров"
Отправлено Unit , 12-Окт-05 15:59 
>>как все-таки проверить на то какой сейчас default gw?
>
>блин, тема уже была:
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>
очень надо:
вот мыло:
sln2@mail.ru

спасибо за ответы


"опять про скрипт для двух провайдеров"
Отправлено ImD , 12-Окт-05 17:00 
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>

А можно и мне на: hren_a@mail.ru


"опять про скрипт для двух провайдеров"
Отправлено paul , 13-Окт-05 08:59 
>>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>>
>>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>>случае завала по всем переключает канал - если надо давай мыло
>>
>
>А можно и мне на: hren_a@mail.ru


Адрес скрипта - http://webfile.ru/569756
Я постарался слегка задокументировать, хотя он еще немного сыроватый. Ногами не бить - что мне надо от него было я получил, можете на его основе писать свои.
Я запускаю его кроном раз в 2 минуты, также в планах есть сделать его демоном. Еще для скрипта нужен перловый модуль Net::Ping::External - он есть в портах.
Если будут вопросы можете писать на paveld{псина}newmail{тчк}ru.
Еще - мне пришлось все интернет сервисы - dns, www & smtp перенести на другой сервер с постоянным ip, иначе они неработали даже с редиректами в фаерволе.


"опять про скрипт для двух провайдеров"
Отправлено Anonymous , 12-Окт-05 17:40 
>>как все-таки проверить на то какой сейчас default gw?
>
>блин, тема уже была:
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>
и мне если можно на modata@mail.ru