Краткое описание: Руководство по настройке нескольких провайдеров на маршрутизаторе(роутере) MikroTik. Описание популярных моделей по распределению трафика между провайдерами: ручная и автоматическая балансировка, а также автопереключение между каналами.


Для настройки двух провайдеров маршрутизатор(роутер) MikroTik необходимо привести к Базовой настройке .


Нужна настройка 2 провайдеров в MikroTik?

Настройка сервисов на маршрутизаторах MikroTik: подключение интернета, DHCP, brige, VLAN, WiFi, Capsman, VPN, IpSec, PPTP, L2TP, Mangle, NAT, проброс портов, маршрутизация(routing), удаленное подключение и объединение офисов.

    Динамическая и статическая маршрутизация в MikroTik

    Для регулирования последовательностью движения трафика, в свойствах маршрута(route) есть атрибут Distance. Значением этого атрибута и нужно манипулировать для указания в какой из интернет каналов в будет убегать трафик.

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, distance route

    При появлении 2-ого провайдера нужно контролировать значение Distance. Есть два пути для этого действия:

    Создание статического маршрута

    На примере DHCP client: необходимо зафиксировать шлюз, который указан в динамическом маршруте.

    Настройка нескольких провайдеров на MikroTik, динамический маршрут

    Отключить добавление маршрута по умолчанию

    Настройка находится в IP->DHCP client

    Настройка нескольких провайдеров на MikroTik, отлючить маршрут по умолчанию

    Создать статический маршрут, где

    Dst. Address = 0.0.0.0/0;

    Gateway = зафиксированный шлюз.

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, добавить статический маршрут

    Также этот способ является методом по умолчанию описания свойств интернет подключения для статического IP адреса.

    Указать Distance в типе подключения

    Настройка находится в PPP->Interface

    Настройка нескольких провайдеров на MikroTik, изменение distance для PPPoe

    Настройка находится в IP->DHCP client

    Настройка нескольких провайдеров на MikroTik, добавить маршрут по умолчанию

    Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, сделай клик по рекламе ↓↓↓

    Настройка нескольких провайдеров на MikroTik, изменение distance для DHCP клиента


    Автоматическое переключение между двумя провайдерами в MikroTik

    Это пример будет состоять из двух линий интернета – основной и резервной. Резервная линия будет включать лишь тогда, когда основная будет недоступной.

    Настройка нескольких провайдеров на MikroTik, схема сети

    В маршрутизаторах(роутерах) MikroTik чаще всего используют два самых распространённых метода по ограничиванию скорости для локальных подключений:

    1. С резервированием канала. Имеет популярность в QOS трафике – звук и видео, тем самым не позволяет создавать прерывания при загрузке общего канала.
    2. Равномерное распределение ширины канала на всех участников. Продуктивный способ использования интернет канала на всю ширину.

    И масса других вариантов, когда можно комбинировать оба способа в разной последовательности. В рамках данной статьи рассмотрим п.2, как более часто встречаемое в частном и корпоративном сегменте.

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

    Провайдер-1 Distance = 1;

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, distance route

    Провайдер-2 Distance = 2.

    Настройка нескольких провайдеров на MikroTik, определение второго интернет провайдера

    Методы указания Distance возлагаются на фантазию специалиста по настройке MikroTik.

    Как работает автоматическое переключение интернета в MikroTik

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

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, пример работы двух провайдеров в автоматическом режиме

    Но как только основная линия станет недоступной, на основании значения Distance произойдет переключение на резервную линию. Резервная линия будет оставаться в работе до тех пора, пока интернет на основной линии не восстановится. Это полностью автоматический процесс.

    Настройка нескольких провайдеров на MikroTik, автоматическое переключение на резервного провайдера

    Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, сделай клик по рекламе ↓↓↓

    Не работает автоматические переключение интернета в MikroTik

    Достаточная большая часть статических маршрутов с указанным Distance и параметром Ping может не отработать при отсутствии интернета на основном канале. В этом случае стоит обратиться к утилите Netwatch, которая лучше отработает сценарий при изменении состояния интерфейса с UP на DOWN и в обратную сторону. Как правильно настроить правила для переключения между провайдера используя утилиту Netwatch в MikroTik рассмотрено в статье “Настройка резервирования интернета в MikroTik, автопереключение провайдера через Netwatch 

    Одновременное использование двух провайдеров в MikroTik

    Будет рассмотрена ситуация, когда нужно использовать одновременно две линии интернета по принципу:

    • Группа-1(192.168.0.2-192.168.0.100) – через провайдера-1;
    • Группа-2(192.168.0.101-192.168.0.200) – через провайдера-2;

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

    Для удобства редактирования групп будут созданы Address List, в которые необходимо добавлять или удалять узлы, которые будут назначать или провайдеру-1 или провайдеру-2.

    Настройка находится в IP->Firewall-Address Lists

    Настройка нескольких провайдеров на MikroTik, создание address list-1

    Настройка нескольких провайдеров на MikroTik, создание address list-2

    Подготовленные адрес листы, а точнее маршруты в интернет нужно промаркировать с помощью Mangle

    Маркировка маршрутов Mangle

    Настройка находится в IP->Firewall-Mangle

    Настройка нескольких провайдеров на MikroTik, маркировка пакета prerouting

    Настройка нескольких провайдеров на MikroTik, маркировка пакета Scr address

    Настройка нескольких провайдеров на MikroTik, mark routing

    Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, сделай клик по рекламе ↓↓↓

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address=!192.168.0.0/24 \
    new-routing-mark=Group-1-Route passthrough=yes src-address-list=Group-1

    Аналогичную маркировку в разделе Mangle нужно создать для Group-2.

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

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, статический маршрут провайдера 1

    Настройка нескольких провайдеров на MikroTik, статический маршрут провайдера 2

    /ip route
    add gateway=10.10.10.10 routing-mark=Groupe-1-Route
    add gateway=11.11.11.11 routing-mark=Groupe-2-Route

    Стоит обратить внимание на параметр Distance, в этой схеме он не участвует. Но если нужно расширить эту схему автоматическим переключением на резервную линию между провайдерами, достаточно добавить два статических маршрута со значением distance 1 и 2.

    Балансировка нагрузки между двумя интернет провайдерами в MikroTik

    Пропускная способность канала и его стабильность выносятся за рамки данной настройки. Предположим есть две линии интернета по 100мб.

    Настройка находится в IP->Routes

    Настройка нескольких провайдеров на MikroTik, балансировка нагрузки

    Суть этого правила в том, что первый узел будет переадресован к провайдеру-1, а второй – к провайдеру-2. Если ширина каналов не равномерная, к примеру у первого провайдера 50Мб, а у второго 100Мб, то правило можно привести к виду

    Настройка нескольких провайдеров на MikroTik, вариант балансировки нагрузки

    Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, сделай клик по рекламе ↓↓↓


    Балансировка и резервирование в MikroTik используя NTH

    Можно также применить схему, в которой каждое соединение будет промаркировано по принципу:

    четный-пакет = провайдер-1

    нечетный-пакет = провайдер-2

    /ip firewall mangle
    add dst-address=!192.168.0.0/24 src-address=192.168.0.0/24 action=mark-routing chain=prerouting new-routing-mark=Groupe-1-Route nth=2,1
    add dst-address=!192.168.0.0/24 src-address=192.168.0.0/24 action=mark-routing chain=prerouting new-routing-mark=Groupe-2-Route nth=2,2
    
    /ip route 
    add distance=1 gateway=10.10.10.10 routing-mark=Groupe-1-Route check-gateway=ping
    add distance=1 gateway=11.11.11.11 routing-mark=Groupe-2-Route check-gateway=ping
    
    add distance=2 gateway=11.11.11.11 routing-mark=Groupe-1-Route
    add distance=2 gateway=10.10.10.10 routing-mark=Groupe-2-Route

    Такой подход к балансировке будет совмещать два свойства: балансировка + резервирование.

    Балансировка. Когда оба провайдера будут работать, нагрузка будет распределяться 50:50.

    Резервирование. Если один из провайдеров перестанет работать – его нагрузка будет назначена второму провайдеру.

    Балансировка 2 провайдеров используя Mangle

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

    Когда работают оба провайдеры, нагрузка распределяется согласно ручному распределению в Address list.

    ISP-1=Down & ISP-2=Up соединения Group-1 очищаются и начинают работать через ISP-2. При этом соединения Group-2 остаются не тронутыми. При восстановлении связи с ISP-1, соединения Group-1 также очищаются и трафик вместо ISP-2 начинает проходить через ISP-1.

    ISP-1=Up & ISP-2=Down соединения Group-2 очищаются и начинают работать через ISP-1. При этом соединения Group-1 остаются не тронутыми. При восстановлении связи с ISP-2, соединения Group-2 также очищаются и трафик вместо ISP-1 начинает проходить через ISP-2.

    • ethe1 – провайдер со статическим IP;
    • ethe8 – провайдер с динамическим IP.

    Разделение сети на два диапазона

    /ip firewall address-list
    add address=192.168.88.25-192.168.88.90 list=Group-1
    add address=192.168.88.91-192.168.88.200 list=Group-2
    add address=192.168.88.0/24 list=Local-Subnet

    Маркировка соединений

    #Для входящих и исходящих подключений

    /ip firewall mangle
    add action=mark-connection chain=input in-interface=ether1 new-connection-mark=From-ISP-1 passthrough=yes
    add action=mark-routing chain=output connection-mark=From-ISP-1 new-routing-mark=To-ISP-1 passthrough=yes
    add action=mark-connection chain=input in-interface=ether8 new-connection-mark=From-ISP-2 passthrough=yes
    add action=mark-routing chain=output connection-mark=From-ISP-2 new-routing-mark=To-ISP-2 passthrough=yes

    #Маркировка маршрутов для двух отдельных групп

    add action=mark-connection chain=prerouting dst-address-list=!Local-Subnet new-connection-mark=To-ISP-1-Connection passthrough=yes src-address-list=Group-1
    add action=mark-routing chain=prerouting connection-mark=To-ISP-1-Connection new-routing-mark=To-ISP-1 passthrough=no src-address-list=Group-1
    add action=mark-connection chain=prerouting dst-address-list=!Local-Subnet new-connection-mark=To-ISP-2-Connection passthrough=yes src-address-list=Group-2
    add action=mark-routing chain=prerouting connection-mark=To-ISP-2-Connection new-routing-mark=To-ISP-2 passthrough=no src-address-list=Group-2

    Автоматическое добавление маршрутов при изменении шлюза

    /ip dhcp-client
    add add-default-route=no disabled=no interface=ether8 script="{\r\
    \n:local rmark \"ISP-2\"\r\
    \n:local count [/ip route print count-only where comment=\"ISP-2\"]\r\
    \n:if (\$bound=1) do={\r\
    \n:if (\$count = 0) do={\r\
    \n/ip route add gateway=\$\"gateway-address\" comment=\"ISP-2\" distance=2\
    \r\
    \n/ip route add gateway=\$\"gateway-address\" comment=\"Netwatch-2\" dista\
    nce=1 dst-address=8.8.4.4\r\
    \n/ip route add gateway=\$\"gateway-address\" comment=\"Group-2\" distance\
    =1 routing-mark=To-ISP-2\r\
    \n} else={\r\
    \n:if (\$count = 1) do={\r\
    \n:local test [/ip route find where comment=\"ISP-2\"]\r\
    \n:if ([/ip route get \$test gateway] != \$\"gateway-address\") do={\r\
    \n/ip route set \$test gateway=\$\"gateway-address\"\r\
    \n}\r\
    \n} else={\r\
    \n:error \"Multiple routes found\"\r\
    \n}\r\
    \n}\r\
    \n} else={\r\
    \n/ip route remove [find comment=\"ISP-2\"]\r\
    \n/ip route remove [find comment=\"Netwatch-2\"]\r\
    \n/ip route remove [find comment=\"Group-2\"]\r\
    \n}\r\
    \n}" use-peer-dns=no use-peer-ntp=no

    Настройка статической маршрутизации

    /ip route
    add comment=Group-1-1 distance=1 gateway=111.158.227.1 routing-mark=To-ISP-1
    add comment=Group-2-1 disabled=yes distance=2 gateway=200.45.147.1 \
    routing-mark=To-ISP-1
    add comment=Group-2-2 distance=1 gateway=200.45.147.1 routing-mark=To-ISP-2
    add comment=Group-1-2 disabled=yes distance=2 gateway=111.158.227.1 \
    routing-mark=To-ISP-2
    add comment=ISP-1 distance=1 gateway=111.158.227.1
    add comment=ISP-2 distance=2 gateway=200.45.147.1
    add comment=Netwatch-2 distance=1 dst-address=8.8.4.4/32 gateway=200.45.147.1
    add comment=Netwatch-1 distance=1 dst-address=8.8.8.8/32 gateway=\
    111.158.227.1

    Настройка netwatch

    /tool netwatch
    add down-script="/ip route disable [find comment=\"ISP-2\"]\r\
    \n/ip route disable [find comment=\"Group-2-2\"]\r\
    \n/ip route enable [find comment=\"Group-1-2\"]\r\
    \nlog warning (\"ISP-2 IS DOWN\")\r\
    \n:foreach i in=[/ip firewall connection find connection-mark~\"To-ISP-2-C\
    onnection\"] do={ /ip firewall connection remove \$i }" host=8.8.4.4 \
    up-script="/ip route enable [find comment=\"ISP-2\"]\r\
    \n/ip route enable [find comment=\"Group-2-2\"]\r\
    \n/ip route disable [find comment=\"Group-1-2\"]\r\
    \nlog warning (\"ISP-2 IS UP\")\r\
    \n:foreach i in=[/ip firewall connection find connection-mark~\"To-ISP-2-C\
    onnection\"] do={ /ip firewall connection remove \$i }"
    add down-script="/ip route disable [find comment=\"ISP-1\"]\r\
    \n/ip route disable [find comment=\"Group-1-1\"]\r\
    \n/ip route enable [find comment=\"Group-2-1\"]\r\
    \nlog warning (\"ISP-1 IS DOWN\")\r\
    \n:foreach i in=[/ip firewall connection find connection-mark~\"To-ISP-1-C\
    onnection\"] do={ /ip firewall connection remove \$i }" host=8.8.8.8 \
    up-script="/ip route enable [find comment=\"ISP-1\"]\r\
    \n/ip route enable [find comment=\"Group-1-1\"]\r\
    \n/ip route disable [find comment=\"Group-2-1\"]\r\
    \nlog warning (\"ISP-1 IS UP\")\r\
    \n:foreach i in=[/ip firewall connection find connection-mark~\"To-ISP-1-C\
    onnection\"] do={ /ip firewall connection remove \$i }"

    Контроль ICMP запросов через нужный интерфейс

    /ip firewall filter
    add action=drop chain=output comment=Netwatch-1 dst-address=8.8.8.8 out-interface=!ether1 protocol=icmp
    add action=drop chain=output comment=Netwatch-2 dst-address=8.8.4.4 out-interface=!ether8 protocol=icmp

    Одновременный проброс с двух провайдеров в MikroTik

    Входящая задача: сделать проброс портов таким образом, чтобы сервер отвечал с того провайдера, с которого пришёл запрос. На практике это может быть Web сервер(443\https), у которого объявлены две DNS записи с двумя внешними IP роутера MikroTik.

    /ip firewall mangle 
    add chain=forward action=mark-connection new-connection-mark=From-ISP-1 passthrough=no in-interface=ether1
    add chain=prerouting action=mark-routing new-routing-mark=To-ISP-1 connection-mark=From-ISP-1 in-interface=bridge
    add chain=forward action=mark-connection new-connection-mark=From-ISP-2 passthrough=no in-interface=ether2
    add chain=prerouting action=mark-routing new-routing-mark=To-ISP-2 connection-mark=From-ISP-2 in-interface=bridge

    Есть вопросы или предложения по настройке 2 провайдеров в MikroTik? Активно предлагай свой вариант настройки! Оставить комментарий