Данные
ether1 - провайдер 1 (10.10.1.1)
ether2 - провайдер 2 (10.10.2.1)
ether3+Megalink_ppp8 - провайдер 3 (10.10.3.1)(ppp-172.16.0.1)
ether 5 - камеры (10.10.5.1)
как настроить тут:
https://onedayadmin.sytes.net/nastrojka-interfejsov-mikrotik/
ether6,7,8,9 - локальная сеть объединенная в бриджы br-vlan21 (10.10.21.0/24)с Vlan-21 и br-vlan100 (10.10.100.0/24) c Vlan-100
ether10 - локальная сеть в бридже br-vlan100
как настроить написано тут:
https://onedayadmin.sytes.net/nastrojka-vlan-na-router-mikrotik/
ether10 - локальная сеть в бридже br-vlan100
Для удобства, чтобы не писать по три правила на каждый интерфейс который смотрит в инет сгрупирирует интерфейсы.
/interface list
add name=WAN
/interface list member
add interface=ether1 list=WAN
add interface=ether2 list=WAN
add interface=Megalink_ppp8 list=WAN
или
Заходим в Interfaces -> Interface List -> Жмем кнопку Lists -> + -> Пишем название группы (WAN) -> Добавили и закрыли окно + -> Поле list выбираем WAN -> В Interface выбираем интерфейс.
Настроим NAT
Откройте меню New Terminal для ввода команд.
ip firewall nat add chain=srcnat out-interface-list=WAN action=masquerade
где WAN - это интерфейс(мост), на который приходит интернет от провайдера. Если используется только PPPoE соединений указывается название PPPoE интерфейса а не локального, через который поднят тунель.
Переходим к Firewall
И так помним про порядок правил в цепочках, его никто не отменял!
Заходим в IP -> FIrewall ->Filter Rules
Начнем с основного, последними правилами у нас всегда будет: разрешить исходящие соединения, запретит все входящие, запретить все транзитные пакеты.
"+" -> General -> Chain - Output ->Action -> accept
"+" -> General -> Chain - Input ->Action -> drop
"+" -> General -> Chain - Forward ->Action -> drop
Добавим первыми в цепочки два правила которые будут отбрасывать некоректные сессии:
"+" -> General -> Chain - Input, Connection State - invalid ->Action -> drop
"+" -> General -> Chain - Forward, Connection State - invalid ->Action -> drop
Добавим правило для блокировки всех транзитных соединений на 25 порт по UDP в интернет(wifi точки с мега юзверями задолбали спамить на этот порт) это правило будет всегда вторым в цепочке.
"+" -> General -> Chain - Forward, Protocol - UDP, Dst.Port - 25, Out.Interface.List - WAN ->Action -> drop
Разрешим уже установленные или связанные соединения:
"+" -> General -> Chain - Input, Connetction State - estabilished, related ->Action -> accept
"+" -> General -> Chain - Forward, Connetction State - estabilished, related ->Action -> accept
Разрешим траффик внутри наших мостов:
"+" -> General -> Chain - Forward, In.Interface - br-vlan21, Out.Interface - br-vlan21 ->Action -> accept
"+" -> General -> Chain - Forward, In.Interface - br-vlan100, Out.Interface - br-vlan100 ->Action -> accept
Разрешим мосту br-vlan100 выход в интернет:
"+" -> General -> Chain - Forward, In.Interface - br-vlan100, Out.Interface List - WAN->Action -> accept
Разрешим IP адресам из списка allow_forward_ip из моста br-vlan21 forwarding на любые направления:
Заходим в IP -> FIrewall -> Address lists -> "+" -> Name - allow_forward_ip -> address - 10.10.21.55 -> OK
И так для каждого ip который надо добавить в этот лист, имя листа всегда одинаково.
Заходим в IP -> FIrewall ->Filter Rules
"+" -> General -> Chain - Forward, In.Interface - br-vlan21, Connection State - new -> Advanced -> Src.AddressList -> allow_forward_ip ->Action -> accept
Разрешим подключаться к mikrotik по ssh из любых сетей и winbox из локалки:
"+" -> General -> Chain - Input, Protocol - tcp, Dst.Port - 22 ->Action -> accept
"+" -> General -> Chain - Input, Protocol - tcp, Dst.Port - 8291, In.Interface - br-vlan21 ->Action -> accept
Разрешим пинговать наш Mikrotik
"+" -> General -> Chain - Input, Protocol - icmp ->Action -> accept
- Немного маршритизации для следующей задачи.
https://onedayadmin.sytes.net/mikrotik-3-provajdera-otkazoustojchivost/
Так вот 3 провайдера, а все клиенты работают только через одного, как то это не правильно.... Первый провайдер 100 Mbit, второй - 30 Mbit, Третий - 5 Mbit
Поэтому основной трафик пусть идет через первого, а кусочек в виде 100-й подсети отправим на второго, ну а третий пусть болтается на случай если уж первые 2 лягут замертво, тогда весь трафик пойдет через него.
Поэтому выпустим наш мост br-vlan100 через провайдера 2, если он будет недоступен то mikrotik автоматически кинет все соединения в основную таблицу маршрутизации, где они пойдут со всеми остальными сетями.
В ситуации когда упадет 1 провайдер, наши соединения из br-vlan100 так и пойдут через второго, а весь остальной трафик по основной таблице маршрутицации тоже будет завернут на второго провайдера.
Если не доступны оба провайдера все дружно по основной таблице маршрутизации повалят через третьего, так как метрика у него самая большая.
Первым делом промаркеруем трафик идущий из моста br-vlan100 маркой rout_ether2 Для этой марки назначен маршрут по умолчанию через шлюз второго провайдера - 10.10.2.254 (смотреть выше в статье где настраивали ответ сервера с того же порта на котором был получен пакет).
IP -> Firewall -> Mangle -> "+" -> General -> Chain - prerouting, In.Interface - br-vlan100 -> Action -> Action - mark routing, New Routing Mark - rout_ether2 -> OK
Теперь наш трафик из 100 сети будет перенаправлен в таблицу rout_ether2 в которой из маршрутов только шлюз по умолчанию, чтобы нам была доступна сеть из моста br-vlan100 и сеть из моста br-vlan21, нужно добавить к ним маршруты.
IP -> Routing -> "+" -> General -> Dst.Address - 10.10.21.0/24, Gateway - br-vlan21, Type - unicast, Distans - 1, Scope - 3, Target Scope - 10, Routinf Mark - rout_ether2 -> OK
IP -> Routing -> "+" -> General -> Dst.Address - 10.10.100.0/24, Gateway - br-vlan100, Type - unicast, Distans - 1, Scope - 3, Target Scope - 10, Routinf Mark - rout_ether2 -> OK
Так как мы разрешили прохождение наших соединений в статье выше,
"+" -> General -> Chain - Forward, In.Interface - br-vlan21, Out.Interface - br-vlan21 ->Action -> accept
"+" -> General -> Chain - Forward, In.Interface - br-vlan100, Out.Interface - br-vlan100 ->Action -> accept
"+" -> General -> Chain - Forward, In.Interface - br-vlan100, Out.Interface List - WAN->Action -> accept
то на этом все.