Два провайдера - как элегантно определить через какого работаем? (РЕШЕНО)

Изображение пользователя lord_i.

Всем привет.
Возможно оффтопик, но все-же.
К инету подключен через роутер с основным безлимитным и вспомагательным (очень лимитным) провайдерами.
Как красиво определить через какого провайдера работаю в данный момент? все что пришло в голову - делать traceroute на гугл и смотреть есть ли в пути узлы основонго провайдера со специфическими именами.
Типа так:
# Script to see provider and stop Transmission
if ! traceroute 8.8.8.8 | grep prov.net > /dev/null; then
/etc/init.d/transmission-daemon stop
else
/etc/init.d/transmission-daemon start
fi

Нервирует паразитный трафик в случае работы через очень лимитного провайдера ...
Может кто реализовывал что-то подобное?

0
Mike - 14 Октябрь, 2011 - 14:09
Изображение пользователя Mike.

какой роутер, аппаратный или комп с двумя сетевками? Как подключены провайдеры? Почему эти ключевые вещи мы должны телепатировать?

0
lord_i - 14 Октябрь, 2011 - 19:59
Изображение пользователя lord_i.

Это я специально. Чтоб был повод меня попинать :)
Роутер TP-LinkWR1043ND OpenWrt Backfire 10.03.1-rc5 / LuCI 0.10 Branch 0.10+svn7292
Основной провайдер PPPoE, второй - 3G-EVDO модем.
Я тут подумал, еще можно держать расшаренный через sshfs директорий с роутера, в который тот при переключении будет какой-то флаг кидать, но тоже как-то неэстэтично ...
Хотелось решить задачу без привязки к роутеру. А вдруг завтра другой будет ...

0
lord_i - 14 Октябрь, 2011 - 21:52
Изображение пользователя lord_i.

Вроде сделал поинтереснее. Расход трафика - один ICMP пакет. Пингую гейтвей провайдера пакетом с временем жизни два хопа. Через вспомагательного провайдера путь дальше и пинг выдает "Time to live exceeded"

# Script to see provider and stop Transmission
if  ping -c 1 -t 2 provider.gateway.net | grep exceeded  > /dev/null; then
/etc/init.d/transmission-daemon stop
else
/etc/init.d/transmission-daemon start
fi

Так вроде покрасивше. Решено? Единственный минус - если провайдер имя гейтвея поменяет все перестанет работать.

0
Mike - 15 Октябрь, 2011 - 06:46
Изображение пользователя Mike.

угу, таки аппаратный...
На обычных софтовых решениях маршрутизация разруливается за счет метрик интерфейса, т.е. интерфейс с меньшей метрикой имеет приоритет для прокладывания маршрута в сравнении с интерфейсом с большей метрикой. В случае отказа приоритетного канала маршрутизация меняется на интерфес с большим весом метрики. В никсах этот номер работает, теоретически он работает и в винде, но как показывает практика - не всегда. Работает ли этот фокус на твоей железке - я не знаю, но судя по тому, что ты таки создал эту тему, не особо работает. И в любом случае, не зависимо от того, работает или нет, всегда будет бегать служебный трафик между тобой и провайдером, от него ты никуда не денешься. На сколько я в курсе этих дел, дешевые решения за 20-40 баксов не умеют делать безотказные решения в плане тырнета.

0
lord_i - 15 Октябрь, 2011 - 09:19
Изображение пользователя lord_i.

Там метрики тоже настраиваются. Только у роутера по умолчанию приоритетный проводной канал и если он есть роутер автоматически укладывает 3G и отключает зону. То есть цикл выглядит вот так:

Подключение 3G
Oct 15 09:04:46  daemon.notice pppd[16591]: Connect: 3g-wan2 <--> /dev/ttyUSB3
Oct 15 09:04:47  daemon.info pppd[16591]: CHAP authentication succeeded
Oct 15 09:04:47  daemon.notice pppd[16591]: CHAP authentication succeeded
Oct 15 09:04:48  daemon.info pppd[16591]: Open UDP *.*.*.*:1024 -> 8.8.8.8:53
Oct 15 09:04:49  user.notice ifup: Enabling Router Solicitations on wan2 (3g-wan2)
Oct 15 09:04:49  user.info firewall: adding wan2 (3g-wan2) to zone wan

Возврат на PPPoE
Oct 15 09:04:57  daemon.notice pppd[16591]: Serial link appears to be disconnected.
Oct 15 09:04:57  daemon.info pppd[16591]: Connect time 0.2 minutes.
Oct 15 09:04:57  daemon.info pppd[16591]: Sent 4456 bytes, received 771 bytes.
Oct 15 09:04:57  user.info firewall: removing wan2 (3g-wan2) from zone wan
Oct 15 09:04:58  user.notice root: stopping ntpclient
Oct 15 09:05:03  daemon.notice pppd[16591]: Connection terminated.
Oct 15 09:05:16  daemon.info pppd[24414]: PPP session is 67
Oct 15 09:05:16  daemon.info pppd[24414]: Using interface pppoe-wan
Oct 15 09:05:16  daemon.notice pppd[24414]: Connect: pppoe-wan <--> eth0.2
Oct 15 09:05:16  daemon.info pppd[24414]: CHAP authentication succeeded
Oct 15 09:05:16  daemon.notice pppd[24414]: CHAP authentication succeeded
Oct 15 09:05:16  daemon.notice pppd[24414]: peer from calling number *:*:*:*:*:* authorized
Oct 15 09:05:16  daemon.notice pppd[24414]: replacing old default route to 3g-wan2 [*.*.*.*]
Oct 15 09:05:16  daemon.notice pppd[24414]: local  IP address *.*.*.*
Oct 15 09:05:16  daemon.notice pppd[24414]: remote IP address *.*.*.*
Oct 15 09:05:16  user.notice ifup: Enabling Router Solicitations on wan (pppoe-wan)
Oct 15 09:05:17  user.info firewall: adding wan (pppoe-wan) to zone wan

И хотелось решить вопрос без участия роутера.
А вообще, OpenWRT - это бомба ... уже две недели с наслаждением ковыряюсь в кишочках :)

0
Condor - 15 Октябрь, 2011 - 13:43
Изображение пользователя Condor.

А что мешает работать через ОДНОГО безлимитного провайдера и в случае падения связи, автоматически запускать коннект через резервный 3G модем с уведомлением, типа работаем на резерве, торрент отрубай?

0
lord_i - 15 Октябрь, 2011 - 15:35
Изображение пользователя lord_i.

Ничего не мешает. Так оно и есть. Только уведомление кому? :) А так машина, на которой поднят торрент сама определяет через какого провайдера она в данный момент работает и если провайдер 3G - автоматически вырубает торрент ... Таким образом нет привязки определения провайдера к конкретному роутеру.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры