Настройка mikrotik dualwan на 2х модемах

Обновлено: 07.07.2024

Одна из наиболее популярных задач, решаемых на оборудовании Mikrotik – настройка RouterOS на работу с двумя интернет-провайдерами или, простыми словами, настройка резервного канала. Данный вопрос будет актуальный как для бизнеса, так и для домашних пользователей, которым требуется организовать бесперебойный канал выхода в сеть Интернет.

При помощи описанного метода, вы сможете настроить резервный канал на любом оборудовании Mikrotik RouterBOARD, независимо от типа подключения к сети провайдера.

Недостатки простого «простого» и «сложного» способа переключения на резервный канал в Mikrotik

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

Так есть ли выход?

Если Вы хотите научиться настраивать MikroTik, предлагаем пройти онлайн обучение. Более подробную информацию Вы можете найти в конце данной публикации.

Простое и надежное переключение на резервный канал в Mikrotik

К большому сожалению, абсолютное большинство инструкций по данной теме предлагают варианты «как есть», без должного разъяснения принципа работы алгоритма и формирования у пользователя четкого понимания того, что они делают.

Если вы ищите «готовый рецепт» и не хотите вдаваться в тонкости настройки, возможно, вам следует поискать другое решение. Если же у вас есть желание разобраться в том, как научиться настраивать резервный канал практически на любом устройстве RouterBOARD с любым типом подключения – эта публикация для вас!

Перед тем, как приступить к описанию метода, хотел бы добавить небольшую рекомендацию. Не бойтесь командной строки. Вас никто не заставляет ею пользоваться, хоть это и очень удобно при частичном импорте различных конфигураций. Не хотите – не пользуйтесь. Рекомендую начать с того, чтобы попытаться понять смысл используемых параметров и опций. Абсолютно все команды дублируют интерфейс Winbox – читая «конфиг», проделать то же самое через Winbox легко и просто. Если вы захотите работать с Mikrotik и RouterOS на более продвинутом уровне, рано или поздно, пользоваться командной строкой все-равно придется.

Первым делом следует определить, каким образом вы подключены к сети провайдера – из актуальных методов подключения – DHCP или PPPoE. Также это могут быть и устаревшие методы подключения – L2TP или PPTP.


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

Ищите маршрут по-умолчанию, его легко определить, т.к. в Dst. Address всегда указано 0.0.0.0/0. К примеру, на скриншоте показан маршрут в интернет через интерфейс ether1-gateway и шлюз провайдера 134.249.110.190. Шлюз может понадобиться для того, чтобы правильно прописать маршруты.


С маршрутами определились, далее необходимо отключить маршруты по-умолчанию для обеих провайдеров. К примеру, для подключения по DHCP это делается в IP – DHCP Client.
Add Default Route = NO

Для PPPoE, а также PPTP/L2TP в списке интерфейсов выберите интерфейс провайдера и отключите опцию Add Default Route.
После этого в списке маршрутов пропадут маршруты 0.0.0.0/0, а доступ к сети Интернет будет прекращен. Необходимо вручную добавить маршруты на оба провайдера.

Для этого создаем два маршрута к 0.0.0.0/0 через 2 разные интерфейса и 2 разные шлюза. В конкретном примере первый провайдер находится на интерфейсе sfp-sfpplus1 с шлюзом 195.16.77.129. Для основного провайдера добавляем комментарий ISP1 – нужен он нам будет для корректной работы переключения между провайдерами. В качестве Distance указываем 1.

В случае с ppp-интерфейсами все чуть проще, можно просто указать интерфейс в качестве шлюза. Ниже пример для PPPoE. Для резервного канала добавляем примечание ISP2, в качестве Distance указываем 2. Параметр Distance влияет на приоритет маршрута, чем меньше число – тем выше приоритет маршрута.

Теперь необходимо определиться с эталонным ресурсом в сети интернет, по которому мы будем определять доступность всей сети Интернет. Я бы рекомендовал использовать надежные DNS Google 8.8.8.8, 8.8.4.4 или Amazon Cloudflare 1.1.1.1. Почему? Данные сервисы используют мощную распределенную сетевую инфраструктуру и гарантируют практически бесперебойный аптайм.
Работа Netwatch основана на том, что доступ к 1.1.1.1 у нас разрешен только с первого провайдера (ISP1), что и выступает индикатором работоспособности Интернет.

Основной провайдер выдает динамический IP по DHCP со сменой шлюза

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

В случае с получением параметров по DHCP, обычный маршрут 0.0.0.0/0 с gateway = ether1 не обеспечит выход в Интернет, т.к. при таком подключении следует явно указывать IP шлюза. Но шлюз периодически меняется – как быть? Можно писать скрипты, но есть вариант на порядок проще и легче.

Для ISP1 следует задать Disatance, отличный от 1, например, 2. Делается это в подменю IP – DHCP Client - [ISP1] – вкладка Advanced – опция Default Route Distance.

Что это нам даст? При отсутствии других маршрутов, такой маршрут будет основным. Для второго провайдера следует задать Distance = 1. Если включить такой маршрут – он станет основным, т.к. имеет больший приоритет. Таким образом, включая и отключая маршрут резервного провайдера, можно управлять переключением между провайдерами. Учитывая, что в качестве резервного канала обычно выбирают 3G/4G-модем, больше проблем не возникнет.

Ответы на частые вопросы

Казалось бы, все понятно, но метод переключения не работает. Такое может быть, если у вас NAT имеет настройки, отличные от дефолтных.

Для работы данного метода, необходимо, чтобы у вас присутствовало стандартное правило маскарадинга:

Данное правило позволяет хостам в локальной сети, находящимся за NAT, выходить в интернет через группу интерфейсов «WAN».
Данного правила недостаточно, необходимо, чтобы оба интернет-интерфейса находились в группе WAN. Для вышеприведенной конфигурации это имеет следующий вид:

Также рекомендую отказаться от использования DNS-серверов провайдера. Как показывает практика, они работают менее стабильно, чем сервисы 8.8.8.8 и 1.1.1.1. Если же вы не хотите использовать перечисленные сервисы и хотите использовать DNS-серверы провайдера, необходимо использовать DNS-серверы обеих провайдеров – опция Use Peer DNS в свойствах подключения.

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

Видеокурс «Настройка оборудования MikroTik» (аналог MTCNA)

Учитесь работать с MikroTik? Рекомендую видеокурс «Настройка оборудования MikroTik». В курсе разобраны все темы из официальной учебной программы MTCNA и много дополнительного материала. Курс сочетает теоретическую часть и практику – настройку маршрутизатора по техническому заданию. Консультации по заданиям курса ведет его автор Дмитрий Скоромнов. Подойдет и для первого знакомства с оборудованием MikroTik, и для систематизации знаний опытным специалистам.

В одной из моих публикаций было описание материнской платы Mikrotik RBM33G способной работать одновременно с двумя модемами сотовой связи. Ниже я сделаю краткое описание того, как сконфигурировать RouterOS для распределения трафика между двумя lte интерфейсами.

ВАЖНО! Речь в этой статье не идет об агрегации каналов сотовой связи, которую могут делать модемы 6 ( и выше ) категории Lte. Суммирование частот в этом случае происходит внутри модема в автоматическом режиме(или в ручном, если вы вмешались в процесс посредствам АТ команд). Мы же пытаемся объединить 2 модема в один канал, например МТС и Мегафон, что бы они работали одновременно - такая схема может применяться для повышения отказоустойчивости или увеличения пропускной способности.

На тесте я буду использовать два модема Quectel EP06 категории 6 lte . В идеальном случае каждый из модемов будет агрегировать 2 несущие сотового оператора, а материнская плата роутера будет обьединять трафик с 2х модемов в один канал связи.

Кстати сконфигурированную сборку можно приобрести у меня в магазине: ССЫЛКА ЗДЕСЬ

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

Для начала сделаем стандартную настройку Mikrotik RBM33G для выхода в интернет через модем:

  • Сбросим конфигурацию до чистой (reset configuration)
  • Объединим все LAN интерфейсы в бридж
  • Повесим на него адресное пространство 192.168.5.0/24
  • Настроим на бридже DHCP сервер
  • Сконфигурируем фаервол по желанию
  • Настроем NAT для выхода в интернет с нашей подсети

С этого момента у Вас должен быть интернет, который будет работать через один из lte интерфейсов, второй в этот момент будет простаивать.

Далее начинается самое интересное, для того чтобы запустить в работу второй интерфейс нужно выполнить 2 условия: начать делить исходящий трафик между lte1 и lte2, и правильно распределять входящий трафик, что бы наш Mikrotik отвечал с того же интерфейса, с которого пришел запрос.

Первым делом входящий трафик от модемов нужно промаркировать (писать буду в командах для консоли, для тех кто любит WINBOX думаю не составит труда расшифровать):

  • ip firewall mangle add action =mark-connection chain=input in - interface =lte1 new-connection-mark=con_LTE1
  • ip firewall mangle add action =mark-connection chain=input in - interface =lte2 new-connection-mark=con_LTE2

Метки соединений и маршрутов нужно придумать самостоятельно, это просто название и не содержит в себе ни каких инструкций, вообщем придумывайте как Вам нравится.

Для того что бы роутер мог отвечать через те же интерфейсы, откуда пришел трафик , промаркируем маршруты:

  • ip firewall mangle add action =mark-routing chain=output connection-mark=con_LTE1 new-routing-mark=LTE1_rout
  • ip firewall mangle add action =mark-routing chain=output connection-mark=con_LTE2 new-routing-mark=LTE2_rout

Теперь необходимо добавить маршруты по умолчанию, в которых будут содержаться наши метки:

ip route add distance=1 gateway=lte1 routing-mark=LTE1_rout

ip route add distance=1 gateway=lte2 routing-mark=LTE2_rout

Для примера я взял разделение с помощью PPC (Per Connection Classifier) , в этом случае группы будут образовываться на основании адреса и порта в заголовке пакета TCP:

/ip firewall mangle add src-address=192.168.5.0/24 action=mark-routing chain=prerouting new-routing-mark =lan-to-LTE1 per-connection-classifier=src-address-and-port:2/0

/ip firewall mangle add src-address=192.168.5.0/24 action=mark-routing chain=prerouting new-routing-mark =lan-to-LTE2 per-connection-classifier=src-address-and-port:2/1

Далее нужно добавить два маршрута по умолчанию для маркированного выше трафика:

/ip route add distance=1 gateway=lte1 routing-mark=lan-to-LTE1

/ip route add distance=1 gateway=lte2 routing-mark=lan-to-LTE2

Вот в принципе и все. Дальше трафик ходит через 2 интерфейса, балансировка закончена.

На одном пакете/соединении может быть только одна метка

Данные метки работают только на определённом роутере и не передаются по сети другим участникам, хотя при желании можно на это повлиять.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

В сегодняшнем примере мы будем настраивать Dual WAN. Предполагается что у вас есть 2 провайдера, основной и резервный, с помощью Mangle мы сделаем правильную маркировку и выпустим клиентов через основного провайдера. Так же прикрутим скрипт, который будет проверять доступность выхода в интернет через обоих провайдеров, и в случае недоступности через основной, переключать на резервный канал.

Схема сети

  • Предположим, что у нас имеется:
  • Широковещательная плоская 192.168.1.0/24;
  • Два белых статических IP адреса;
  • Один роутер;
  • Два свича;
  • RouterOS 6.48.1.

Схема сети двух провайдеров на Mikrotik

Настройка правил NAT

Список NAT правил для разных провайдеров

Для того чтобы наши внутренние клиент выходили в интернет, нам нужно 2 правила NAT. Один под основного провайдера, другой для резервного.

Маркировка трафика

Следующая задача, промаркировать трафик для каждого провайдера, на вход и на выход. Открываем на микротике IP – Firewall – Mangle, создаём новое правило. Интересует цепочка Prerouting, входящий интерфейс первого оператора. Маркируем соединение и задаём понятное имя марки. Для оптимизации нагрузки можно выбрать только новые соединения.

Создаем первое правила Mangle для основного провайдера

Следующим правилом создаём маркировку роутинга для нашей ранее созданной метки соединения.

Настройка метки роутинга для первого провайдер

Теперь займемся output. На основе коннекшен марки создаём правило роутинга.

Маркируем трафик наружу для ISP1


Последним правилом маркировки для ISP1 будет цепочка output.

Создание правила маркировки на основе IP адреса

Для первого оператора метки заданы. По аналогии создаём и для второго, только придумываем другие имена меткам и в последнем правиле указываем соответствующий адрес.

Задаём соответствующий входящий интерфейс.

Маркирует трафик для второго провайдера

Создаём маркировку роутинга на основе connection mark.

Маркируем трафик для роутинга на резервного провайдера

И 2 правила на output.

Метим исходящий трафик

В итоге вся маркировка трафика у нас будет выглядеть таким образов.

Список правил маркировки

Настройка Routing Rules

Следующий этап, это настройка правил и таблиц маршрутизации. Следует разнести трафик по соответствующим провайдерам. Создаём Rule с src address первого оператора, впишем вручную новую table.

Создаем первое правило маршрутизации

По аналогии и для второго провайдера.

Правила Route rules

Порядок имеет значение. Необходимо указать все наши локальные сети, трафик к ним будет идти через табличку main.

Выбор таблицы маршрутизации для ЛВС

А теперь все наши mark routing выпустим через соответствующие таблички.

Распределение трафика по провайдерам

Создание таблиц маршрутизации

В основной таблице маршрутизации нужно создать 2 маршрута, основной и резервный. Для этого вам нужно определиться кто из них какую роль будет выполнять. Т.к. активный будет всегда один. У первого метрика 10.

Добавление маршрута в основную таблицу

У второго метрика 20.

Добавление default route с большей метрикой

Открываем table-ISP1 и создаём default route с любой метрикой через шлюз провайдера.

добавили маршрут в таблицу основного провайдера

Аналогично и для table-ISP2. Не перепутайте шлюзы.

Роут через ISP2

Чуть не забыл, обязательно дадим комментарии записям в main. Общий вид Route List следующий.

Обязательно даем комментарии на маршруты

Настройка переключения интернет-каналов

Есть несколько способов отслеживания состояния. Один из них — это проверка провайдерского шлюза arp или ping запросами в самой настройке маршрута. Но он не эффективен, т.к. gateway может быть и доступен, а доступ в инет за ним нет. Как один из вариантов, проверять доступность на основе пинг запросов каких-либо крупных сервисов, которые доступны круглосуточно. Встроенных средств у Mikrotik нет, и по этой причине будем использовать простенький скрипт ниже.

  • :global MainIf ether1 – основной интерфейс;
  • :global RsrvIf ether2 – резервный интерфейс;
  • :local PingTargets – таргеты, которые будите мониторить;
  • :local MainGWDistance – переменная метрики для ISP1;
  • :local RsrvGWDistance – переменная метрики для ISP2;
  • Комментарий маршрут.

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

Добавляем данный скрипт в хранилище, даем имя check-internet.

Добавляем скрипт в Mikrotik

Тестируем работу через консоль.

Отлаживаем работу скрипта в роутерах Mikrotik

Как мы видим все отлично.

Тест скрипта интернета

Настройка запуска заданий Mikrotik

Добавляем задание в планировщик. Обязательно указываем интервал. В данном случае раз в 15 сек. Это самый минимальный рекомендуемый интервал, ниже ставить не советую.

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

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

Итак, мы все настроили и ждём чуда. Т.к. запросы у нас ICMP, для ускорения результата, на вышестоящем оборудовании включу блокировку данного трафика.

Автопереключение провайдера на Mikrotik

Если отключу блокировку, то все встаёт на свои места.

Основной канал включился автоматически

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдёте для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

image

Как работают вместе failover и netwatch. Взгляд изнутри.

Почти каждой более-менее подросшей компании начинает хотеться качества коммуникаций. Среди прочего, заказчику часто хочется отказоустойчивый «Dual WAN» и VoIP телефонию. Тоже отказоустойчивую, разумеется. Руководств и статей по каждой теме в отдельности написано много, но внезапно оказалось, что совместить первое и второе получается не у всех.

На Хабре уже есть статья «Mikrotik. Failover. Load Balancing» от vdemchuk. Как оказалось, она послужила для многих источником копипасты кода в маршрутизаторы.

Хорошее, рабочее решение, но SIP-клиенты из LAN, подключающиеся к внешней IP-АТС посредством NAT, при переключении теряли связь. Проблема известная. Связана она с работой Connection tracker, который запоминает имеющиеся соединения вовне, и сохраняет их состояние независимо от других условий.

Понять почему так происходит можно посмотрев на диаграмму packet flow:

Packet Flow v6 part

Для транзитного трафика процедура обработки connection tracker выполняется всего в одной цепочке — prerouting, (т.е. до роутинга), до выбора маршрута и исходящего интерфейса. На этой стадии еще неизвестно, через какой интерфейс пакет пойдет в Интернет, и отследить src-ip при нескольких Wan-интерфейсах невозможно. Механизм фиксирует установленные соединения уже пост-фактум. Фиксирует и запоминает на время пока через соединение идут пакеты или пока не истечет заданный таймаут.


Описанное поведение характерно не только для маршрутизаторов MikroTik, но и для большинства Linux-based систем выполняющих NAT.


В результате, при обрыве связи через WAN1, поток данных послушно направляется через WAN2, только SOURCE IP прошедших через NAT пакетов остается неизменный — от интерфейса WAN1, т.к. в connection tracker уже есть соответствующая запись. Естественно, ответы на такие пакеты идут на интерфейс WAN1 уже потерявший связь с внешним миром. В итоге, связь как будто есть, но на самом деле её нет. При этом все новые соединения устанавливаются корректно.

Hint: увидеть с каких и на какие адреса делается NAT можно в колонках «Reply Src. Address» и «Reply Dst. Address». Отображение этих колонок включается в таблице «connections» с помощью правой кнопки мыши.

image

На первый взгляд выход выглядит довольно простым — при переключении сбросить ранее установленные SIP-соединения, чтобы они установились заново, уже с новым SRC-IP. Благо простой скрипт по просторам интернета бродит.

:foreach i in=[/ip firewall connection find dst-address

Три шага к фейлу

Шаг первый. Копипастеры добросовестно переносят конфиг для Failover recursive routing:

Настройка роутинг из статьи «Mikrotik. Failover. Load Balancing»

Шаг второй. Отследить событие переключения. Чем? "/tool netwatch", естественно! Попытка отследить падение шлюза WAN1 обычно выглядит так:

/tool netwatch
add comment=«Check Main Link via 8.8.8.8» host=8.8.8.8 timeout=500ms /
down-script :5060"] do= :log warning («clear-SIP-connections: clearing connection src-address:$[/ip firewall connection get $i src-address] dst-address:$[/ip firewall connection get $i dst-address]»)
/ip firewall connection remove $i>"
up-script :5060"] do= :log warning («clear-SIP-connections: clearing connection src-address:$[/ip firewall connection get $i src-address] dst-address:$[/ip firewall connection get $i dst-address]»)
/ip firewall connection remove $i>"

Шаг третий. Проверка.

Админ гасит первый аплинк WAN1 и вручную запускает скрипт. SIP-клиенты переподключились. Работает? Работает!
Админ включает обратно WAN1 и вручную запускает скрипт. SIP-клиенты переподключились. Работает? Работает!

image

В реальной обстановке такой конфиг работать отказывается. Неоднократное повторение шага №3 приводит админа в состояние озлобления и мы слышим «Не работает ваш микротик!».

Разбор полётов

Всё дело в непонимании того, как происходит работа утилиты Netwatch. Применительно в отношении именно рекурсивного роутинга, утилита просто пингует заданный хост согласно основной таблице маршрутизации, используя активные маршруты.

Проведем эксперимент. Отключим основной канал WAN1 и посмотрим и интерфейс /tool netwatch. Мы увидим, что хост 8.8.8.8 по-прежнему имеет состояние UP.

Для сравнения опция check-gateway=ping, работает для каждого маршрута в отдельности в т.ч. рекурсивно, и делает сам маршрут активным либо НЕактивным.

Netwatch использует уже активные на данный момент маршруты. Когда что-либо происходит на линке до шлюза провайдера ISP1 (WAN1), маршрут до 8.8.8.8 через WAN1 становится неактивным, и netwatch игнорирует его, отправляя пакеты в новый default route. Failover играет злую шутку, и netwatch считает, что всё в порядке.

Второй вариант поведения netwatch, это двойное срабатывание. Механизм его таков: если пинги от netwatch попадут в таймаут check-gateway, то на один цикл проверки хост будет признан DOWN. Сработает скрипт переключения канала. SIP-соединения корректно перейдут на новый линк. Работает? Не совсем.

Скоро таблица маршрутизации перестроится, хост 8.8.8.8 получит статус UP, вновь сработает скрипт сброса SIP-соединений. Соединения второй раз переустановятся через WAN2.

В результате, при возвращении в строй ISP1 и переходе рабочего трафика на WAN1, SIP-соединения так и останутся висеть через ISP2 (WAN2). Чревато это тем, что при проблемах у на запасном канале система этого не заметит и телефонной связи не станет.

image

Решение

Для того, чтобы трафик на используемый для мониторинга хост 8.8.8.8 не заворачивался на ISP2, нам нужно иметь запасной маршрут до 8.8.8.8. На случай падения ISP1, создаем резервный маршрут с большим значением distance, например distance=10 и type=blackhole. Он и станет активным при пропадании линка до WAN1 Gateway:

/ip route add distance=10 dst-address=8.8.8.8 type=blackhole

В итоге имеем дополнение конфига всего лишь одной строкой:

Данная ситуация характерна именно при падении последней мили, когда шлюз ISP1 становится недоступным. Либо при использовании туннелей, которые более подвержены падениям в силу цепной зависимости.

Надеюсь, статья поможет вам избежать подобных ошибок. Выбирайте свежие мануалы. Будьте в курсе, и всё у вас «взлетит».

На одном пакете/соединении может быть только одна метка

Данные метки работают только на определённом роутере и не передаются по сети другим участникам, хотя при желании можно на это повлиять.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

В сегодняшнем примере мы будем настраивать Dual WAN. Предполагается что у вас есть 2 провайдера, основной и резервный, с помощью Mangle мы сделаем правильную маркировку и выпустим клиентов через основного провайдера. Так же прикрутим скрипт, который будет проверять доступность выхода в интернет через обоих провайдеров, и в случае недоступности через основной, переключать на резервный канал.

Схема сети

  • Предположим, что у нас имеется:
  • Широковещательная плоская 192.168.1.0/24;
  • Два белых статических IP адреса;
  • Один роутер;
  • Два свича;
  • RouterOS 6.48.1.

Настройка правил NAT

Для того чтобы наши внутренние клиент выходили в интернет, нам нужно 2 правила NAT. Один под основного провайдера, другой для резервного.

Маркировка трафика

Следующим правилом создаём маркировку роутинга для нашей ранее созданной метки соединения.

Теперь займемся output. На основе коннекшен марки создаём правило роутинга.

Последним правилом маркировки для ISP1 будет цепочка output.

Для первого оператора метки заданы. По аналогии создаём и для второго, только придумываем другие имена меткам и в последнем правиле указываем соответствующий адрес.

Задаём соответствующий входящий интерфейс.

Создаём маркировку роутинга на основе connection mark.

И 2 правила на output.

В итоге вся маркировка трафика у нас будет выглядеть таким образов.

Настройка Routing Rules

Следующий этап, это настройка правил и таблиц маршрутизации. Следует разнести трафик по соответствующим провайдерам. Создаём Rule с src address первого оператора, впишем вручную новую table.

По аналогии и для второго провайдера.

Порядок имеет значение. Необходимо указать все наши локальные сети, трафик к ним будет идти через табличку main.

А теперь все наши mark routing выпустим через соответствующие таблички.

Создание таблиц маршрутизации

В основной таблице маршрутизации нужно создать 2 маршрута, основной и резервный. Для этого вам нужно определиться кто из них какую роль будет выполнять. Т.к. активный будет всегда один. У первого метрика 10.

У второго метрика 20.

Открываем table-ISP1 и создаём default route с любой метрикой через шлюз провайдера.

Аналогично и для table-ISP2. Не перепутайте шлюзы.

Чуть не забыл, обязательно дадим комментарии записям в main. Общий вид Route List следующий.

Настройка переключения интернет-каналов

Добавляем данный скрипт в хранилище, даем имя check-internet.

Тестируем работу через консоль.

Как мы видим все отлично.

Добавляем задание в планировщик. Обязательно указываем интервал. В данном случае раз в 15 сек. Это самый минимальный рекомендуемый интервал, ниже ставить не советую.

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

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

Итак, мы все настроили и ждём чуда. Т.к. запросы у нас ICMP, для ускорения результата, на вышестоящем оборудовании включу блокировку данного трафика.

Если отключу блокировку, то все встаёт на свои места.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдёте для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Настройка Mikrotik DualWAN на 2х модемах сотовой связи

В одной из моих публикаций было описание материнской платы Mikrotik RBM33G способной работать одновременно с двумя модемами сотовой связи. Ниже я сделаю краткое описание того, как сконфигурировать RouterOS для распределения трафика между двумя lte интерфейсами.

На тесте я буду использовать два модема Quectel EP06 категории 6 lte. В идеальном случае каждый из модемов будет агрегировать 2 несущие сотового оператора, а материнская плата роутера будет обьединять трафик с 2х модемов в один канал связи.

Плата Микротик RBM33 с двумя модемами EP06

Плата Микротик RBM33 с двумя модемами EP06

Кстати сконфигурированную сборку можно приобрести у меня в магазине: ССЫЛКА ЗДЕСЬ

Для начала сделаем стандартную настройку Mikrotik RBM33G для выхода в интернет через модем:

  • Сбросим конфигурацию до чистой (reset configuration)
  • Объединим все LAN интерфейсы в бридж
  • Повесим на него адресное пространство 192.168.5.0/24
  • Настроим на бридже DHCP сервер
  • Сконфигурируем фаервол по желанию
  • Настроем NAT для выхода в интернет с нашей подсети

Далее начинается самое интересное, для того чтобы запустить в работу второй интерфейс нужно выполнить 2 условия: начать делить исходящий трафик между lte1 и lte2, и правильно распределять входящий трафик, что бы наш Mikrotik отвечал с того же интерфейса, с которого пришел запрос.

Первым делом входящий трафик от модемов нужно промаркировать (писать буду в командах для консоли, для тех кто любит WINBOX думаю не составит труда расшифровать):

  • ip firewall mangle add action=mark-connection chain=input in-interface=lte1 new-connection-mark=con_LTE1
  • ip firewall mangle add action=mark-connection chain=input in-interface=lte2 new-connection-mark=con_LTE2

Метки соединений и маршрутов нужно придумать самостоятельно, это просто название и не содержит в себе ни каких инструкций, вообщем придумывайте как Вам нравится.

Для того что бы роутер мог отвечать через те же интерфейсы, откуда пришел трафик , промаркируем маршруты:

  • ip firewall mangle add action=mark-routing chain=output connection-mark=con_LTE1 new-routing-mark=LTE1_rout
  • ip firewall mangle add action=mark-routing chain=output connection-mark=con_LTE2 new-routing-mark=LTE2_rout

Теперь необходимо добавить маршруты по умолчанию, в которых будут содержаться наши метки:

ip route add distance=1 gateway=lte1 routing-mark=LTE1_rout

ip route add distance=1 gateway=lte2 routing-mark=LTE2_rout

Для примера я взял разделение с помощью PPC (Per Connection Classifier) , в этом случае группы будут образовываться на основании адреса и порта в заголовке пакета TCP:

/ip firewall mangle add src-address=192.168.5.0/24 action=mark-routing chain=prerouting new-routing-mark=lan-to-LTE1 per-connection-classifier=src-address-and-port:2/0

/ip firewall mangle add src-address=192.168.5.0/24 action=mark-routing chain=prerouting new-routing-mark=lan-to-LTE2 per-connection-classifier=src-address-and-port:2/1

Далее нужно добавить два маршрута по умолчанию для маркированного выше трафика:

/ip route add distance=1 gateway=lte1 routing-mark=lan-to-LTE1

/ip route add distance=1 gateway=lte2 routing-mark=lan-to-LTE2

тест скорости после настройки

тест скорости после настройки

Перевод WiKi руководства MikroTik по Mangle

Кроме того, функция mangle используется для изменения некоторых полей в заголовке IP, таких как поля TOS (DSCP) и TTL.

по умолчанию: accept)

( строка ; По умолчанию:)

  • Значение non-dynamic ( 00:00:00) оставит адрес в списке адресов до перезагрузки
  • Значение none-ic навсегда оставит адрес в списке адресов навсегда и будет включено в экспорт при резервном копировании конфигурации.

( имя ; По умолчанию:)

( строка ; По умолчанию:)

( целое-целое ; по умолчанию:)

( целое число, сетевая маска ;

:)

По умолчанию

( без метки | строка ;

:)

По умолчанию

( целое число 0..4294967295 ;

:)

по умолчанию

pptp | quake3 | sip |

:)

tftp ; по умолчанию

( целое число: 0..63 ;

:)

по умолчанию

( имя ; По умолчанию:)

( целое [-integer]: 0..65535 ;

:)

по умолчанию

( да | нет ; по умолчанию:)

( имя ; По умолчанию:)

( имя ; По умолчанию:)

( целое число: 0..63 ;

:)

по умолчанию

( in | out, ipsec | none;

:)

по умолчанию

Например, если маршрутизатор получает пакет Gre, инкапсулированный в Ipsec, то правило ipsec-policy=in,ipsecбудет соответствовать пакету Gre, но правило ipsec-policy=in,noneбудет соответствовать пакету ESP.

маршрут без записи |

предупреждение об отсутствии маршрутизатора |

маршрутизация без источника |

без отметки времени |

нет | маршрут записи | предупреждение маршрутизатора |

строгая маршрутизация от источника |

:)

( имя ; По умолчанию

( строка ; По умолчанию:)

( целое число: 0..63 ;

:)

по умолчанию

:)

( целое ; по умолчанию

( строка ; По умолчанию:)

:)

По умолчанию

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