failover в Mikrotik без изпълняване на скрипт

Един приятел ме помоли да погледна рутера във фирмата му и по специално failover-a им. Останах неприятно изненадан от един скрипт от който нищо не разбрах. Затова сега искам да покажа един прост и 100% работещ вариант с четири реда конфигурация без никакви скриптове.

/ip route
add check-gateway=ping comment="ISP1 DEFAULT" distance=1 gateway=8.8.4.4
add check-gateway=ping comment="ISP2 ALTERNATIVE" distance=2 gateway=8.8.8.8
add comment="GOOGLE ISP1" distance=1 dst-address=8.8.4.4/32 gateway=10.125.3.1 scope=10
add comment="GOOGLE ISP2" distance=2 dst-address=8.8.8.8/32 gateway=85.118.95.33 scope=10

На картинката по долу мисля, че е ясно какво се случва в деиствителност. Вторият маршрут ISP2 ALTERNATIVE е неактивен и се активира когато падне пинга към 8.8.4.4 или обратното.

Screenshot from 2014-10-15 02:07:04

Може би някой ще зададе въпроса какво ще стане ако имаме няколко маршрутни таблици ? Проблема е никакъв – просто трябва да добавим routing-mark=”new_table” (както принципно си се добавя нова таблица) и така можем да имаме колкото таблици искаме и всичките да са failover.

Долу картинката илюстрира друг рутер с реална конфигурация на три маршрутни таблици:

failover

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This Post Has 6 Comments

  1. Georgi

    Може ли един export на втори пример.
    Благодаря предварително.

  2. Самуил Арсов
    /ip route
    add check-gateway=ping comment="GCN DEFAULT" distance=1 gateway=8.8.8.8 routing-mark=SRC-ROUTE1
    add check-gateway=ping comment="GCN ALTERNATIVE" distance=2 gateway=8.8.4.4 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=10.0.0.0/8 gateway=93.155.130.45 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=85.118.95.32/27 gateway=bridge1 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=85.118.95.64/26 gateway=bridge1 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=93.155.131.56/29 gateway=93.155.169.109 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=93.155.169.0/25 gateway=bridge1 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=172.16.101.0/24 gateway=bridge1 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=172.16.102.0/24 gateway=93.155.130.45 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=172.16.103.0/24 gateway=93.155.169.109 routing-mark=SRC-ROUTE1
    add distance=1 dst-address=172.16.104.0/24 gateway=93.155.130.45 routing-mark=SRC-ROUTE1
    add check-gateway=ping comment="MTEL DEFAULT" distance=1 gateway=8.8.4.4 routing-mark=SRC-ROUTE2
    add check-gateway=ping comment="MTEL ALTERNATIVE" distance=2 gateway=8.8.8.8 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=10.0.0.0/8 gateway=93.155.130.45 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=85.118.95.32/27 gateway=bridge1 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=85.118.95.64/26 gateway=bridge1 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=93.155.131.56/29 gateway=93.155.169.109 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=93.155.169.0/25 gateway=bridge1 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=172.16.101.0/24 gateway=bridge1 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=172.16.102.0/24 gateway=93.155.130.45 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=172.16.103.0/24 gateway=93.155.169.109 routing-mark=SRC-ROUTE2
    add distance=1 dst-address=172.16.104.0/24 gateway=93.155.130.45 routing-mark=SRC-ROUTE2
    add check-gateway=ping comment="LOCAL DEFAULT" distance=1 gateway=8.8.4.4
    add check-gateway=ping comment="LOCAL ALTERNATIVE" distance=2 gateway=8.8.8.8
    add comment="GOOGLE MTEL" distance=1 dst-address=8.8.4.4/32 gateway=85.118.95.5 scope=10
    add comment="GOOGLE GCN" distance=1 dst-address=8.8.8.8/32 gateway=93.155.130.45 scope=10
    add distance=1 dst-address=10.0.0.0/8 gateway=93.155.130.45
    add distance=1 dst-address=93.155.130.0/24 gateway=93.155.130.45
    add distance=1 dst-address=93.155.131.0/24 gateway=93.155.130.45
    add distance=1 dst-address=93.155.131.56/29 gateway=93.155.169.109
    add distance=1 dst-address=93.155.162.0/24 gateway=93.155.130.45
    add distance=1 dst-address=172.16.102.0/24 gateway=93.155.130.45
    add distance=1 dst-address=172.16.103.0/24 gateway=93.155.169.109
    add distance=1 dst-address=172.16.104.0/24 gateway=93.155.130.45
    /ip route rule
    add src-address=93.155.169.0/25 table=SRC-ROUTE1
    add src-address=93.155.131.56/29 table=SRC-ROUTE1
    add src-address=85.118.95.32/27 table=SRC-ROUTE2
    add src-address=85.118.95.64/26 table=SRC-ROUTE2
    /ip firewall nat
    add action=masquerade chain=srcnat comment=NAT-GCN out-interface=vlan149 src-address-list=NAT-GCN
    add action=masquerade chain=srcnat comment=NAT-MTEL out-interface=ether7 src-address-list=NAT-MTEL
    /ip firewall address-list
    add address=172.16.101.1-172.16.101.83 comment=ITS-DEVICE list=NAT-MTEL
    add address=93.155.169.0/25 list=NAT-MTEL
    add address=10.0.0.0/8 list=NAT-MTEL
    add address=93.155.130.0/24 list=NAT-MTEL
    add address=93.155.131.0/24 list=NAT-MTEL
    add address=93.155.162.0/24 list=NAT-MTEL
    add address=85.118.95.32/27 list=NAT-GCN
    add address=85.118.95.64/26 list=NAT-GCN
    add address=172.16.103.1-172.16.103.6 comment=HOTSPOT-DEVICES list=NAT-MTEL
    
  3. Go

    Странно, това нещо найстина работи, мерси за инфото …

  4. Пенко

    Здравейте, възможно ли е да дадете пример за случая, когато ISP1 дава адрес по DHCP (и съответно различен gateway всеки път)?

  5. Стамо Христов

    Работи с уточнението, че трябва да се затрие рутинга, който е по подразбиране.

  6. Людмил Борисов

    Как се процедира когато само единия ISP дава реален адрес с натове по портове?