Как организовать резервный канал для компьютера?
3406
16
Всем привет!
Есть компьютер с WinXP SP2. На него заведен Интернет одного из провайдеров (через сетевую карту). Сеть достаточно часто пропадает. А выход в Интернет требуется довольно стабилный. Альтернативы провайдеру нет.
Хочу сделать резервный канал через SkyLink (есть модем).
Но тут возникает сложность.
Как сделать так, чтобы при пропадании основного канала Интернет был доступен по резервному (SkyLink). А при появлении осуществлялся обратный переход (на основной канал)?
Есть пара условий.
1. SkyLink подключен постоянно (соединение устанавливается утром и поддерживается до вечера).
2. Переход должен осуществляться автоматически (без участия человека).
nikolay24
На одном компе, да еще и с установленной WinXP - никак. ФАКТ!
Есть железки типа Dlink LB-604 стоит в районе 80 доллларов, но тут SkyLink никак не поможет, нужен эзернет на входе.
nikolay24
ASUS RX3042H поможет тебе
infarh
Хм, АсусЪ канэшна крутая железка, но порты УСБ на ней по описанию на сайте годны токма для подключения внешних накопителей, а никак не для сетевого интерфейса. Так что мобилу к Асусе не подключить.
Ваще проблема резервирования должна решаться командой ROUTE, так что надо курить ману хрюни и пытаться сделать...
Я вот счас попробую, специально УСБ-шнурок от мобилы на работу захватил. :ухмылка:
nikolay24
Итак, результаты хперимента. :улыб:

Создал подключение "Удалённый доступ к сети" через ГПРС, в свойствах ТСП/ИП энтого соединения за кликом по кнопочке дополнительно надо снять галочку "Использовать основной шлюз в удалённой сети". Затем подключаемся и смотрим какой айпишник выдаётся этому подключению. После ручками прописываем маршрут: ' ROUTE ADD 0.0.0.0 MASK 0.0.0.0 ???.???.???.??? METRIC 100 ' где вместо ???.???.???.??? пишем выданный ГПРСному подключению айпишник. Метрику брать равную 100 не обязательно, главное шоп она была БОЛЬШЕ чем у уже имеющегося маршрута по умолчанию (на 0.0.0.0).

Теперь проверяем... :миг:выдёргиваем витуху из сетевой карты и пытаемся куданить зайти... Удивительно, но работает. Вот с возвращением на первоначальный маршрут через сетевуху правда терпения дождаться не хватило, то есть при восстановлении сетевого подключения в инет всё равно ломился через ГПРС, возможно это или глюки виндового роутинга, либо просто я не дождался истечения времени жизни открытых сокетов.

Если комп не перзагружать и ГПРС соединение не разрывать, то так можно работать сколь угодно долго. Если cотвый опреатор выдаст вам постоянный ИП, то можно маршрут на него добавить в постоянные с пощью ключа -P команды ROUTE иначе придётся писать какойнить скрипт.

Один нюанс, надо внимательно смотреть таблицу маршрутизации после установки соединения с ГПРС на наличие маршрута к удалённому шлюзу сотового оператора. У меня он прописывался при установлении соединения, если он не будет прописываться автоматически, то маршрут к нему надо будет добавлять ручками типа " ROUTE ADD 'IP GATE' MASK 255.255.255.255 'IP LOCAL' metric 1 "
Juliy Caesar
в этом способе есть один косяк:улыб:
если повиснет обслуживающий вас коммутатор, при этом сетевой кабель будет подключен - переключения не произойдет.

вот если бы у вас было 2 сеансовых подключения - VPN, pppoe итд - то нормально.

а так - можно сделать gprs основным, а подключение по локальной сети - резервным (т.к. потерю связи по этому подключению детектировать очень сложно)
[anp/hsw]
Да есть такое. А если скриптик написать который бы кажные 30 сек к примеру проверял бы пингом допустим шлюз провайдера и в случае неответа обновлял бы таблицы маршрутизации?
Juliy Caesar
шлюз провайдера - это несерьезно:улыб:
как будто дальше шлюза проблем не бывает?

для таких целей обычно заказывают BGP, а если вариант малобюджетный - то пингуют те сайты, на которые и собственно нужен постоянный доступ (типа mail.ru итд)
[anp/hsw]
Я имел в виду шлюз провайдера не со стороны абонента, а со стороны магистрали. :миг:Вычисляется он простым трасером. И вот если у провайдера проблемы внутри, то этот шлюз и становится недоступным. А таких отказов по моим наблюдениям процентов 80-90. Конечно могут быть проблемы и с подключением самого этого шлюза к магистрали, но это уже достаточно редкое событие и решить это можно двойным пингом - самого этого шлюза и любого следующего узла на магистрали.
Mail.ru или любой другой сайт пинговать смысла особого нет, потому как они могут быть недоступны не по причине локального провайдера, а по причине своего (московского) провайдера или по причине собственных неполадок. А тогда какой смысл переключаться на резервный какнал?
nikolay24
Про route и ping - мысль хорошая.
Вот что нарыл сам:
Можно создать небольшой батник со скриптом:

:Ethernet
route delete 0.0.0.0
route delete Slus-SkyLink
route add 0.0.0.0 mask 0.0.0.0 IP-Ethernet
goto proverka

:proverka
pingwww.ya.ru
if errorlevel 1 goto SkyLink
sleep 10
goto proverka

:SkyLink
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 IP-SkyLink
goto proverka2

:proverka2
pingwww.ya.ru
if errorlevel 1 goto Ethernet
route add Slus-SkyLink mask 255.255.255.255 IP-Ethernet
ping Slus-SkyLink
if errorlevel 0 goto Ethernet
route delete Slus-SkyLink
sleep 6
goto proverka2

Этот скрипт как раз будет проводить проверку на наличие связи с Интернет и соответственно переключать каналы.
Вроде бы все хорошо. Но возникла другая проблема! Невозможно использовать ping (по причине специфической организации доступов).
Можно использовать telnet IP Port
В этом случае не знаю как сделать проверку на наличие ошибки (if errorlevel 1 goto SkyLink)
Может кто подскажет какой errorlevel у telnet?
nikolay24
Неправильный скрипт, какая-то корявая логика работы... :umnik: Вам же нужно автоматически возвращаться со скайлинка на езернет при появлении на нём связи, а я чёта непойму как это здесь проверяется в этом скрипте.
Опять же ya.ru может быть недоступен сам по себе и что тогда? Этот скрипт кажные 10 секунд будет прыгать с канала на канал?
Juliy Caesar
на последнего.

задачка в общем-то тривиальная. но средствами винды - ну его нах!

покупаецца железка Asus WL-500gP. у нее на борту есть 2 USB-порта, на которые можно вешать НЕ только внешние накопители - я ЛИЧНО прикручивал нему USB-шнурок на PL-2303 с мобилкой ME45 и устанавливал GPRS-соединение.

внутри у железки линух с 2.4.20 ядром. есть доступ к шеллу.

прописываются рауты с разными метриками и ффсе.
gringo
А слабо средствами винды? :tease: А то у меня жаба платить за шелесяку 110 убитых президентов, когда можно и скрипт написать.
Juliy Caesar
я NIX-админ. :улыб:
средствами винды, не то чтобы слабо... западло просто. :улыб:
nikolay24
route add 'test_gate_prov' mask 255.255.255.255 'ip_ethernet' metric 10

:Ethernet
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 'ip_ethernet' metric 20
goto proverka

:proverka
ping 'test_gate_prov'
if errorlevel 1 goto SkyLink
sleep 10
goto proverka

:SkyLink
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 'ip_sky' metric 20
goto proverka2

:proverka2
ping 'test_gate_prov'
if errorlevel 0 goto Ethernet
sleep 10
goto proverka2

Вот в этом случае 'test_gate_prov' всегда будет пинговаться через езернет и соответственно переключение каналов будет тока по наличию/отсутствию доступа на езернет-порту . Остаётся только грамотно выбрать этот самый 'test_gate_prov' :спок:
Juliy Caesar
Неожиданная проблема...
В батнике всего две строчки:
route ADD 92.36.19.85 MASK 255.255.255.255 192.168.0.105 METRIC 10
pause 0

92.36.19.85 - основной шлюз SkyLinka
При запуске батника скрипт циклится:
C:\!WORK!\SkyLink>route ADD 92.36.19.85 MASK 255.255.255.255 192.168.0.105 METRIC 10
C:\!WORK!\SkyLink>route delete 0.0.0.0
C:\!WORK!\SkyLink>route delete 0.0.0.0
C:\!WORK!\SkyLink>route delete 0.0.0.0
...
Откуда взялся route delete 0.0.0.0 не понятно. Как его отключить тоже не знаю. До Pause 0, естественно дело не доходит...

Кто ни будь знает в чем загвоздка?
nikolay24
'format c: \u' вам поможет :злорадство:

(у меня всё работает как надо)