Автоматическое переключение на резервный интернет канал windows

Обновлено: 04.07.2024

Очень часто в различных организациях возникает необходимость резервирования интернет-канала на случай каких-либо сбоев. Крупные организации могут позволить себе купить блок IP-адресов и AS и затем уже покупая каналы у нескольких интернет-провайдеров настроить BGP.

Для небольших компаний такая схема это непозволительная роскошь и обычно небольшие компании просто покупают интернет-каналы у нескольких провайдеров. И имея на каждом из каналов свои независимые адреса и прочие настройки каким-то образом (временами даже в ручную!) настраивают переключение каналов. Далее будет показан один из возможных способов организации автоматического переключения на резервный канал в случае сбоя основного и возврат обратно после восстановления связи.

Внесём немного ясности:

  • Шлюз работает под управлением Debian или Ubuntu Linux;
  • Основной интернет-канал на интерфейсе eth0 с адресом 1.1.1.2/24 и шлюзом 1.1.1.1 (у автора этих строк это ADSL от Таттелекома);
  • Резервный интернет-канал на интерфейсе ppp999 с адресом 2.2.2.2 (у автора этих строк это DOCSIS от ТВТ)

Для начала уточним (на всякий случай) как именно привязать ppp-соединение к ppp-интерфейсу с конкретным номером. Для этого нужно в соответствующий файле в "/etc/ppp/peers&quto; добавить строку:

Далее добавим ещё один параметр в тот же файл: метку соединения:

Кроме того этот интерфейс не должен при подъёме трогать маршрут по умолчанию. Это достигается примерно вот так:

Это нам пригодиться чуть позже. Сейчас нам нужно описать две дополнительные таблицы роутинга (по одной для каждого провайдера). Для этого в файл "/etc/iproute2/rt_tables" добавим следующие строки:

Теперь нам надо явно указать с какого интерфейса через какую таблицу роутинга искать маршруты. Для этого нужно выполнить вот такие команды (и заодно добавить в "/etc/rc.local" чтобы выполнялись при загрузке):

Разумеется надо чтобы в нужных таблицах были и нужные маршруты (как минимум маршрут по умолчанию). Для резервного канала это достигается созданием скрипта "/etc/ppp/ip-up.d/tbt" примерно такого содержания:

Для eth0 всё ещё проще: открываем файл "/etc/network/interfaces" и приводим конфигурацию eth0 к такому виду:

Теперь нужно перезагрузить сервер и после этого сервер будет по умолчанию идти в интернет через eth0, но при этом снаружи будет доступен по обоим каналам. Теперь создадим скрипт "/usr/local/scripts/check_internet.sh" следующего содержания:

Этот скрипт нужно запускать каждую минуту. Для этого в "/etc/crontab" нужно добавить строку:

Далее ещё нужно включить пересылку пакетов (forwarding) и поднять NAT для локальной сети на обоих интерфейсах. Примеры можно найти например тут и тут.

Хочу поделиться своим опытом настройки автоматического перехода на резервный интернет 3G, когда основной пропадает, и возврата на основной, когда он заработает. Все это реализовано стандартными средствами Windows.

Задача была — обеспечить постоянное наличие интернета на майнинг ферме. Усердное гугление ничего не дало. Интернет пропадает очень редко, потому покупать Mikrotik или другие железки желания не было.

Имеем проводной интернет (или wi-fi) и 3G свисток.

Вся настройка сводится к подключению 3G свистка и настройки коммутируемого подключения. Далее скрипт в .bat, который кладем в авто запуск.

Все операции проводились на Windows 10. На других версиях должно все работать, но может немного отличаться названия пунктов меню.

Естественно ставим дрова. Если с ними ставится GUI, то желательно отключить его авто запуск.
Идем в Центр управления сетями и создаем новое подключение. Выбираем коммутируемое и вводим настройки Вашего 3G провайдера.
Обязательно ставим «запомнить пароль». Имя пишем попроще. Его потом будем использовать в скрипте.

Подключаемся. Если все подключилось и есть интернет, то отключаемся и идем дальше.
Заходим в параметры адаптеров, открываем свойства нашего нового соединения, идем в параметры. Снимаем все галочки.

Сохраняем. С настройкой 3G все.

В винде, при активном коммутируемом подключении, весь трафик идет через него. А значит не придется возиться с настройкой маршрутизации.

Я имею весьма поверхностное представление о написании .bat файлов. Потому проверка ping реализована через костыль. Пишем результат в файл, а потом считаем длину файла. Методом научного тыка было выяснено, что при удачном пинге размер больше 320, при неудачном меньше 200. В зависимости от системы и языка, размеры файла могут отличаться.
Хотя, думаю, можно все это реализовать без записи в файл. Но пока других вариантов не нашел.

echo off
goto st1
:st0
TIMEOUT 300
:st1
ping -f -n 1 -l 1 8.8.8.8 > 1.txt
for %%i in (1.txt) do (set /a size=%% Первый TIMEOUT 300 — частота проверки наличия интернета в секундах. В данном случае, проверка раз в 5 минут.
Далее пингуем по очереди 3 сайта. Можно заменить на Ваши любимые сайты.
Если пинг есть — возвращаемся и ждем 5 минут. Если нет — пингуем следующий сайт.
Если все 3 сайта не пингуются, то переходим на 3G.
TIMEOUT 3600 — время, до попытки вернуться на основной интернет. В данном случае 1 час.
Через час 3G отключается, проверяем есть ли интернет, если нет, то опять включаем 3G.

Ниже этот скрипт, но с ведением логов. При каждом запуске создает новый лог. Также, для удобства, добавил вывод информации о состоянии подключения.

echo off
echo 3G switcher started
set CURDATE=%DATE%
set CURTIME=%TIME%
set CURLOG=%CURDATE:

3,2%log.txt
echo log file %CURLOG%
echo start log > %CURLOG%
date /t >> %CURLOG%
time /t >> %CURLOG%
goto st1
:st0
echo ONLINE
TIMEOUT 300
:st1
ping -f -n 1 -l 1 8.8.8.8 > 1.txt
for %%i in (1.txt) do (set /a size=%%

Скрипт лучше положить в отдельную папку, поскольку, со временем, собирается куча логов.

При написании скрипта использовались мануалы по .bat файлам и поиск в google. К сожалению, используемые источники уже не вспомню.

Сегодня мы поговорим с такой достаточно редкой, тем не менее весьма важной задачей, как резервирование интернет канала. В рамках обычного домашнего пользования интернетом редко кто сталкивается с необходимостью в обеспечении бесперебойного на 100% стабильного доступа в интернет с резервированием каналов передачи данных. Однако, в бизнес сфере, на производствах, на особо важных объектах резервные каналы доступа в интернет встречаются достаточно часто, т.к. отсутствие (даже кратковременное) связи чревато различными последствиями. Прежде всего - это безопасность объекта или сотрудников. Системы видеонаблюдения, пульты систем охраны, системы контроля доступа - всё это может использовать интернет-канал как основной способ передачи данных. Кроме того, отсутствие доступа в интернет может принести убытки компании или недополученную прибыль, которая в разы превышает затраты на резервный канал связи.

Резервирование интернет каналов - это создание автоматической системы доступа в интернет, при которой существуют два или более параллельных каналов связи, дублирующие друг друга, т.е. при выходе из строя основного канала, автоматически включается резервный, таким образом доступ в интернет не прекращается и не прерывается.

В данной статье мы расскажем о практической реализации такой схемы на примере одного из наших клиентов. Поскольку мы занимаемся беспроводным интернетом, то и резервирование будем делать на базе технологии 4G LTE (аналогично и для 3G).

Клиент - юридическое лицо (г. Краснодар), которому необходим бесперебойный доступ в интернет со статическим IP-адресом для обеспечения коммерческой деятельности. Изначально у клиента был оптоволоконный канал от местного провайдера, однако он был нестабильным и очень дорогим (что свойственно для тарифных предложений для юридических лиц), в районе 8000 руб/мес. за 10 Мбит/с скорости. В качестве альтернатив были предложены сети 4G LTE от операторов МТС, Мегафон и Теле2. Как обычно, на месте мы делаем замеры сигнала всех операторов по всех возможных режимах работы, что и было сделано, а в результаты мы получили следующие показатели: Мегафон LTE 1800 35-40 Мбит/с, МТС LTE 2600 20-22 Мбит/с. Теле2 только в 3G и результаты значительно хуже. Соответственно Мегафон был выбран в качестве основного канала, а МТС в качестве резервного. Отметим, что на объекте так же имеется сеть Мегафон LTE 2600, но скорости там нет, т.к. она сильно загружена, больше 6-8 Мбит/с получить не удалось. Это в очередной раз показывает, как важно производить замеры сигнала во всех возможных и доступных диапазонах LTE. Сеть Билайн в данном случае мы не использовали, т.к. клиенту необходим статический IP-адрес, а Билайн (по крайней мере пока, на август 2019 года) не предоставляет такую услугу на безлимитном тарифе.

Две наружные 4G LTE MIMO антенны и роутер с поддержкой двух модемов Две наружные 4G LTE MIMO антенны и роутер с поддержкой двух модемов

Итак, замеры сделаны, операторы выбраны, приступаем к монтажу антенн. Как видно, они направлены в разные стороны, что говорит, о том, что лучшие базовые станции могут быть вовсе не в одном направлении. Это опять же подтверждает необходимость правильного и полного замера сигнала для определения оптимальных условий установки оборудования. В качестве основного сетевого устройства был выбран роутер Keenetic Viva KN-1910 с двумя USB-портам, к которым можно подключить одновременно два модема Huawei E3372 Hilink , а в настройках роутера выбрать основной канал и резервный. Кроме того, данный роутер имеет достаточно мощный процессор и большой объём оперативной памяти, что важно для постоянной работы с множеством запросов от множества устройств в локальной сети и интернете. Для домашнего использования, как правило, достаточно роутера Keenetic 4G, однако для предприятий, промышленных и коммерческих объектов желательно что-то помощнее.

Переключение каналов от основного к резервному происходит автоматически на основании Ping Check, т.е. роутер Keenetic периодически проверяет наличие соединения с интернетом на основном подключении, в данном случае Мегафон, а в случае отсутствия соединения (базовая станция сломалась, модем вышел из строя и т.д.) автоматически моментально происходит переключение на резервное подключение, в данном случае МТС. Как только проблемы на основном канале будут устранены, роутер автоматически переключится обратно на него. Таким образом достигается бесперебойная работа и постоянный резервируемый доступ в интернет по технологии 4G LTE.

На самом деле возможности настройки приоритетов подключения в роутерах Keenetic достаточно обширны и подробнее описаны у них на сайте .

Стоимость. Такой комплект оборудования с двумя антеннами, роутером Keenetic Viva, монтажом, настройкой и подключением обходится в 29700 руб. Абонентская плата за два канала со статическим IP-адресом в 3000 руб. (на скорости до 40 Мбит/с). Таким образом, такая система даже экономически окупится за полгода в сравнении с проводным интернетом для юридических лиц. Не говоря уже о стабильности и в 4 раза более высокой скорости.

У меня появился небольшой опыт по настройке распределенной филиальной сети на базе всем известных роутеров. На основе этого опыта я расскажу, как организовать резервирование и автопереключение канала в Mikrotik с помощью второго провайдера через lte модем. Материал не претендует на лучшее и максимально эффективное решение, так как это просто мой личный опыт.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Данная статья является частью единого цикла статьей про Mikrotik.

Введение

У меня появилась задача по организации резервного канала в интернет с помощью lte модемов. На местах уже был проводной интернет, но он иногда сбоил. Надо было сделать так, чтобы это не приводило к простоям, так как без интернета невозможно было продолжать производственную деятельность.

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

2-й провайдер через lte usb модем

В качестве резервного провайдера было принято решение использовать lte модемы. Качество связи через них было приемлемое. Тарифные планы доступные, стоимость модемов невысокая. Mikrotik поддерживает большое количество usb модемов, так что не составляет труда подобрать подходящий вариант. Лично я сами модели 4g модемов не видел, так как настраивал все удаленно. Использовались различные устройства и производители. В рамках задачи по настройке резервирования это не принципиально, так как предложенный мной метод работает одинаково успешно практически с любым резервным провайдером. Не важно, будет ли он через usb модем или по проводу.

Пример одного из таких модемов, который использую лично я сам, и он отлично работает в Mikrotik. Модель - HUAWEI E3372h или МегаФон M150-2.

USB модем для Mikrotik

Самодельный Mikrotik Wan Failover на 2 провайдера

Рассказываю, как будет работать мой импровизированный wan failover в mikrotik на два провайдера. Я использую скрипт, который выполняет следующие действия:

  1. Пингует 2 разных ip адреса в интернете, каждый через отдельный канал интернета. Для этого создаются статические маршруты.
  2. В случае, если пинг через основной канал не проходит, а через резервный идет, выполняется автоматическое переключение на резервный канал путем смены дефолтного маршрута.
  3. Далее снова выполняются эти же проверки. Как только пинги через основной канал проходят, выполняется переключение на него.
  4. Я одновременно с переключением канала обрываю все tcp и udp подключения, а так же пишу информацию в лог. Это не обязательно делать, но конкретно мне нужно было. Соединения обрывались, чтобы побыстрее переключились sip телефоны и vpn соединение на микротике. А в лог я пишу информацию, так как она уходит на отдельный сервер где анализируется в том числе системой мониторинга.

Обязательным условием работы данного механизма переключения каналов являются статические маршруты по умолчанию для каждого провайдера, так как я их переключаю с помощью скрипта. Даже если у вас приходят настройки по dhcp, это не помеха. Надо просто отключить получение дефолтного маршрута и добавить его вручную.

Подобный механизм удобен в том плане, что он точно определяет доступность интернета по тому или иному каналу. Если использовать встроенные проверки микротика, то они проверяют доступность шлюза провайдера и на основе этого делают вывод о наличие интернета. Но часто шлюз провайдера доступен, а интернета все равно нет.

Автоматическое переключение на резервный канал

Давайте теперь настроим автоматическое переключение на резервный канал в случае выхода из строя основного. Для начала убедиться, что оба канала настроены и интернет через них работает. В моем случае я буду использовать 2 интерфейса:

  • ether1 - основной интернет канал
  • lte1 - запасной через 4g

Первым делом добавим 2 статических маршрута до каких-то ip адресов в интернете, по которым будем определять наличие интернета на микротике. Я для этого использую dns серверы Яндекса - 77.88.8.1 и 77.88.8.8. Добавляем маршруты:

Проверка доступности каналов в интернет

10.0.0.1 шлюз usb модема
192.168.100.1 шлюз проводного интернета

Теперь проверим связь через каждый канал:

Если хотите на 100% убедиться, что пинги идут каждый по своему каналу, можете использовать свои сервера, запустив там tcpdump. Я время от времени делал проверки, когда нужно было наверняка знать внешний ip адрес каждого интерфейса. Иногда не было другой возможности, так как я все настраивал удаленно и информации о конкретных настройках интернета у меня не было.

В целом, понять что соединения идут по разным интерфейсам можно и по отклику. На интерфейсе lte1 задержки будут значительно больше.

Тестирование обоих каналов

Дальше убеждаемся, что для каждого провайдера настроен статический дефолтный маршрут. И обязательно каждый из них помечаем комментарием. Можно пометить их как main и reserver, можно как-то еще. Я лично просто имя интерфейсов писал. Далее они будут использоваться в скрипте. Маршрут для резервного канала сразу отключаем.

Основной и резервный канал

В целом, вся подготовка закончена. Теперь идем в System -> Scripts и добавляем скрипт, который будет переключать каналы:

Скрипт в процессе эксплуатации (пару месяцев тестов на паре десятков филиалов) претерпевал различные изменения, пока не получился подходящий для моей ситуации вариант. Немного поясню некоторые моменты.

Все остальное вроде бы понятно и так, при обычном осмотре скрипта. Пингуем, смотрим, прошли ли пинги. Если нет, переключаемся, если да, то ничего не делаем. Принцип достаточно простой. Его можно встретить в огромном количестве статей в интернете на тему mikrotik failover. Я только добавил сброс соединений и записи в лог файл.

Сохраните этот скрипт и запустите. Очень рекомендую это делать, имея физический доступ к устройству. Если что-то пойдет не так, доступ к микротику потеряете. У меня один раз такое случилось еще в момент подготовки и тестирования этого решения. Потом уже наловчился, все моменты проработал и настраивал все удаленно. Ни одного фейла не было, чтобы на устройстве совсем пропал интернет. Пару раз пришлось звонить на место и через AnyDesk или TeamViewer подключаться локально к микротику.

Страховал себя следующим образом. Добавлял еще один скрипт:

Запускал его и выполнял все потенциально опасные действия. Если все хорошо и связь не пропадала, то прерывал выполнение скрипта на вкладке Jobs.

Прерывание работы скрипта

Если этого не сделать, то через 240 секунд старая конфигурация, сделанная при запуске скрипта, загрузится и устройство ребутнется. Удаленный доступ к нему восстановится.

В завершении всей настройки проверки и переключения на резервный канал в mikrotik добавляем скрипт в планировщик. Для этого идем в System -> Scheduler и добавляем задание на выполнение каждые 30 или 60 секунд. Интервал подберите сами.

Автоматическое переключение на резервный канал

Вот и все. Переключение на резервного провайдера настроено. Если интернет через основной wan интерфейс перестанет работать, произойдет переключение на lte интерфейс.

Заключение

Еще раз напоминаю, что это мой опыт и мое решение по резервированию канала. Я не претендую на уникальность или best practice. Данный способ мной использовался не раз. Основные удобства следующие:

  1. Настраивается просто и понятно.
  2. Умеет сбрасывать все соединения после переключения.
  3. Пишет информацию в лог для дальнейшего анализа.

В данном проекте я все Mikrotik объединил в единую vpn сеть для удобного управления. Настроил мониторинг микротиков, в том числе и переключение провайдеров. А так же сделал сбор логов с них в единый сервер. Все это существенно упростило обслуживание и управление распределенной филиальной структуры.

Читайте также: