2
Окт

Доступ к локальным ресурсам Mikrotik через 2го провайдера ISP2

Базовая настройка двух провайдеров на Mikrotik.

Т.к. Mirkotik способен работать одновременно с несколькими провайдерами, возникает необходимость получать доступ к самому Mikrotikу или внутренним ресурсам локальной сети также и с других провайдеров. По умолчанию Mikrotik доступен только с провайдера, шлюз которого используется по умолчанию. Поэтому ув. erazel попытается «на яблоках» объяснить что нужно сделать для полноценного использования второго или другого провайдера, подключенного к роутеру.

Пример будет для второго провайдера Укртелеком.
Будем  считать что у вас два аплинка со статическими ip адресами, в случае с динамическими ip, необходимо будет порвань несколько бубнов и  использовать скрипты для изменения gateway провайдера.

1. Даем метку для дефолтного маршрута через ISP2 и маршрута к шлюзу(что бы роутер знал через какой интерфейс обращаться к шлюзу)
Route

/ip route  add distance=1 dst-address=0.0.0.0/0 gateway=195.5.147.1 routing-mark=oo scope=10

195.5.147.1 — gateway Укртелекома, у вас будет другой ip

Route List
2. Весь входящий трафик через интерфейс ISP2 и не имеющий еще маркировки, мы маркируем соответствующим конекшн-марком

firewall

/ip firewall mangle  add action=mark-connection chain=prerouting comment=oo connection-mark=no-mark in-interface=ISP2 new-connection-mark=ISP2

Mangle1-1Mangle1-2
3. Трафик вошедший в роутер через второй аплинк ISP2  и выходящий не в интерфейс локалки (тоесть трафик самого роутера идущий как ответный на запросы из интернета) мы отправляем по маркированому маршруту

/ip firewall mangle  add action=mark-routing chain=output connection-mark=ISP2 new-routing-mark=oo out-interface=!bridge-local

Mangle2-1Mangle2-2
Для чего это? Иначе пакет будет смотреть основную таблицу маршрутизации, а там указан основным шлюзом ISP1
4. Трафик идущий от клиентов локалки (подсеть 192.168.0.0/16) и имеющий нужный конекшнмарк мы тоже отправляем через маркированый маршрут. Мы могли или сами до этого промаркировать трафик по нужному критерию или же это ответный трафик на запросы из интернета(если у нас есть проброс портов)

/ip firewall mangle  add action=mark-routing chain=prerouting connection-mark=ISP2 new-routing-mark=oo src-address=192.168.0.0/16

или

/ip firewall mangle  add action=mark-routing chain=prerouting connection-mark=ISP2 in-interface=bridge-local new-routing-mark=oo

Mangle3-1Mangle3-2

так же вместо src-address=  можно указать интерфейс  локалки in-interface= . В чем кардинальная разница? Ну во втором случае у нас могут быть за одним портом/бриджом несколько разных подсетей, с данным параметром не придется для каждой делать отдельное правило.

Этих правил хватит что бы сам роутер жил с двумя аплинками и успешно пробрасывал порты с двух внешних интерфейсов.
Если же вы хотите еще и разделять клиентов локалки по разным аплинкам динамически то надо читать статью из заголовка.
если же нам надо сугубо конкретные адреса/порты то достаточно простого правила  типа такого:

/ip firewall mangle add action=mark-routing chain=prerouting dst-port=22 new-routing-mark=ukrtelecom protocol=tcp src-address=192.168.0.62

Не обязательно использовать все поля. Можно обойтись только src.адресом если нам надо весь трафик конкретной машины отправить через второй шлюз. Если же мы укажем еще и порт то весь трафик кроме этого порта пойдет через дефолтный маршрут, а трафик к этому порту пойдет через маркрированый маршрут. Полезно если мы не хотим забивать торентами основной канал. Достаточно указать срц.порт=порту_торент_клиента.

Англоязычную полную информацию можно найти по адресу Manual:PCC

Материал подготовил erazel