Как организовать резервный канал для компьютера?
3401
16
Всем привет!
Есть компьютер с WinXP SP2. На него заведен Интернет одного из провайдеров (через сетевую карту). Сеть достаточно часто пропадает. А выход в Интернет требуется довольно стабилный. Альтернативы провайдеру нет.
Хочу сделать резервный канал через SkyLink (есть модем).
Но тут возникает сложность.
Как сделать так, чтобы при пропадании основного канала Интернет был доступен по резервному (SkyLink). А при появлении осуществлялся обратный переход (на основной канал)?
Есть пара условий.
1. SkyLink подключен постоянно (соединение устанавливается утром и поддерживается до вечера).
2. Переход должен осуществляться автоматически (без участия человека).
Есть компьютер с WinXP SP2. На него заведен Интернет одного из провайдеров (через сетевую карту). Сеть достаточно часто пропадает. А выход в Интернет требуется довольно стабилный. Альтернативы провайдеру нет.
Хочу сделать резервный канал через SkyLink (есть модем).
Но тут возникает сложность.
Как сделать так, чтобы при пропадании основного канала Интернет был доступен по резервному (SkyLink). А при появлении осуществлялся обратный переход (на основной канал)?
Есть пара условий.
1. SkyLink подключен постоянно (соединение устанавливается утром и поддерживается до вечера).
2. Переход должен осуществляться автоматически (без участия человека).
На одном компе, да еще и с установленной WinXP - никак. ФАКТ!
Есть железки типа Dlink LB-604 стоит в районе 80 доллларов, но тут SkyLink никак не поможет, нужен эзернет на входе.
Есть железки типа Dlink LB-604 стоит в районе 80 доллларов, но тут SkyLink никак не поможет, нужен эзернет на входе.
Juliy Caesar
guru
Хм, АсусЪ канэшна крутая железка, но порты УСБ на ней по описанию на сайте годны токма для подключения внешних накопителей, а никак не для сетевого интерфейса. Так что мобилу к Асусе не подключить.
Ваще проблема резервирования должна решаться командой ROUTE, так что надо курить ману хрюни и пытаться сделать...
Я вот счас попробую, специально УСБ-шнурок от мобилы на работу захватил.
Ваще проблема резервирования должна решаться командой ROUTE, так что надо курить ману хрюни и пытаться сделать...
Я вот счас попробую, специально УСБ-шнурок от мобилы на работу захватил.
Juliy Caesar
guru
Итак, результаты хперимента.
Создал подключение "Удалённый доступ к сети" через ГПРС, в свойствах ТСП/ИП энтого соединения за кликом по кнопочке дополнительно надо снять галочку "Использовать основной шлюз в удалённой сети". Затем подключаемся и смотрим какой айпишник выдаётся этому подключению. После ручками прописываем маршрут: ' 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 "
Создал подключение "Удалённый доступ к сети" через ГПРС, в свойствах ТСП/ИП энтого соединения за кликом по кнопочке дополнительно надо снять галочку "Использовать основной шлюз в удалённой сети". Затем подключаемся и смотрим какой айпишник выдаётся этому подключению. После ручками прописываем маршрут: ' 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 "
[anp/hsw]
experienced
в этом способе есть один косяк
если повиснет обслуживающий вас коммутатор, при этом сетевой кабель будет подключен - переключения не произойдет.
вот если бы у вас было 2 сеансовых подключения - VPN, pppoe итд - то нормально.
а так - можно сделать gprs основным, а подключение по локальной сети - резервным (т.к. потерю связи по этому подключению детектировать очень сложно)
если повиснет обслуживающий вас коммутатор, при этом сетевой кабель будет подключен - переключения не произойдет.
вот если бы у вас было 2 сеансовых подключения - VPN, pppoe итд - то нормально.
а так - можно сделать gprs основным, а подключение по локальной сети - резервным (т.к. потерю связи по этому подключению детектировать очень сложно)
Juliy Caesar
guru
Да есть такое. А если скриптик написать который бы кажные 30 сек к примеру проверял бы пингом допустим шлюз провайдера и в случае неответа обновлял бы таблицы маршрутизации?
Сейчас читают
Академ-Ривер-Парк (проезд по ПДД)
1680
26
03.08.2006 - нам месяц!
31150
210
Переезд в Новосибирск
145959
465
[anp/hsw]
experienced
шлюз провайдера - это несерьезно
как будто дальше шлюза проблем не бывает?
для таких целей обычно заказывают BGP, а если вариант малобюджетный - то пингуют те сайты, на которые и собственно нужен постоянный доступ (типа mail.ru итд)
как будто дальше шлюза проблем не бывает?
для таких целей обычно заказывают BGP, а если вариант малобюджетный - то пингуют те сайты, на которые и собственно нужен постоянный доступ (типа mail.ru итд)
Juliy Caesar
guru
Я имел в виду шлюз провайдера не со стороны абонента, а со стороны магистрали. Вычисляется он простым трасером. И вот если у провайдера проблемы внутри, то этот шлюз и становится недоступным. А таких отказов по моим наблюдениям процентов 80-90. Конечно могут быть проблемы и с подключением самого этого шлюза к магистрали, но это уже достаточно редкое событие и решить это можно двойным пингом - самого этого шлюза и любого следующего узла на магистрали.
Mail.ru или любой другой сайт пинговать смысла особого нет, потому как они могут быть недоступны не по причине локального провайдера, а по причине своего (московского) провайдера или по причине собственных неполадок. А тогда какой смысл переключаться на резервный какнал?
Mail.ru или любой другой сайт пинговать смысла особого нет, потому как они могут быть недоступны не по причине локального провайдера, а по причине своего (московского) провайдера или по причине собственных неполадок. А тогда какой смысл переключаться на резервный какнал?
Про 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?
Вот что нарыл сам:
Можно создать небольшой батник со скриптом:
: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?
Juliy Caesar
guru
Неправильный скрипт, какая-то корявая логика работы... Вам же нужно автоматически возвращаться со скайлинка на езернет при появлении на нём связи, а я чёта непойму как это здесь проверяется в этом скрипте.
Опять же ya.ru может быть недоступен сам по себе и что тогда? Этот скрипт кажные 10 секунд будет прыгать с канала на канал?
Опять же ya.ru может быть недоступен сам по себе и что тогда? Этот скрипт кажные 10 секунд будет прыгать с канала на канал?
gringo
guru
на последнего.
задачка в общем-то тривиальная. но средствами винды - ну его нах!
покупаецца железка Asus WL-500gP. у нее на борту есть 2 USB-порта, на которые можно вешать НЕ только внешние накопители - я ЛИЧНО прикручивал нему USB-шнурок на PL-2303 с мобилкой ME45 и устанавливал GPRS-соединение.
внутри у железки линух с 2.4.20 ядром. есть доступ к шеллу.
прописываются рауты с разными метриками и ффсе.
задачка в общем-то тривиальная. но средствами винды - ну его нах!
покупаецца железка Asus WL-500gP. у нее на борту есть 2 USB-порта, на которые можно вешать НЕ только внешние накопители - я ЛИЧНО прикручивал нему USB-шнурок на PL-2303 с мобилкой ME45 и устанавливал GPRS-соединение.
внутри у железки линух с 2.4.20 ядром. есть доступ к шеллу.
прописываются рауты с разными метриками и ффсе.
Juliy Caesar
guru
А слабо средствами винды? А то у меня жаба платить за шелесяку 110 убитых президентов, когда можно и скрипт написать.
gringo
guru
я NIX-админ.
средствами винды, не то чтобы слабо... западло просто.
средствами винды, не то чтобы слабо... западло просто.
Juliy Caesar
guru
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'
: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'
nikolay24
member
Неожиданная проблема...
В батнике всего две строчки:
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, естественно дело не доходит...
Кто ни будь знает в чем загвоздка?
В батнике всего две строчки:
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, естественно дело не доходит...
Кто ни будь знает в чем загвоздка?
Juliy Caesar
guru
'format c: \u' вам поможет
(у меня всё работает как надо)
(у меня всё работает как надо)
ТОП 5
1
2
3
4