Всем привет.
Возможно оффтопик, но все-же.
К инету подключен через роутер с основным безлимитным и вспомагательным (очень лимитным) провайдерами.
Как красиво определить через какого провайдера работаю в данный момент? все что пришло в голову - делать 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
Нервирует паразитный трафик в случае работы через очень лимитного провайдера ...
Может кто реализовывал что-то подобное?
какой роутер, аппаратный или комп с двумя сетевками? Как подключены провайдеры? Почему эти ключевые вещи мы должны телепатировать?
Это я специально. Чтоб был повод меня попинать :)
Роутер TP-LinkWR1043ND OpenWrt Backfire 10.03.1-rc5 / LuCI 0.10 Branch 0.10+svn7292
Основной провайдер PPPoE, второй - 3G-EVDO модем.
Я тут подумал, еще можно держать расшаренный через sshfs директорий с роутера, в который тот при переключении будет какой-то флаг кидать, но тоже как-то неэстэтично ...
Хотелось решить задачу без привязки к роутеру. А вдруг завтра другой будет ...
Вроде сделал поинтереснее. Расход трафика - один 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
Так вроде покрасивше. Решено? Единственный минус - если провайдер имя гейтвея поменяет все перестанет работать.
угу, таки аппаратный...
На обычных софтовых решениях маршрутизация разруливается за счет метрик интерфейса, т.е. интерфейс с меньшей метрикой имеет приоритет для прокладывания маршрута в сравнении с интерфейсом с большей метрикой. В случае отказа приоритетного канала маршрутизация меняется на интерфес с большим весом метрики. В никсах этот номер работает, теоретически он работает и в винде, но как показывает практика - не всегда. Работает ли этот фокус на твоей железке - я не знаю, но судя по тому, что ты таки создал эту тему, не особо работает. И в любом случае, не зависимо от того, работает или нет, всегда будет бегать служебный трафик между тобой и провайдером, от него ты никуда не денешься. На сколько я в курсе этих дел, дешевые решения за 20-40 баксов не умеют делать безотказные решения в плане тырнета.
Там метрики тоже настраиваются. Только у роутера по умолчанию приоритетный проводной канал и если он есть роутер автоматически укладывает 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 - это бомба ... уже две недели с наслаждением ковыряюсь в кишочках :)
А что мешает работать через ОДНОГО безлимитного провайдера и в случае падения связи, автоматически запускать коннект через резервный 3G модем с уведомлением, типа работаем на резерве, торрент отрубай?
Ничего не мешает. Так оно и есть. Только уведомление кому? :) А так машина, на которой поднят торрент сама определяет через какого провайдера она в данный момент работает и если провайдер 3G - автоматически вырубает торрент ... Таким образом нет привязки определения провайдера к конкретному роутеру.
Отправить комментарий