Настройка MikroTik на 2 провайдера с балансировкой нагрузки и резервированием (Failover) с возможностью суммирования скорости и выбора конкретного оператора для хостов и сетей с максимально возможным использованием всех каналов.
Оперативность и выполнение в срок без предоплаты и бюрократии
Обсудить задачу: @Engineer_MikroTik | Ценовая политика
!!!Вышла ветка long-term для RouterOS 7!!!
- 2 провайдера?
- Оборудование
- Настройки провайдеров
- WAN1/Static IP
- WAN2/DHCP(IPoE)
- WAN3/PPPoE
- WAN4/LTE
- Настройка MultiWAN
- Vlan
- Bridge Vlan Filtering
- Interface List
- IP Addresses
- IP DHCP Client
- WAN2 DHCP
- WAN4 LTE
- WAN1 (на всякий случай)
- PPP/Profiles
- PPPoE
- Address List
- Routing Tables
- Mangle
- Mark Connection
- Mark Routing
- Mark Roution Out
- Routing Rules
- NAT
- Рекурсивная маршрутизация
- Netwatch
- Firewall Output
- DNS
- Гостевой WiFi через WAN3 (PBR)
- Суммирование WAN1/WAN2 (PCC)
- QoS
- Firewall
- Input
- Forward
- LTE резерв
- Защита MikroTik
- Cloud/DDNS/CNAME
- Уведомления Telegram
- Создание бота
- Отправка сообщений
- Готовая конфигурация
- interface
- bridge
- list
- pppoe-client
- bridge port
- list member
- ppp profile
- queue simple
- routing table
- ipv6 settings
- ip
- neighbor discovery-settings
- address
- cloud
- dhcp-client
- dns
- firewall address-list
- firewall filter
- firewall mangle
- firewall nat
- firewall service-port
- route
- service
- ssh
- routing rule
- system
- clock
- identity
- note
- ntp
- routerboard settings
- scheduler
- script
- tool
- bandwidth-server
- mac-server
- netwatch
2 провайдера?
Если вы не знаете что такое Vlan, Mangle и таблицы маршрутизации — лучше использовать более простую статью 2WAN RouterOS 7.
Рассмотрим подключение нескольких провайдеров с разными типами:
- Static IP — когда IP, маска и шлюз указываются вручную; WAN1, 10Мбит, высокая надежность канала.
- DHCP — настройки приходят автоматически и IP/Маска/Шлюз могут меняться; WAN2, 10Мбит, надежность ниже из-за DHCP.
- PPPoE — авторизация через логин пароль и IP/Network так же динамические; WAN3, 5Мбит, резерв.
- USB LTE — внешний 4G/LTE модем; WAN4, скорость всегда плавающая, резерв «судного дня».
Суммирование (балансировку) трафика делаем для WAN1/WAN2 — так как у них одинаковая скорость и почти одинаковая надежность. Этим будет заниматься PCC на основе адрес листов.
WAN3 используем для гостевого WiFi, чтобы не отнимать скорость от основных провайдеров. Отправлять через нужного оператора будет PBR так же по адрес листам.
WAN4 — на случай падения всех 3х провайдеров, LTE останется последней надеждой, весь трафик пойдет через этого него. Но можно ограничить через Firewall, чтобы не «положить» канал.
Оборудование
Я рекомендую использовать современные модели MikroTik минимум на 5 портов с наличием USB и современного AX стандарта.
Идеальным для офиса является RB5009, hAP AX3 и hAP AX2 (в нем нет USB). Дальше идет серия CCR, которая значительно мощнее и дороже.
В этом примере настройка производится на RB951Ui-2HnD (не покупайте это старьё!) с RouterOS 7
Настройки провайдеров
Если у вас проблемы с пониманием Vlan — настраивайте на физических портах ether1-3.
WAN1/Static IP
- Vlan11
- IP: 1.1.1.2/30
- Mask: 255.255.255.252
- GW: 1.1.1.1
WAN2/DHCP(IPoE)
- Vlan12
- IP/Mask/GW могут каждый раз быть разными
2 провайдера на MikroTik конечно надежно, но всегда случаются неожиданные простои, по этому добавляем дополнительные 2 провайдера, их в итоге будет 4.
WAN3/PPPoE
- Vlan13
- Логин: PPPoE_WAN3_Login
- Пароль: PPPoE_WAN3_Password
- IP/Network так же могут меняться
WAN4/LTE
Данные зависят от используемого модема, я рекомендую использовать LHG LTE6 kit серию MikroTik
- lte1
- IP/Mask/GW по DHCP не меняются
Настройка MultiWAN
Настройка разбита на несколько этапов по разным меню WinBox.
Соблюдая порядок без отсебятины, можно без проблем настроить резервных операторов через MultiWAN.
Vlan
Как раньше упоминалось — провайдеры будут жить на Vlan, создадим их на существующем bridgeLAN:

/interface vlan
add comment=WAN1 interface=bridgeLAN name=vlan11 vlan-id=11
add comment=WAN2 interface=bridgeLAN name=vlan12 vlan-id=12
add comment=WAN3 interface=bridgeLAN name=vlan13 vlan-id=13 Bridge Vlan Filtering

/interface bridge
add name=bridgeLAN vlan-filtering=yes 

/interface bridge port
add bridge=bridgeLAN frame-types=admit-only-untagged-and-priority-tagged interface=ether1 pvid=11 edge=yes Interface List

/interface list
add name=WAN1
add name=WAN2
add name=WAN3
add name=WAN4
add include=WAN1,WAN2,WAN3,WAN4 name=WAN-ALL
/interface list member
add interface=vlan11 list=WAN1
add interface=vlan12 list=WAN2
add interface=vlan13 list=WAN3
add interface=pppoe-out_wan3 list=WAN3
add interface=lte1 list=WAN4 IP Addresses

/ip address
add address=1.1.1.2/30 interface=vlan11 network=1.1.1.0 IP DHCP Client
WAN2 DHCP

Скрипт будет сам брать IP и шлюз чтобы проставить в нужных местах конфигурации:
:local WANDHCP vlan12;
local result [/ip address get value-name=address [find interface=$WANDHCP]];
local WANDHCPIP [:pick $result 0 [:find $result "/"]];
local WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=$WANDHCP]];
local WANDHCPNET [/ip/address get value-name=network [find interface=$WANDHCP]];
/ip route set [find comment="WAN2_!_Recursive"] gateway=$WANDHCPGW
/routing rule set [find comment="Route_Only_WAN2"] src-address=$WANDHCPIP; WAN4 LTE


:local WANDHCP lte1;
local result [/ip address get value-name=address [find interface=$WANDHCP]];
local WANDHCPIP [:pick $result 0 [:find $result "/"]];
local WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=$WANDHCP]];
local WANDHCPNET [/ip/address get value-name=network [find interface=$WANDHCP]];
/ip route set [find comment="WAN4_!_Recursive"] gateway=$WANDHCPGW
/routing rule set [find comment="Route_Only_WAN4"] src-address=$WANDHCPIP; WAN1 (на всякий случай)

:local WANDHCP vlan11;
local result [/ip address get value-name=address [find interface=$WANDHCP]];
local WANDHCPIP [:pick $result 0 [:find $result "/"]];
local WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=$WANDHCP]];
local WANDHCPNET [/ip/address get value-name=network [find interface=$WANDHCP]];
/ip route set [find comment="WAN1_!_Recursive"] gateway=$WANDHCPGW
/routing rule set [find comment="Route_Only_WAN1"] src-address=$WANDHCPIP; PPP/Profiles
В конфигурации используется PPPoE, на котором могут меняться IP/Network. Мы сделаем 4 профиля на случай смены типов подключения остальных операторов для быстрой перенастройки.

:local WANDHCP PPPoE_WAN3;
local result [/ip address get value-name=address [find interface=$WANDHCP]];
local WANDHCPIP [:pick $result 0 [:find $result "/"]];
local WANDHCPNET [/ip/address get value-name=network [find interface=$WANDHCP]];
/ip route set [find comment="WAN3_!_Recursive"] gateway=$WANDHCPNET/routing rule set [find comment="Route_Only_WAN3"] src-address=$WANDHCPIP; Все 4 профиля:
/ppp profile
add change-tcp-mss=yes name=PPPoE_WAN1 on-up=":local WANDHCP PPPoE_WAN1;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN1_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN1\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN1\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN2 on-up=":local WANDHCP PPPoE_WAN2;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN2_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN2\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN2\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN3 on-up=":local WANDHCP PPPoE_WAN3;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN3_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN3\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN3\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN4 on-up=":local WANDHCP PPPoE_WAN4;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN4_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN4\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN4\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no PPPoE


Address List
Создаем универсальный лист local, где будут описаны 3 локальные сети, которые не могут маршрутизироваться в интернете. Это нужно чтобы делать исключения в маркировке трафика.
/ip firewall address-list
add address=10.0.0.0/8 list=local
add address=172.16.0.0/12 list=local
add address=192.168.0.0/16 list=local Так же заранее создаем листы для проверки интернет каналов через Netwatch:
/ip firewall address-list
add address=4.2.2.1 list=Only_WAN1
add address=4.2.2.2 list=Only_WAN2
add address=77.88.8.1 list=Only_WAN1
add address=77.88.8.2 list=Only_WAN2
add address=4.2.2.3 list=Only_WAN3
add address=77.88.8.3 list=Only_WAN3
add address=4.2.2.4 list=Only_WAN4
add address=77.88.8.8 list=Only_WAN4 Routing Tables

/routing table
add disabled=no fib name=WAN1
add disabled=no fib name=WAN2
add disabled=no fib name=WAN3
add disabled=no fib name=WAN4 Mangle
Чтобы MikroTik отвечал с того провайдера, куда пришел пакет — нужно настраивать маркировку трафика. Без этого не будет работать проброс портов сразу на всех операторах и нельзя будет балансировать опубликованными службами.
Mark Connection


Mark Routing


Mark Roution Out


/ip firewall mangle
add action=mark-connection chain=prerouting comment="Mark Connection WAN1" connection-mark=no-mark connection-state=new in-interface-list=WAN1 new-connection-mark=con-WAN1 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN2" connection-mark=no-mark connection-state=new in-interface-list=WAN2 new-connection-mark=con-WAN2 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN3" connection-mark=no-mark connection-state=new in-interface-list=WAN3 new-connection-mark=con-WAN3 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN4" connection-mark=no-mark connection-state=new in-interface-list=WAN4 new-connection-mark=con-WAN4 src-address-list=!local
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN1 in-interface-list=!WAN-ALL new-routing-mark=WAN1
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN2 in-interface-list=!WAN-ALL new-routing-mark=WAN2
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN3 in-interface-list=!WAN-ALL new-routing-mark=WAN3
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN4 in-interface-list=!WAN-ALL new-routing-mark=WAN4
add action=mark-routing chain=output comment="Mark Roution Out WAN1" connection-mark=con-WAN1 new-routing-mark=WAN1
add action=mark-routing chain=output comment="Mark Roution Out WAN2" connection-mark=con-WAN2 new-routing-mark=WAN2
add action=mark-routing chain=output comment="Mark Roution Out WAN3" connection-mark=con-WAN3 new-routing-mark=WAN3
add action=mark-routing chain=output comment="Mark Roution Out WAN4" connection-mark=con-WAN4 new-routing-mark=WAN4 Routing Rules

Route_Only_WANX будет автоматически подставляться для DHCP и PPPoE.
/routing rule
add action=lookup-only-in-table comment=Route_Only_WAN1 disabled=no src-address=1.1.1.2/32 table=WAN1
add action=lookup disabled=no dst-address=77.88.8.1/32 table=WAN1
add action=lookup-only-in-table comment=Route_Only_WAN2 disabled=no src-address=2.2.2.2/32 table=WAN2
add action=lookup disabled=no dst-address=77.88.8.2/32 table=WAN2
add action=lookup-only-in-table comment=Route_Only_WAN3 disabled=no src-address=3.3.3.2/32 table=WAN3
add action=lookup disabled=no dst-address=77.88.8.3/32 table=WAN3
add action=lookup-only-in-table comment=Route_Only_WAN4 disabled=no src-address=192.168.42.225/32 table=WAN4
add action=lookup disabled=no dst-address=77.88.8.8/32 table=WAN4 NAT
Чтобы преобразовать адреса в один — настроим NAT. В нашем случае это будет masquerade и src-nat для оператора с Static IP.

В случае src-nat система сразу знает на какой IP менять
/ip firewall nat
add action=src-nat chain=srcnat comment="NAT WAN1" ipsec-policy=out,none out-interface-list=WAN1 src-address-type=!local to-addresses=1.1.1.2
add action=masquerade chain=srcnat comment="NAT WAN2" ipsec-policy=out,none out-interface-list=WAN2 src-address-type=!local
add action=masquerade chain=srcnat comment="NAT WAN3" ipsec-policy=out,none out-interface-list=WAN3 src-address-type=!local
add action=masquerade chain=srcnat comment="NAT WAN4" ipsec-policy=out,none out-interface-list=WAN4 src-address-type=!local Лучшим вариантом будет всегда указывать src-nat, для DHCP/PPPoE

/ip firewall nat set [find comment="NAT WAN2"] to-addresses=$WANDHCPIP; Рекурсивная маршрутизация
Рекурсивная маршрутизация используется для проверки адреса за шлюзом оператора, так как проверка самого шлюза не является показателем доступности интернета.



Обратим внимание, что Target Scope и Scope совпадают
/ip route
add comment="Table WAN1" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.1 routing-table=WAN1 scope=30 suppress-hw-offload=no target-scope=11
add comment="Table WAN2" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.2 routing-table=WAN2 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN1_!_Recursive disabled=no distance=1 dst-address=4.2.2.1/32 gateway=1.1.1.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN2_!_Recursive disabled=no distance=1 dst-address=4.2.2.2/32 gateway=2.2.2.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN1_Recursive disabled=no distance=10 dst-address=0.0.0.0/0 gateway=4.2.2.1 routing-table=main scope=30 target-scope=11
add comment=WAN2_Recursive disabled=no distance=20 dst-address=0.0.0.0/0 gateway=4.2.2.2 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN3_!_Recursive disabled=no distance=1 dst-address=4.2.2.3/32 gateway=3.3.3.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN3_Recursive disabled=no distance=30 dst-address=0.0.0.0/0 gateway=4.2.2.3 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add comment="Table WAN3" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.3 routing-table=WAN3 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN4_!_Recursive disabled=no distance=1 dst-address=4.2.2.4/32 gateway=192.168.42.129 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment="Table WAN4" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.4 routing-table=WAN4 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN4_Recursive disabled=no distance=40 dst-address=0.0.0.0/0 gateway=4.2.2.4 routing-table=main scope=30 suppress-hw-offload=no target-scope=11 Netwatch
Для проверки доступности интернета и переключения будет использован netwatch, который в случае недоступности адреса запустит проверку check gateway в рекурсивной маршрутизации, которая отключит неиспользуемый маршрут. На все переключение будет уходить до 30 секунд.




Firewall Output

/ip firewall filter
add action=drop chain=output comment="Only WAN1" dst-address-list=Only_WAN1 out-interface-list=!WAN1
add action=drop chain=output comment="Only WAN2" dst-address-list=Only_WAN2 out-interface-list=!WAN2
add action=drop chain=output comment="Only WAN3" dst-address-list=Only_WAN3 out-interface-list=!WAN3
add action=drop chain=output comment="Only WAN4" dst-address-list=Only_WAN4 out-interface-list=!WAN4 DNS
Так как использовать операторские DNS мы не можем потому что они работают только внутри оператора, будем использовать публичные.
DNS Яндекса используются для проверки Netwatch — нужны другие. Например оставшиеся безопасный 77.88.8.88 и детский 77.88.8.7
Дополнительно добавляем «восьмерки» 8.8.8.8 и 8.8.4.4

/ip dns
set allow-remote-requests=yes servers=77.88.8.7,77.88.8.88,8.8.8.8,8.8.4.4 Гостевой WiFi через WAN3 (PBR)
PBR позволяет выпускать с нужного оператора отдельный хост или сеть, например чтобы гостевой WiFi не использовал основной канал связи. Настроим такое правила PBR для всех 4х провайдеров:




Помещая IP или сеть в адрес лист PBR_WANX — можно выпускать с отдельного провайдера.
/ip firewall mangle
add action=mark-connection chain=prerouting comment=PBR_WAN1 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN1 \
src-address-list=PBR_WAN1
add action=mark-connection chain=prerouting comment=PBR_WAN2 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN2 \
src-address-list=PBR_WAN2
add action=mark-connection chain=prerouting comment=PBR_WAN3 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN3 \
src-address-list=PBR_WAN3
add action=mark-connection chain=prerouting comment=PBR_WAN4 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN4 \
src-address-list=PBR_WAN4 Суммирование WAN1/WAN2 (PCC)
Вспомним, что WAN1 и WAN2 равные по скорости провайдеры на 10Мбит, которые можно суммировать для увеличения скорости.
Такую суммацию я не рекомендую использовать для рабочего трафика, так как могут возникнуть проблемы, но для торрентов и файловых помоек такой режим вполне рабочий.
Сделаем суммирование для адрес листа PBR_PCC чтобы получить 20Мбит.



20Мбит:
2/0 — WAN1 (10Мбит)
2/1 — WAN2 (10Мбит)
30Мбит:
3/0 — WAN1 (10Мбит)
3/1 — WAN2 (10Мбит)
3/2 — WAN2 (10Мбит)
Конкретный пример — мой оператор Уфанет дает 600Мбит, а ТДС+ только 100Мбит, в сумме я могу получить 700Мбит. Общая пропорция равна 7:
7/0 — Уфанет 100Мбит
7/1 — Уфанет 100Мбит
7/2 — Уфанет 100Мбит
7/3 — Уфанет 100Мбит
7/4 — Уфанет 100Мбит
7/5 — Уфанет 100Мбит
7/6 — ТДС+ 100Мбит



/ip firewall mangle
add action=mark-connection chain=prerouting comment="PBR_PCC 2/0" connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN1 per-connection-classifier=both-addresses-and-ports:2/0 \
src-address-list=PBR_PCC
add action=mark-connection chain=prerouting comment="PBR_PCC 2/1" connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN2 per-connection-classifier=both-addresses-and-ports:2/1 \
src-address-list=PBR_PCC 
Так же при индивидуальном PCC или смешанном режиме с PBR на конкретных провайдерах — могут быть перекосы скорости, по этому лучше использовать PCC с осторожностью.
QoS
Простой QoS позволит поделить скорость «по справедливости» между хостами сети. Создадим минимальную конфигурацию на основе pcq, которая защитит от монопольного захвата скорости.



/queue simple
add dst=vlan11 max-limit=10M/10M name=WAN1 queue=pcq-upload-default/pcq-download-default target=""
add dst=vlan12 max-limit=10M/10M name=WAN2 queue=pcq-upload-default/pcq-download-default target=""
add dst=PPPoE_WAN3 max-limit=5M/5M name=WAN3 queue=pcq-upload-default/pcq-download-default target="" Firewall
Нарисуем максимально закрытый Firewall, в котором разрешим интернет через LTE только для самых важных сервисов и закроем доступ к самому MikroTik.
Input

Блокируем Invalid
Разрешаем WinBox порт (его нужно закрыть интерфейс листом)
Разрешаем DNS/NTP из LAN
Блокируем остальное
/ip firewall filter
add action=accept chain=input comment=ERU connection-state=established,related,untracked
add action=drop chain=input comment=Invalid connection-state=invalid
add action=accept chain=input comment=WinBox dst-port=8291 protocol=tcp
add action=accept chain=input comment=DNS/NTP dst-port=53,123 in-interface-list=LAN protocol=udp
add action=drop chain=input comment="Drop all" Forward

Блокируем Invalid
Разрешаем доступ из LAN в WAN
Разрешаем DSTNATed проброс портов
Блокируем остальное
/ip firewall filter
add action=accept chain=forward comment=ERU connection-state=established,related,untracked
add action=drop chain=forward comment=Invalid connection-state=invalid
add action=accept chain=forward comment="LAN to WAN" in-interface-list=LAN out-interface-list=WAN-ALL
add action=accept chain=forward comment="WAN DSTNATed" connection-nat-state=dstnat connection-state=new in-interface-list=WAN-ALL
add action=drop chain=forward comment="Drop all" LTE резерв
Ограничим доступ через LTE одним правилом с адрес листом. Только хосты из листа Access_WAN4 получат доступ в интернет через LTE.


Защита MikroTik
Отключаем и защищаем сервисы MikroTik от возможных атак и проникновения. Создаем доступ в WinBox/SSH только по адрес листам и порт кнокингу.
Порт кнокинг будет работать на длине пакета ICMP, например 73, с учетом поправки MTU 28 байт — ловим размер 101.



/ip firewall filter
add action=add-src-to-address-list address-list=Access_Admin address-list-timeout=10m chain=input comment=PK packet-size=101 protocol=icmp 

/ip firewall filter
add action=jump chain=input comment=ICMP jump-target=icmp protocol=icmp
add action=accept chain=icmp comment="allow echo request" icmp-options=8:0 protocol=icmp
add action=accept chain=icmp comment="echo reply" icmp-options=0:0 protocol=icmp
add action=accept chain=icmp comment="net unreachable" icmp-options=3:0 protocol=icmp
add action=accept chain=icmp comment="host unreachable" icmp-options=3:1 protocol=icmp
add action=accept chain=icmp comment="host unreachable fragmentation required" icmp-options=3:4 protocol=icmp
add action=accept chain=icmp comment="allow time exceed" icmp-options=11:0 protocol=icmp
add action=accept chain=icmp comment="allow parameter bad" icmp-options=12:0 protocol=icmp
add action=drop chain=icmp comment="deny all other types 
Cloud/DDNS/CNAME
Для доступа к MikroTik через разных операторов настроен MultiWAN, но при отключении основного провайдера — сервисы завязанные на IP этого оператора перестают работать.
Можно использовать встроенный Cloud, который через CNAME связывается с вашим доменным именем.

Включаем функцию DDNS
/ip cloud
set ddns-enabled=yes Теперь на 643105d8639d.sn.mynetname.net всегда отвечает активный основной провайдер.

Теперь мой домен multiwan.1side.ru связан по CNAME с 643105d8639d.sn.mynetname.net и выдает актуальный IP.
Уведомления Telegram
Если отсутствует ZABBIX, можно настроить отправку уведомлений Telegram самим MikroTik через скрипты и netwatch.
Создание бота


Придумываем имя и логин
Получаем token, он же [ID Бота]



Теперь нужно узнать ID чата, куда боту нужно посылать сообщения.
Находим бота @username_to_id_bot и добавляем его в чат

Отправка сообщений
Отправка происходит get запросом через /tool fetch url=
Где в url передаем все, что хотим отправить. Например:
tool/fetch url url="https://api.telegram.org/bot7079885898:AAGhg1EDrI50anh2IC6AiN_QVTil_biewFM/sendMessage?chat_id=-4198924813&text=TEST" Разберем команду:
tool/fetch url url="https://api.telegram.org/bot[ID Бота]/sendMessage?chat_id=[ID Чата]&text=[Сообщение]" Можно открыть через браузер

И через CLI MikroTik



Без этой задержки маршрут может не успеть переключиться и уведомление будет отправлено через не работающего провайдера.
:delay 65;
tool/fetch url="https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage?chat_id=-5299560184&text=WAN1_Down" /system script
add dont-require-permissions=yes name=WAN1_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN1_Down\" output=none"
add dont-require-permissions=yes name=WAN1_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN1_Up\" output=none"
add dont-require-permissions=yes name=WAN2_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN2_Down\" output=none"
add dont-require-permissions=yes name=WAN2_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN2_Up\" output=none"
add dont-require-permissions=yes name=WAN3_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN3_Down\" output=none"
add dont-require-permissions=yes name=WAN3_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN3_Up\" output=none"
add dont-require-permissions=yes name=WAN4_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN4_Down\" output=none"
add dont-require-permissions=yes name=WAN4_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN4_Up\" output=none" 

Готовая конфигурация
2 провайдера на MikroTik разрослись до MultiWAN конфигурации 4х разных операторов с возможностью суммирования трафика, использования отдельного канала, автоматическим переключением и уведомлениями в Telegram в случае проблем.
Многое в процессе настройки дополнялось и переделывалось, разобьем готовую конфигурацию на блоки:
interface
bridge
/interface bridge
add name=bridgeLAN vlan-filtering=yes
add comment=WAN1 interface=bridgeLAN name=vlan11 vlan-id=11
add comment=WAN2 interface=bridgeLAN name=vlan12 vlan-id=12
add comment=WAN3 interface=bridgeLAN name=vlan13 vlan-id=13 list
/interface list
add name=LAN
add name=WAN1
add name=WAN2
add name=WAN3
add name=WAN4
add include=WAN1,WAN2,WAN3,WAN4 name=WAN-ALL pppoe-client
/interface pppoe-client
add allow=mschap2 interface=vlan11 name=PPPoE_WAN1 profile=PPPoE_WAN1 user=PPPoE_WAN1_Login
add allow=mschap2 interface=vlan12 name=PPPoE_WAN2 profile=PPPoE_WAN2 user=PPPoE_WAN2_Login
add allow=mschap2 disabled=no interface=vlan13 name=PPPoE_WAN3 profile=PPPoE_WAN3 user=PPPoE_WAN3_Login bridge port
/interface bridge port
add bridge=bridgeLAN frame-types=admit-only-untagged-and-priority-tagged interface=ether1 pvid=11
add bridge=bridgeLAN frame-types=admit-only-untagged-and-priority-tagged interface=ether2 pvid=12
add bridge=bridgeLAN frame-types=admit-only-untagged-and-priority-tagged interface=ether3 pvid=11 list member
/interface list member
add interface=vlan3 list=LAN
add interface=vrrp3 list=LAN
add interface=vlan11 list=WAN1
add interface=vlan12 list=WAN2
add interface=vlan13 list=WAN3
add interface=PPPoE_WAN3 list=WAN3
add interface=lte1 list=WAN4 ppp profile
/ppp profile
add change-tcp-mss=yes name=PPPoE_WAN1 on-up=":local WANDHCP PPPoE_WAN1;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN1_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN1\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN1\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN2 on-up=":local WANDHCP PPPoE_WAN2;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN2_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN2\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN2\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN3 on-up=":local WANDHCP PPPoE_WAN3;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN3_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN3\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN3\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no
add change-tcp-mss=yes name=PPPoE_WAN4 on-up=":local WANDHCP PPPoE_WAN4;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN4_!_Recursive\"] gateway=\$WANDHCPNET;\r\
\n/routing rule set [find comment=\"Route_Only_WAN4\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN4\"] to-addresses=\$WANDHCPIP;" use-compression=no use-ipv6=no use-mpls=no use-upnp=no queue simple
/queue simple
add dst=vlan11 max-limit=10M/10M name=WAN1 queue=pcq-upload-default/pcq-download-default target=""
add dst=vlan12 max-limit=10M/10M name=WAN2 queue=pcq-upload-default/pcq-download-default target=""
add dst=PPPoE_WAN3 max-limit=5M/5M name=WAN3 queue=pcq-upload-default/pcq-download-default target="" routing table
/routing table
add disabled=no fib name=WAN1
add disabled=no fib name=WAN2
add disabled=no fib name=WAN3
add disabled=no fib name=WAN4 /routing table
add disabled=no fib name=WAN1
add disabled=no fib name=WAN2
add disabled=no fib name=WAN3
add disabled=no fib name=WAN4 ipv6 settings
/ipv6 settings
set disable-ipv6=yes disable-link-local-address=yes forward=no ip
neighbor discovery-settings
/ip neighbor discovery-settings
set discover-interface-list=LAN address
/ip address
add address=1.1.1.2/30 interface=vlan11 cloud
/ip cloud
set ddns-enabled=yes dhcp-client
/ip dhcp-client
add add-default-route=no default-route-tables=main disabled=yes interface=vlan11 script=":local WANDHCP vlan11;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN1_!_Recursive\"] gateway=\$WANDHCPGW;\r\
\n/routing rule set [find comment=\"Route_Only_WAN1\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN1\"] to-addresses=\$WANDHCPIP;" use-peer-dns=no use-peer-ntp=no
add add-default-route=no default-route-tables=main interface=vlan12 script=":local WANDHCP vlan12;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN2_!_Recursive\"] gateway=\$WANDHCPGW;\r\
\n/routing rule set [find comment=\"Route_Only_WAN2\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN2\"] to-addresses=\$WANDHCPIP;" use-peer-dns=no use-peer-ntp=no
add add-default-route=no default-route-tables=main interface=lte1 script=":local WANDHCP lte1;\r\
\n\r\
\nlocal result [/ip address get value-name=address [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPIP [:pick \$result 0 [:find \$result \"/\"]];\r\
\nlocal WANDHCPGW [/ip/dhcp-client/get value-name=gateway [find interface=\$WANDHCP]];\r\
\nlocal WANDHCPNET [/ip/address get value-name=network [find interface=\$WANDHCP]];\r\
\n\r\
\n\r\
\n/ip route set [find comment=\"WAN4_!_Recursive\"] gateway=\$WANDHCPGW;\r\
\n/routing rule set [find comment=\"Route_Only_WAN4\"] src-address=\$WANDHCPIP;\r\
\n/ip firewall nat set [find comment=\"NAT WAN4\"] to-addresses=\$WANDHCPIP;" use-peer-dns=no use-peer-ntp=no dns
/ip dns
set allow-remote-requests=yes servers=77.88.8.7,77.88.8.88,8.8.8.8,8.8.4.4 firewall address-list
/ip firewall address-list
add address=4.2.2.1 list=Only_WAN1
add address=4.2.2.2 list=Only_WAN2
add address=77.88.8.1 list=Only_WAN1
add address=77.88.8.2 list=Only_WAN2
add address=10.0.0.0/8 list=local
add address=172.16.0.0/12 list=local
add address=192.168.0.0/16 list=local
add address=4.2.2.3 list=Only_WAN3
add address=77.88.8.3 list=Only_WAN3
add address=4.2.2.4 list=Only_WAN4
add address=77.88.8.8 list=Only_WAN4 firewall filter
/ip firewall filter
add action=drop chain=output comment="Only WAN1" dst-address-list=Only_WAN1 out-interface-list=!WAN1
add action=drop chain=output comment="Only WAN2" dst-address-list=Only_WAN2 out-interface-list=!WAN2
add action=drop chain=output comment="Only WAN3" dst-address-list=Only_WAN3 out-interface-list=!WAN3
add action=drop chain=output comment="Only WAN4" dst-address-list=Only_WAN4 out-interface-list=!WAN4
add action=accept chain=icmp comment="allow echo request" icmp-options=8:0 protocol=icmp
add action=accept chain=icmp comment="echo reply" icmp-options=0:0 protocol=icmp
add action=accept chain=icmp comment="net unreachable" icmp-options=3:0 protocol=icmp
add action=accept chain=icmp comment="host unreachable" icmp-options=3:1 protocol=icmp
add action=accept chain=icmp comment="host unreachable fragmentation required" icmp-options=3:4 protocol=icmp
add action=accept chain=icmp comment="allow time exceed" icmp-options=11:0 protocol=icmp
add action=accept chain=icmp comment="allow parameter bad" icmp-options=12:0 protocol=icmp
add action=drop chain=icmp comment="deny all other types"
add action=accept chain=input comment=ERU connection-state=established,related,untracked
add action=drop chain=input comment=Invalid connection-state=invalid
add action=add-src-to-address-list address-list=Access_Admin address-list-timeout=10m chain=input comment=PK packet-size=101 protocol=icmp
add action=jump chain=input comment=ICMP jump-target=icmp protocol=icmp
add action=accept chain=input comment=WinBox dst-port=8291 protocol=tcp src-address-list=Access_Admin
add action=accept chain=input comment=DNS/NTP dst-port=53,123 in-interface-list=LAN protocol=udp
add action=drop chain=input comment="Drop all"
add action=accept chain=forward comment=ERU connection-state=established,related,untracked
add action=drop chain=forward comment=Invalid connection-state=invalid
add action=drop chain=forward comment="WAN4 LTE Only List" in-interface-list=LAN out-interface-list=WAN4 src-address-list=!Access_WAN4
add action=accept chain=forward comment="LAN to WAN" in-interface-list=LAN out-interface-list=WAN-ALL
add action=accept chain=forward comment="WAN DSTNATed" connection-nat-state=dstnat connection-state=new in-interface-list=WAN-ALL
add action=drop chain=forward comment="Drop all" firewall mangle
/ip firewall mangle
add action=mark-connection chain=prerouting comment="PBR_PCC 2/0" connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN1 \
per-connection-classifier=both-addresses-and-ports:2/0 src-address-list=PBR_PCC
add action=mark-connection chain=prerouting comment="PBR_PCC 2/1" connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN2 \
per-connection-classifier=both-addresses-and-ports:2/1 src-address-list=PBR_PCC
add action=mark-connection chain=prerouting comment=PBR_WAN1 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN1 \
src-address-list=PBR_WAN1
add action=mark-connection chain=prerouting comment=PBR_WAN2 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN2 \
src-address-list=PBR_WAN2
add action=mark-connection chain=prerouting comment=PBR_WAN3 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN3 \
src-address-list=PBR_WAN3
add action=mark-connection chain=prerouting comment=PBR_WAN4 connection-mark=no-mark connection-state=new dst-address-list=!local dst-address-type=!local new-connection-mark=con-WAN4 \
src-address-list=PBR_WAN4
add action=mark-connection chain=prerouting comment="Mark Connection WAN1" connection-mark=no-mark connection-state=new in-interface-list=WAN1 new-connection-mark=con-WAN1 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN2" connection-mark=no-mark connection-state=new in-interface-list=WAN2 new-connection-mark=con-WAN2 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN3" connection-mark=no-mark connection-state=new in-interface-list=WAN3 new-connection-mark=con-WAN3 src-address-list=!local
add action=mark-connection chain=prerouting comment="Mark Connection WAN4" connection-mark=no-mark connection-state=new in-interface-list=WAN4 new-connection-mark=con-WAN4 src-address-list=!local
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN1 in-interface-list=!WAN-ALL new-routing-mark=WAN1
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN2 in-interface-list=!WAN-ALL new-routing-mark=WAN2
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN3 in-interface-list=!WAN-ALL new-routing-mark=WAN3
add action=mark-routing chain=prerouting comment="Mark Routing !WAN" connection-mark=con-WAN4 in-interface-list=!WAN-ALL new-routing-mark=WAN4
add action=mark-routing chain=output comment="Mark Roution Out WAN1" connection-mark=con-WAN1 new-routing-mark=WAN1
add action=mark-routing chain=output comment="Mark Roution Out WAN2" connection-mark=con-WAN2 new-routing-mark=WAN2
add action=mark-routing chain=output comment="Mark Roution Out WAN3" connection-mark=con-WAN3 new-routing-mark=WAN3
add action=mark-routing chain=output comment="Mark Roution Out WAN4" connection-mark=con-WAN4 new-routing-mark=WAN4 firewall nat
/ip firewall nat
add action=src-nat chain=srcnat comment="NAT WAN1" ipsec-policy=out,none out-interface-list=WAN1 src-address-type=!local to-addresses=1.1.1.2
add action=src-nat chain=srcnat comment="NAT WAN2" ipsec-policy=out,none out-interface-list=WAN2 src-address-type=!local to-addresses=2.2.2.2
add action=src-nat chain=srcnat comment="NAT WAN3" ipsec-policy=out,none out-interface-list=WAN3 src-address-type=!local to-addresses=3.3.3.2
add action=src-nat chain=srcnat comment="NAT WAN4" ipsec-policy=out,none out-interface-list=WAN4 src-address-type=!local to-addresses=192.168.42.96 firewall service-port
/ip firewall service-port
set sip disabled=yes route
/ip route
add comment="Table WAN1" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.1 routing-table=WAN1 scope=30 suppress-hw-offload=no target-scope=11
add comment="Table WAN2" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.2 routing-table=WAN2 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN1_!_Recursive disabled=no distance=1 dst-address=4.2.2.1/32 gateway=1.1.1.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN2_!_Recursive disabled=no distance=1 dst-address=4.2.2.2/32 gateway=2.2.2.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN1_Recursive disabled=no distance=10 dst-address=0.0.0.0/0 gateway=4.2.2.1 routing-table=main scope=30 target-scope=11
add comment=WAN2_Recursive disabled=no distance=20 dst-address=0.0.0.0/0 gateway=4.2.2.2 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN3_!_Recursive disabled=no distance=1 dst-address=4.2.2.3/32 gateway=3.3.3.1 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment=WAN3_Recursive disabled=no distance=30 dst-address=0.0.0.0/0 gateway=4.2.2.3 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add comment="Table WAN3" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.3 routing-table=WAN3 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN4_!_Recursive disabled=no distance=1 dst-address=4.2.2.4/32 gateway=192.168.42.129 routing-table=main scope=11 suppress-hw-offload=no target-scope=10
add comment="Table WAN4" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.2.2.4 routing-table=WAN4 scope=30 suppress-hw-offload=no target-scope=11
add comment=WAN4_Recursive disabled=no distance=40 dst-address=0.0.0.0/0 gateway=4.2.2.4 routing-table=main scope=30 suppress-hw-offload=no target-scope=11 service
/ip service
set ftp disabled=yes
set ssh disabled=yes
set telnet disabled=yes
set www disabled=yes
set api disabled=yes
set api-ssl disabled=yes ssh
/ip ssh
set ciphers=aes-cbc,aes-ctr,aes-gcm host-key-size=4096 strong-crypto=yes routing rule
/routing rule
add action=lookup-only-in-table comment=Route_Only_WAN1 disabled=no src-address=1.1.1.2/32 table=WAN1
add action=lookup disabled=no dst-address=77.88.8.1/32 table=WAN1
add action=lookup-only-in-table comment=Route_Only_WAN2 disabled=no src-address=2.2.2.2 table=WAN2
add action=lookup disabled=no dst-address=77.88.8.2/32 table=WAN2
add action=lookup-only-in-table comment=Route_Only_WAN3 disabled=no src-address=3.3.3.2 table=WAN3
add action=lookup disabled=no dst-address=77.88.8.3/32 table=WAN3
add action=lookup-only-in-table comment=Route_Only_WAN4 disabled=no src-address=4.4.4.2 table=WAN4
add action=lookup disabled=no dst-address=77.88.8.8/32 table=WAN4 system
clock
/system clock
set time-zone-name=Europe/Moscow identity
/system identity
set name="\ED\E0\F1\F2\F0\EE\E9\EA\E0-\EC\E8\EA\F0\EE\F2\E8\EA.\F0\F4" note
/system note
set note="\CF\F0\EE\F4\E5\F1\F1\E8\EE\ED\E0\EB\FC\ED\E0\FF \ED\E0\F1\F2\F0\EE\E9\EA\E0 MikroTik\r\
\n\r\
\n\ED\E0\F1\F2\F0\EE\E9\EA\E0-\EC\E8\EA\F0\EE\F2\E8\EA.\F0\F4" ntp
/system ntp client
set enabled=yes
/system ntp server
set enabled=yes
/system ntp client servers
add address=0.ru.pool.ntp.org
add address=1.ru.pool.ntp.org
add address=2.ru.pool.ntp.org
add address=3.ru.pool.ntp.org routerboard settings
/system routerboard settings
set auto-upgrade=yes scheduler
/system scheduler
add disabled=yes interval=1d name=reboot1 on-event="/system/scheduler disable reboot1\r\
\n/system/reboot" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=2026-01-08 start-time=00:00:30
add disabled=yes interval=1d name=reboot2 on-event="/system/scheduler disable reboot2\r\
\n/system/reboot" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=2026-01-08 start-time=00:30:00 script
/system script
add dont-require-permissions=yes name=WAN1_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN1_Down\" output=none"
add dont-require-permissions=yes name=WAN1_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN1_Up\" output=none"
add dont-require-permissions=yes name=WAN2_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN2_Down\" output=none"
add dont-require-permissions=yes name=WAN2_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN2_Up\" output=none"
add dont-require-permissions=yes name=WAN3_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN3_Down\" output=none"
add dont-require-permissions=yes name=WAN3_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN3_Up\" output=none"
add dont-require-permissions=yes name=WAN4_Down owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN4_Down\" output=none"
add dont-require-permissions=yes name=WAN4_Up owner=WinBox policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":delay 65;\r\
\ntool/fetch url=\"https://api.telegram.org/botXXX:XXXknAZRUQohVBVEOo/sendMessage\?chat_id=-5299560184&text=WAN4_Up\" output=none" tool
bandwidth-server
/tool bandwidth-server
set enabled=no mac-server
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN netwatch
/tool netwatch
add comment=Check_WAN1 disabled=no down-script=\
"/ip route set [find comment=\"WAN1_Recursive\"] check-gateway=ping\r\
\n/ip route set [find comment=\"Table WAN1\"] check-gateway=ping\r\
\n/system/script/run WAN1_Down" host=77.88.8.1 http-codes="" interval=10s test-script="" type=simple up-script=\
"/ip route unset [find comment=\"WAN1_Recursive\"] check-gateway\r\
\n/ip route unset [find comment=\"Table WAN1\"] check-gateway\r\
\n/system/script/run WAN1_Up"
add comment=Check_WAN2 disabled=no down-script=\
"/ip route set [find comment=\"WAN2_Recursive\"] check-gateway=ping\r\
\n/ip route set [find comment=\"Table WAN2\"] check-gateway=ping\r\
\n/system/script/run WAN2_Down" host=77.88.8.2 http-codes="" interval=10s test-script="" type=simple up-script=\
"/ip route unset [find comment=\"WAN2_Recursive\"] check-gateway\r\
\n/ip route unset [find comment=\"Table WAN2\"] check-gateway\r\
\n/system/script/run WAN2_Up"
add comment=Check_WAN3 disabled=no down-script=\
"/ip route set [find comment=\"WAN3_Recursive\"] check-gateway=ping\r\
\n/ip route set [find comment=\"Table WAN3\"] check-gateway=ping\r\
\n/system/script/run WAN3_Down" host=77.88.8.3 http-codes="" interval=10s test-script="" type=simple up-script=\
"/ip route unset [find comment=\"WAN3_Recursive\"] check-gateway\r\
\n/ip route unset [find comment=\"Table WAN3\"] check-gateway\r\
\n/system/script/run WAN3_Up"
add comment=Check_WAN4 disabled=no down-script=\
"/ip route set [find comment=\"WAN4_Recursive\"] check-gateway=ping\r\
\n/ip route set [find comment=\"Table WAN4\"] check-gateway=ping\r\
\n/system/script/run WAN4_Down" host=77.88.8.8 http-codes="" interval=10s test-script="" type=simple up-script=\
"/ip route unset [find comment=\"WAN4_Recursive\"] check-gateway\r\
\n/ip route unset [find comment=\"Table WAN4\"] check-gateway\r\
\n/system/script/run WAN4_Up" Оперативность и выполнение в срок без предоплаты и бюрократии
Обсудить задачу: @Engineer_MikroTik | Ценовая политика
!!!Вышла ветка long-term для RouterOS 7!!!
