Как оформить дополнительный интернет-канал в linux?
Здравствуйте.
Задача
Ряд своих скриптов хочу перевести на домашний raspberry pi 2, который должен будет выступить как веб-сервер. Ничего критического, только простые и заменимые вещи. Доступ извне через DDNS, нужен только мне, ибо запросов от иных людей к моим скриптам не ожидается.
Однако, хотелось бы, чтобы доступен этот веб-сервер был если на 100% времени, то хотя бы приличное его количество. Само собой, одного домашнего интернет-канала мало, ибо при разрыве соединения и, возможно, последующей перезагрузкой роутера или еще каких манипуляций, доступ к малинке извне будет закрыт.
В качестве дублирующего канала рассматриваю 4g/3g в двух разрезах - либо роутер с доступом через wi-fi, либо модем с доступом по usb (дополнительный usb-разветвитель с отдельным питанием есть).
Вопросы.
1. Как бы Вы организовали переключение между соединениями в случае недоступности основного канала?..
Я предполагаю следующее:
а) Первый вариант - когда соединение не разорвано, но страницы не открываются - проверять через какой-то промежуток времени связь с интернетом. Но через какой промежуток?.. И есть ли какие уже существующие инструменты для этого?.. Хостинг-провайдеры явно что-то солидное используют.
б) Вариант второй - если соединение с домашним интернетом (основным каналом) все же разорвано, то каким образом сконфигурировать параметры network manager'а, чтобы он автоматом переключал на альтернативное соеднинение?..
2. В случае разрыва соединения (основного или альтернативного), мне должны все же лететь смс-ки о том, что домашная сеть недоступна. Как подобное реализовать на 4g/3g модеме я уже почитывал и примерно понимаю. Но вот возможно ли подобное на 4g/3g роутере?..
Проблема доступности количеством каналов не решится.
Для веб сервиса, нужен нормальный фронт балансер.
Сначало все упрется в A запись DNS, по доменому имени же заходим.
1 решение. DynDNS будет менять запись в зависимости от рабочего канала.
2 решение. Свой собственный DNS сервер, который через Round Robin будет балансировать записи.
Но от кеша DNS пользователя все равно никуда не деться, активный пользователь наткнется на ошибку доступа к сайту.
Далее запрос идет на вебсервер, а значит правила и маршрутизация должны быть настроены отдавать пакеты на тот канал с которого пришли, решается маркировкой трафика. Таким образом одновременно могут работать 2 и более каналов.
Столкнулся со схожими проблемами, долго бился с wrt , потом колдовал собственными костылями. В конечном счете плюнул и купил микротиковский роутер. Убил сразу кучу зайцев. Во первых внутри роутеров микротика можно поднимать виртуалки с wrt прошивками, во вторых роутер работает просто как часы, в третьих запитал по poe от роутера 2 ip телефона и wifi в другой комнате. Сам роутер посадил на ибп и теперь проблем с доступностью вообще не бывает, все в своих vlan'ах, скорость даже с кучей торрентов не падает, все легко настраивается и вообще был первый опыт общения с оборудованием микротика и сказать что я доволен это ничего не сказать, хотя так же работал с цисками и кучей разных дешевых комутаторов\свичей и роутеров.
В общем почитай по этой теме я сильно уверен что RouterOS или маршрутизаторы\роутеры микротиковские больше всего под задачи доступности подойдут.
Я уже давно засматриваюсь на роутеры этой фирмы! В некотором смысле решал - брать его или не брать, но после Вашего поста очень возможно, что решусь. Уж больно воодушевляют возможности тонкой настройки...
Хайбулла Мусаев: Брать однозначно стоит, единственное что скажу. Возможно стоит купить лицензию на router os отдельно как на операционку и собрать мега шлюзв котором объединить домашний nas, резервирование каналов и виртуалки простенькие. В некоторых случаях когда много мелочи по дому это удобнее, скажем если стоит nas, где то отдельно крутится домашний сервер с мелкими утилитками, wifi разбросаны то дешевле и удобнее собрать свой маршрутизатор и накатить на него роутер ос.
К примеру есть огромный выбор на вкус и цвет материнок формата mini itx с нужными портами и питанием, например с 4-мя ethernet парой com и питанием от 12 вольт. Я правда такие варианты не пробовал но на хабре и на форумах очень часто встречаются люди которые собирают такие штуки.
Скажем так, система может подхватить сама, но кто ей укажет (и главное - как?) какой канал основной, а какой - альтернативный?.. В этом тоже вопрос. Во-вторых, если основной канал не разорван, а просто, что называется, перестал открывать странички - это же тоже надо как-то отследить и перенаправить трафик через модем/роутер?.. И третий момент - Вы мне дали ссылки на модемы, с ними я примерно разобрался, но пока решаю вопрос с роутером, он мне видится предпочтительней - однако с роутера слать смс-ки не читал о таком, вот и решил до кучи спросить.
Хайбулла Мусаев: я могу ошибаться, но разве порядок eth1, eth2 не обозначает главный/не главный.
2. Скрипт, который раз в n минут/секунд пингует/пытается загрузить тестовую страничку, а потом уже предпринимает действия.
3. Кастомная прошивка + скрипт через внешний сервис для отправки смс.
Написать bash скрипт, который пингует адрес в интернете в случае если ответ отрицательный прописывать новый маршрут route -G b далее по тексту. Скрипт сажается на cron и работает раз в минуту.