Home » Mikrotik » Mikrotik 951Ui-2HnD 2 wan интерфейса для резервирования канала

Mikrotik 951Ui-2HnD 2 wan интерфейса для резервирования канала

У меня в руках оказался очень интересный роутер Mikrotik RouterBOARD 951Ui-2HnD

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке.

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

http://mikrotik.ru/katalog/katalog/hardware/wireless_soho/routerboard-951ui-2hnd-318

Привлекателен он тем, что за небольшие деньги мы получаем аппарат с огромным функционалом. Я решил проверить, как с его помощью можно организовать резервирование канала в интернет. Мы имеем 2 провайдера, один основной, другой резервный. Задача автоматически переключаться на резервный канал, если основной недоступен. В качестве основного канала будет usb модем 3g или 4g от сотового оператора, а проводной ethernet со спутника в качестве резервного . Сразу скажу, что микротик поддерживает не все модемы и не со всеми работает на максимальной скорости. Тут нужно каждый конкретный модем проверять. У меня было несколько, нормально заработал LTE USB модем 830FT от МТС. Максимальная скорость была ниже, чем если бы модем был подключен к компьютеру. С чем это связано — не знаю. Но статья не об этом. Интернет может быть любым. Описанная мной ситуация актуальна в загородном доме, где есть стабильный, медленный и дорогой интернет от спутника и быстрый, дешевый, но нестабильный интернет от сотового оператора. Задача переключаться на спутник, если usb модем по какой-то причине теряет связь.

Технология переключения канала

Способы организации переключения канала могут быть разными. Я выбрал следующий:

Создаем 2 статических маршрута до любых адресов в интернете. Я в качестве таких серверов выбрал публичные DNS серверы гугла 8.8.8.8 и 8.8.4.4. Маршрут до первого сервера будет идти через шлюз основного провайдера, до второго — через резервного. Дальше создаем два маршрута по-умолчанию для выхода в интернет с использованием основного и резервного канала. Потом с помощью скрипта мы периодически пингуем dns гугла через основного провайдера. До тех пор, пока пинги проходят, его маршрут будет активным. Как только пинги пропадают, скрипт переключает маршрут по-умолчанию на резервного провайдера, делая активным его. Когда пинги по первому маршруту появляются, скрипт снова делает основной маршрут активным, а резервный отключает. При такой схеме, даже если у вас не пропал линк на сетевой карте, а интернета нет, произойдет переключение.

 Настройка резервирования интернета

Что мы имеем:

Список интерфейсов в Mikrotik

ether1-gateway — ethernet интерфейс резервного спутникового провайдера

modem — LTE интерфейс модема основного провайдера

На обоих интерфейсах настраиваем получение IP адреса по DHCP:

Настройка IP в Микротик

В пункте Add default route ставим «no».

Создаем необходимые статические маршруты для пинга:

/ip route add disabled=no distance=1 dst-address=8.8.8.8/32 gateway=192.168.0.12
/ip route add disabled=no distance=1 dst-address=8.8.4.4/32 gateway=192.168.99.1

И добавляем 2 дефолтных роута для обоих провайдеров с обязательными комментариями для каждого gw1 и gw2

Должно получиться так:

Резервирование провадеров в микротик

Теперь в System — > Scheduler создаем задание на выполнение скрипта:

:local PingCount 3;
:local CheckIp1 8.8.8.8;
:local CheckIp2 8.8.4.4;
:local rName [/system identity get name];
:local rDate [/system clock get date];
:local rTime [/system clock get time];
:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];
:local BackGw [/ip route get [find comment="gw2"] disable];
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
:log warning "Set routes to gw2";
/ip route disable [find comment="gw1"];
/ip route enable [find comment="gw2"];
}
:local MainGw [/ip route get [find comment="gw1"] disable];
:if (($isp1=$PingCount) && ($MainGw=true)) do={
:log warning "Set routes to gw1";
/ip route enable [find comment="gw1"];
/ip route disable [find comment="gw2"];
}

Ставим интервал запуска скрипта каждые 30 секунд : 00:00:30

Теперь можно проверять. При отсутствии пинга адреса 8.8.8.8 маршрут gw1 становится disable а gw2 enable. Одновременно с этим в лог пишется «Set routes to gw2». Когда пинг возвращается, все переключается обратно и в логе появляется запись «Set routes to gw1».

Вот так просто можно организовать резервирование канала с помощью двух провайдеров интернета и роутера микротик. Данный способ успешно опробован лично.

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

Помогла статья? Есть возможность отблагодарить автора

Рекомендую полезные материалы по схожей тематике:

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

24 комментария

  1. Аватар
    Дмитрий

    Добрый день! Хорошая статья, попробую внедрить в свою сеть. Но вопрос не большой. Смысл тот же — один провайдер основной 3/4g второй резервный спутниковый канал ВСАТ. Но можно ли настроить фаервол в этой схеме, чтобы через 3/4g как основной канал был полный доступ, а через второй канал ( спутник ) ограниченный доступ только разрешенных ресурсов + email. Спутник дорогой трафик.

    • Zerox

      Все можно. Не вижу проблем. В фаерволе правила легко привязываются к интерфейсу.

  2. Аватар
    Владимир

    5 лет назад с микротиком плотно не работал, но на данный момент действительно можно проще:
    add check-gateway=ping distance=1 gateway=1.1.1.1 pref-src=1.1.1.2 routing-mark=IPS1
    add check-gateway=ping distance=1 gateway=2.2.2.1 pref-src=2.2.2.2 routing-mark=ISP2
    add check-gateway=ping distance=11 gateway=8.8.4.4
    add check-gateway=ping distance=12 gateway=8.8.8.8
    add distance=5 dst-address=8.8.4.4/32 gateway=1.1.1.1 scope=10
    add distance=5 dst-address=8.8.8.8/32 gateway=2.2.2.2 scope=10

    но скрипт имеет право на жизнь, в этом и прелесть ROS.

    про модемы все так же ничего не поменяется особенно =)
    а вот про дистанции, проверка шлюза… может быть и доступен, а дальше все лежит… при конфиге выше, проверяется не шлюз, а конечный хост через нужный канал.

    • Zerox

      Все верно. Тестить шлюз для проверки интернета идея так себе. Чаще всего шлюз доступен, а интернета нет. Нужно проверять конечные хосты в интернете, а не шлюзы провайдера.

    • Аватар

      Добрый день! Можете помочь по настройке mikrotik sxt lte kit ? Там две симкарты не могу найти инфы как сделать , чтобы при падении слота симки а все переключалось на слот симки б …. igon-spb@rambler.ru

  3. Аватар

    Зачем дописывать скрипт, настраивать шедулер и забивать ресурсы МТ дополнительными действиями, если можно в Route List прописать маршруты с разными дистанциями (для основного канала дистанция = 1, для резервного = 2) и поставить check gateway = ping?

    • Zerox

      Эта статья писалась более 5-ти лет назад. Возможно в то время такое простое решение не работало. Уже не помню подробностей. но такой вариант никаких ресурсов особо не потреблял и работал надежно. А может и сейчас работает.

  4. Аватар

    а если основоной и резервный канал 3г модема(2шт) ?

  5. Аватар

    ты когда-то делал настройки микротик на три провайдера один основной по кабелю, второй резерв по кабелю и третий резерв по 3G модему через юсб порт микротик?

    • Аватар

      ой извини по 4G модему через юсб порт микротик?

    • Zerox

      Нет, не делал. Это уже похоже на билет, запасной билет и проездной, как в Ералаше :) Хотя у меня есть один объект в подмосковном городе, где 2 канала интернета — основа и резерв, но они оба откуда-то из одного места приходят. Чаще всего оба провайдера падают одновременно, особенно если весь квартал обесточат. Наличие упсов в твоей стойке на спасает. Тут бы пригодился 4g модем.

      • Аватар

        понятно так что подскажеш по настройке?

        • Zerox

          Так а что я подскажу, если сам не настраивал. Надо брать, настраивать и тестировать. Можно даже этот скрипт подредактировать на 3 провайдера. Немного больше условий и проверок будет, но в целом ничего сложного.

  6. Аватар
    Александр

    Добрый день! А разве не проще сделать все это простым Netwatch? Смысл тот же, текста меньше. Если я не прав — поправьте меня.

    • Zerox

      Может и проще. Статья давно писалась, наверняка сейчас описаны более простые и универсальные способы.

  7. Аватар
    Алексей

    ДОбрый день!
    Не посдкажите как отправлять траффик через второго провайдера? скажем мне нужно smtp отправлять не через первого а через второго.

  8. Аватар

    А зачем пихать скрипты, не легче ли просто настроить рекурсивные маршруты и дистансы?

  9. Аватар
    Виталий

    Как привязать конкретный IP(192.168.0.192) чтобы только он из внутренней сети переключался на другой провайдер. Заранее Спасибо!

    • Zerox

      Можно по этой же методике сделать, менять не шлюз по-умолчанию, а прописывать новый маршрут для конкретного адреса. Готового рецепта не дам, так как давно не занимаюсь этой темой.

  10. Аватар

    Дичь какая то. С чего вы задаете статические IP адреса гейтвеев, если они у вас по DHCP приходят? Сменит их провайдер их и аля-улю, ничего не будет работать.

    • Zerox

      А часто у вас провайдер это делает? На моей памяти я такого ни разу не наблюдал. Даже если сменит, можно вручную поправить.

      Это всего лишь один из вариантов, очень простой. Для резервирования каналов на микротике есть 100500 вариантов решения задачи.

    • Zerox

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

  11. Аватар
    Вячеслав

    Спасибо за отличное решение! Везде в сети лежат гораздо более сложные, а это, действительно, простое. НО: при его реализации на своем 2011-м натолкнулся на необходимость дополнительного указания интерфейсов в пинге (в скрипте), иначе несморя на недоступность основного канала пинги на 8.8.8.8 проходили через резервный, и систему «колбасило»: при переключении на резервный канал скрипт сразу же при следующем запуске находил пинг на 8.8.8.8 через бэкапный канал, и переключался обратно. На основном при этом Интернета не было и скрипт переключался опять на резервный, и так по кругу.

    Все дошаманил путем добавления в скрипт в команды ping параметра interface=»ether1″ и interface=»ether5″ при условии, что у меня оба канала, и основной и резервный подключены проводами к 1-му и 5-му портам, соответственно. В этом случае пинги идут гарантированно через принудительно указанный интерфейс, и если там Интернта нет, то пинг на 8.8.8.8 не пройдет никаким образом. Без вариантов.

    Возможно, у меня это связано с особенностью провайдера резервного канала или где-то в маршрутах есть «дырка», т.к. у меня настроена относительно сложная система из двух Микротиков с автомтическим поднятием туннеля между ними при условии «видимости» всех ресурсов с обеих сторон.

    Тем не менее, считаю, что вышеуказанное добавление параметра interface в команды ping только улучшает стабильность приведенного решения, не ухудшая его.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.