Ситуация так сложилась, что надо делать бекапную линию интернета. К сожалению, все, что мне доступно это мобильные провайдеры. Т.е. стабильность их заставляет желать лучшего. Потому встал вопрос: как организовать балансировку с подстраховкой. Начитался всяких умных статеек как вообще завести двух провайдеров одновременно (Например https://www.opennet.ru/docs/RUS/LARTC/x348.html). Пока предполагаю, что оба 3G модема втыкаю в Linux сервер и делаю балансировку на основе weight. Теперь представим ситуацию, что один из провайдеров "снизил скорость". Как это поймать, и, соответственно, изменить weight, чтобы трафик проходил больше через второго провайдера? Промежуточное решение - проверять скорость с каким-то внешним сервером раз в xxx секунд. Может есть какие-нибудь статейки на эту тему или скриптами поделитесь
огорчу. обычно это самописные скрипты, красивого ничего нет.. я тоже писал самописный скриптик, сначала ipfw count записывал счетчик, через каждые 2 минуты снимал и обнулял показатели по каждому интерфейсу, и понимал насколько канал загружен. Но у меня в скрипте была забита константа для каждого канала "потолок" скорость, то есть я банально сравнивал сколько траффика получил, и сколько максимум.
Здається мені ця тема вічна. На мій погляд, скільки б не було души та часу вкладено в подібні скрипти з двох потенційно не самих кращих каналів вийде один ще гіршій. Тому треба обрати один, а другий піднімати якщо першій не працює.
В этом что-то есть. Я еще не видел успешных реализаций протяжки, допустим того же видео с ютюба через два канала одновременно. Тот канал, который хуже дает "спотыкания". Потому тут хочу разделить трафик по значимости и пропускать через хороший канал более важный трафик. А через запасной - менее нужный (типа торрентов). Но как определить, что сейчас один канал работает на 100% своей средней пропускной, а второй на 20%? Считать прошедшие пакеты, как мне кажется, не самый лучший пакет - если один из каналов будет мало загружен, то на нем пакетов меньше, а значит и загружать его будем меньше. Мерять пинг? Тоже как-то не то. Раз в минуту скачивать 1КБ с внешнего сервера и замерять скорость?
Я зараз тільки теоретик, бо з кінця 90-х мережею сам не займаюся. Раз на хвилину 1кб - це додатковий трафік 100Мб на місяць, наче і небагато але чи буде з цього хоч якійсь сенс сумніваюся. Канал може бути добрим і стабільної якості, але інші сервіси займають його нерівномірно, тому швидкість 1кб буде постійно коливатися в незалежності від його стану. Думаю стандартна статистика, яку можна отримати з інтерфейсу дасть більше інформації (кількість in/out, кількість помилок). Щоправда скільки у мене різні адміни не білися над цією проблемою, зупинилися за статичному розведення різних сервісів по різним каналам, та перекиданні сервісу на іншій канал тільки в разі повного падіння основного дня нього.
Это решается посредством AS+BGP. Вопрос в целесообразности.
Я бы предложил еще использовать PBR. Но коллега правильно сказал - лучше разделить сервисы по каналам и переключать в случае полного падения одного из. Особенно когда мы говорим о 3G модемах как основных каналах.
NoOne 19.03.2018 16:23 пишет: Это решается посредством AS+BGP. Вопрос в целесообразности.
Я бы предложил еще использовать PBR. Но коллега правильно сказал - лучше разделить сервисы по каналам и переключать в случае полного падения одного из. Особенно когда мы говорим о 3G модемах как основных каналах.
BGP ничего не решит при малом количестве пользователей... максимум шо можно это таки вручную распределить сервисы (или пользователей) по каналам... с автоматическим переключением на рабочий канал...
P.S. если кому надо в аренду AS/IPv4 есть лишняя AS+IPv4/23 - пишите в личку...
Тут только один правильный выход - купить виртуалку, настроить на ней NAT, а на своей стороне поднять VPN bonding к этой виртуалке. Виртуалка обойдется в $5 на каком-нибудь digitalocean. Будет надежно и более менее красиво. Под линух, гуглить VPN bonding vtrunkd Вот, например: http://vrayo.com/how-to-set-up-a-bonding-vpn-connection-in-linux/
sigma 22.03.2018 19:15 пишет: Купить где-то виртуалку, чтобы она разруливала трафик от меня??? Я что-то в топологиях не понимаю Сейчас занимаюсь "любовью" с модемами и малинкой
Да, все остальное позволяет пускать одно соединение через один канал, а так можно будет сделать один быстрый канал и масштабировать добавляя модемы. Есть промышленные коробки, которые позволяют это делать. Например для онлайн вещания.
Странное решение. Нелогичное. Чтобы поставить два канала мне все-равно придется ставить у себя оборудование посерьезнее "роутера за 300 грн". Так зачем мне тогда эта виртуалка? И в чем ее смысл? Просто какой-то клон linux я организую намного дешевле и проще. И ставить менеджер канала далеко за "точкой принятия решения" нелогично. Допустим, сложилась ситуация, что канал "А" был вообще отключен. Настройки были такие, что весь трафик шел через канал "Б". И тут умирает канал "Б". Даже, если я включаю "А", то трафик через него не пойдет,пока дальняя виртуалка не даст команду. А она не даст, потому что к ней не достучаться. Замкнутый круг.
Вот именно для решения проблем с отключением, эта схема должна выглядеть именно так. При отключении одного канала будет падать скорость, а не Интернет. Без отдельного хоста в Интернете это работать не будет. Почему так - долго объяснять
Во всех остальных конфигурациях (на скриптах-костылях и т.д.), при падении одного канала будут падать все подключения, которые в данный момент шли через этот канал. Ну и само собой увеличения скорости от количества модемов тоже не будет.
Вот, из описания vtrunkd:
В ответ на: Setting up bonded VPN tunnel using multichannel VPN technology allows you to get a more stable connection for streaming, more combined bandwidth to download and upload files, and generally improves internet experience in case of a mobile setup, for example in a car, or in case if you have several different internet connections that are all unreliable separately.
Хммм... Спасибо. Интересный вариант. Даже вообразить такое не мог. Но что-то в этом есть. Буду копать.
PS. Капец, до чего технологии дошли, интернетом у меня дома управляет сервер "где-то там", который, в свою очередь, доступен через интернет у меня дома.
Ну не управляет, а выступает шлюзом фактически. Если-бы у модемов был шлюз в локалке, то и виртуалка не нужна была-бы. Но они-то смотрят в Интернет Поэтому, надо сделать "локалку" с помощью VPN. И будет работать по аналогии с линк агрегацией (LACP) на свичах. Один модем погасил - интернет работает через второй. Сигнал на одном модеме стал хуже - второй вытягивает.