Правильная маркировка трафика на RouterOS (работает как на 6й версии так и на 7й) при использовании нескольких провайдеров для доступа к интернет
Первым делом добавим список BOGON-сетей
/ip firewall address-list add address=0.0.0.0/8 list=BOGON add address=10.0.0.0/8 list=BOGON add address=127.0.0.0/8 list=BOGON add address=169.254.0.0/16 list=BOGON add address=172.16.0.0/12 list=BOGON add address=192.0.0.0/24 list=BOGON add address=192.0.2.0/24 list=BOGON add address=192.88.99.0/24 list=BOGON add address=192.168.0.0/16 list=BOGON add address=198.18.0.0/15 list=BOGON add address=198.51.100.0/24 list=BOGON add address=203.0.113.0/24 list=BOGON add address=224.0.0.0/4 list=BOGON add address=240.0.0.0/4 list=BOGON add address=255.255.255.255 list=BOGON
Маркировка трафика через первого провайдера
/ip firewall mangle add action=mark-connection chain=prerouting comment="marking WAN1" connection-state=new dst-address=11.111.11.111 in-interface=ether1 new-connection-mark=Prerouting/via-WAN1 passthrough=no add action=mark-routing chain=output connection-mark=Prerouting/via-WAN1 new-routing-mark=NextHop/via-WAN1 passthrough=no add action=mark-routing chain=output dst-address-list=!BOGON new-routing-mark=NextHop/via-WAN1 passthrough=no src-address=11.111.11.111 add action=mark-routing chain=prerouting connection-mark=Prerouting/via-WAN1 in-interface=!ether1 new-routing-mark=NextHop/via-WAN1 passthrough=no add action=mark-routing chain=prerouting dst-address-list=!BOGON new-routing-mark=NextHop/via-WAN1 passthrough=no src-address-list=Via_WAN1
Если нужно жестко назначить определённым хостам шлюзом только первого провайдера – они добавляются в address-list Via_WAN1
Маркировка трафика через второго провайдера
/ip firewall mangle add action=mark-connection chain=prerouting comment=markingWAN2 connection-state=new dst-address=22.222.22.222 in-interface=combo1 new-connection-mark=Prerouting/via_WAN2 passthrough=no add action=mark-routing chain=output connection-mark=Prerouting/via_WAN2 new-routing-mark=NextHop/via_WAN2 passthrough=no add action=mark-routing chain=output dst-address-list=!BOGON new-routing-mark=NextHop/via_WAN2 passthrough=no src-address=22.222.22.222 add action=mark-routing chain=prerouting connection-mark=Prerouting/via_WAN2 in-interface=!combo1 new-routing-mark=NextHop/via_WAN2 passthrough=no add action=mark-routing chain=prerouting dst-address-list=!BOGON new-routing-mark=NextHop/via_WAN2 passthrough=no src-address-list=Via_WAN2
Если нужно жестко назначить определённым хостам шлюзом только первого провайдера – они добавляются в address-list Via_WAN2
В финале добавим маршруты и правила для маркированного трафика. Есть некоторые отличия в ROS-6 и ROS-7.
В RouterOS-6 это выглядит так
/ip route rule add action=lookup-only-in-table routing-mark=NextHop/via-WAN1 table=NextHop/via-WAN1 add action=lookup-only-in-table routing-mark=NextHop/via-WAN2 table=NextHop/via-WAN2 /ip route add comment="Marked via WAN1" distance=1 gateway=11.111.11.1 routing-mark=NextHop/via-WAN1 add comment="Marked via WAN2" distance=1 gateway=22.222.22.2 routing-mark=NextHop/via-WAN2
Отличия в RouterOS-7 в добавлении таблиц маршрутизации
/routing table add fib name=NextHop/via-WAN1 add fib name=NextHop/via-WAN2 /routing rule add action=lookup-only-in-table disabled=no routing-mark=NextHop/via-WAN1 table=NextHop/via-WAN1 add action=lookup-only-in-table disabled=no routing-mark=NextHop/via-WAN2 table=NextHop/via-WAN2 /ip route add comment="Marked WAN2" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=11.111.11.1 routing-table=NextHop/via-WAN1 add comment="Marked WAN1" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=22.222.22.2 routing-table=NextHop/via-WAN2