Добрый день. Настроил (вроде как) работу с двумя провайдерами. Код: /ip firewall nat add action=masquerade chain=srcnat comment=Internet src-address=10.0.0.0/24 /ip firewall mangle add action=mark-connection chain=input comment=Beeline in-interface=Internet1 \ new-connection-mark=c_beeline passthrough=yes add action=mark-routing chain=output comment=Beeline connection-mark=c_beeline \ new-routing-mark=r_beeline passthrough=yes add action=mark-connection chain=input comment=MGTS in-interface=Internet2 \ new-connection-mark=c_mgts passthrough=yes add action=mark-routing chain=output comment=MGTS connection-mark=c_mgts \ new-routing-mark=r_mgts passthrough=yes /ip route add comment=Beeline distance=1 gateway=95.31.0.1 routing-mark=r_beeline add comment=MGTS distance=1 gateway=95.165.128.1 routing-mark=r_mgts add comment="Beeline backup" distance=2 gateway=95.31.0.1 add comment="MGTS backup" distance=3 gateway=95.165.128.1 Internet1 = Beeline = 95.31.1.XXX/19 Internet2 = MGTS = 95.165.132.XXX/19 Сервер тимспика внутри сети Код: /ip firewall nat add action=netmap chain=dstnat comment=TeamSpeak dst-port=9987 log=yes \ log-prefix=ts_ protocol=udp to-addresses=10.0.0.2 to-ports=9987 add action=netmap chain=dstnat comment=TeamSpeak dst-port=10011 log=yes \ log-prefix=ts_ protocol=tcp to-addresses=10.0.0.2 to-ports=10011 add action=netmap chain=dstnat comment=TeamSpeak dst-port=30033 log=yes \ log-prefix=ts_ protocol=tcp to-addresses=10.0.0.2 to-ports=30033 add action=netmap chain=dstnat comment=TeamSpeak dst-port=41144 log=yes \ log-prefix=ts_ protocol=tcp to-addresses=10.0.0.2 to-ports=41144 Firewall Код: /ip firewall filter add action=fasttrack-connection chain=forward connection-state=\ established,related add action=accept chain=input comment="user - vpn" dst-port=1723 protocol=tcp add action=accept chain=input comment="user - vpn" protocol=gre add action=accept chain=input protocol=icmp add action=accept chain=forward connection-state=established,related add action=accept chain=input connection-state=established,related add action=accept chain=input comment="Web control" dst-port=8080 log=yes \ log-prefix=webcontrol_ protocol=tcp add action=accept chain=input comment=TeamSpeak dst-port=9987 log=yes \ log-prefix=ts_ protocol=udp add action=accept chain=input comment=TeamSpeak dst-port=10011,30033,41144 log=\ yes log-prefix=ts_ protocol=tcp add action=drop chain=input comment="Incoming block" in-interface=Internet1 add action=drop chain=input comment="Incoming block" in-interface=Internet2 add action=drop chain=forward comment="Invalid block" connection-nat-state=\ !dstnat connection-state=new in-interface=Internet1 add action=drop chain=forward comment="Invalid block" connection-nat-state=\ !dstnat connection-state=new in-interface=Internet2 Добился того, что снаружи видно сам роутер (через обоих провайдеров) и можно подключиться по VPN. Но сервисы внутри сети работают только через одного провайдера, по двум последним записям роутинга (которые backup). Причем если их выключить, то и изнутри перестает работать интернет. В статистике соединения и маршруты делают вид что помечаются... Что я делаю не так?
Не маркируете исходящие с серверов. Начните с моей презентации и видео на MUM2015 https://mum.mikrotik.com/2015/RU/agenda последняя в списке.
Прочитал, не помогло. Сделал так: Код: /ip firewall mangle add action=mark-routing chain=prerouting comment=Beeline connection-mark=c_beeline new-routing-mark=\ r_beeline passthrough=no add action=mark-routing chain=output comment=Beeline connection-mark=c_beeline new-routing-mark=\ r_beeline passthrough=no add action=mark-routing chain=prerouting comment=MGTS connection-mark=c_mgts new-routing-mark=r_mgts \ passthrough=no add action=mark-routing chain=output comment=MGTS connection-mark=c_mgts new-routing-mark=r_mgts \ passthrough=no add action=mark-connection chain=input comment=Beeline in-interface=Internet1 new-connection-mark=\ c_beeline passthrough=no add action=mark-connection chain=prerouting comment=Beeline in-interface=Internet1 \ new-connection-mark=c_beeline passthrough=no add action=mark-connection chain=input comment=MGTS in-interface=Internet2 new-connection-mark=c_mgts \ passthrough=no add action=mark-connection chain=prerouting comment=MGTS in-interface=Internet2 new-connection-mark=\ c_mgts passthrough=no /ip route add check-gateway=ping comment=Beeline distance=2 gateway=95.31.0.1 routing-mark=r_beeline add check-gateway=ping comment=MGTS distance=2 gateway=95.165.128.1 routing-mark=r_mgts add check-gateway=ping comment="Backup Beeline" distance=3 gateway=95.31.0.1 add check-gateway=ping comment="Backup MGTS" distance=4 gateway=95.165.128.1 Теперь хотябы ошибка стабильна. 1. Если включены первые 2 маршрута, вторые 2 выключены - входящие работают на оба адреса, но не работает интернет изнутри сети. 2. Если выключить первые 2 маршрута, включить вторые 2 - работает интернет изнутри, входящие работают только на первый адрес (его маршрут активен). 3. Если включено все - работает интернет и входящие на первый адрес (как и п.2). Подозреваю, что не все маршруты я маркирую. В списке соединений марки c_ стоят везде.
Вощем победил сам. Маркировалось лишнее. Код: /ip firewall mangle add action=mark-connection chain=prerouting comment=Beeline dst-address=95.31.1.XXX in-interface=\ Internet1 new-connection-mark=c_beeline passthrough=no add action=mark-connection chain=prerouting comment=MGTS dst-address=95.165.132.XXX in-interface=\ Internet2 new-connection-mark=c_mgts passthrough=no add action=mark-routing chain=prerouting comment=MGTS connection-mark=c_mgts new-routing-mark=r_mgts \ passthrough=no add action=mark-routing chain=prerouting comment=Beeline connection-mark=c_beeline new-routing-mark=\ r_beeline passthrough=no add action=mark-routing chain=prerouting new-routing-mark=r_main passthrough=no src-address=10.0.0.0/24 /ip route add check-gateway=ping comment=Beeline distance=2 gateway=95.31.0.1 routing-mark=r_beeline add check-gateway=ping comment=MGTS distance=2 gateway=95.165.128.1 routing-mark=r_mgts add check-gateway=ping comment="balance route" distance=2 gateway=\ 95.31.0.1,95.31.0.1,95.31.0.1,95.165.128.1 routing-mark=r_main Зафиксировал маркировку входящих пакетов помимо интерфейса еще и адресом назначения и распихал по своим маршрутам. Принудительно промаркировал все что изнутри сети и отправил на общий маршрут. Скорости у меня 100/30, так что шлюзы поставил 3/1. Ну и теперь изнутри сети сервисы по внешним адресам недоступны.
Вот здесь надо добавить in-interface. Иначе у вас пакет идущий внутрь сети будет отмаркирован и уйдет на default-gateway
да, методом тыка разобрался. И осталась одна проблема - теперь снаружи недоступен сам роутер. Соединение нужное я вылавливаю, маркирую. А что дальше с ним делать? Марку роутинга ставлю или не ставлю - толку нет. Пакеты пропадают...