есть скрипт, проверящий канал на двух провайдеров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?
>есть скрипт, проверящий канал на двух провайдеров
>
>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
>>есть скрипт, проверящий канал на двух провайдеров
>>
>>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
>>>есть скрипт, проверящий канал на двух провайдеров
>>>
>>>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-х гейтвеев?
И как это интересно 2 дефолта ты на freebsd сделаешь с разными метриками?
>И как это интересно 2 дефолта ты на freebsd сделаешь с разными
>метриками?
у меня ОС - Linux,
метрики подразумеваются через тот же iproute2 я так понял bass,
но у меня часть пользователей идет через один канал, часть через другой, а в случае когда отваливается один из каналов переходят работать на другой.
как все-таки проверить на то какой сейчас default gw?
>как все-таки проверить на то какой сейчас default gw?блин, тема уже была:
1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
2. проверка лежит канал или нет: route -q add -host {тестовый ip} {ip инт-фейса проверяемого канала}; ping {тестовый ip};
3. есть скрипт на перле, который проверяет 4 контрольных точки и в случае завала по всем переключает канал - если надо давай мыло
>>как все-таки проверить на то какой сейчас default gw?
>
>блин, тема уже была:
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>
очень надо:
вот мыло:
sln2@mail.ruспасибо за ответы
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>А можно и мне на: hren_a@mail.ru
>>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, иначе они неработали даже с редиректами в фаерволе.
>>как все-таки проверить на то какой сейчас default gw?
>
>блин, тема уже была:
>1. проверка дефолта: netstat -nr | grep default | awk '{print $2}'
>
>2. проверка лежит канал или нет: route -q add -host {тестовый ip}
>{ip инт-фейса проверяемого канала}; ping {тестовый ip};
>3. есть скрипт на перле, который проверяет 4 контрольных точки и в
>случае завала по всем переключает канал - если надо давай мыло
>
и мне если можно на modata@mail.ru