0887 371 498 support@itservice-bg.net
15.10.2014 · Самуил Арсов · MikroTik, Рутери

MikroTik: failover без скрипт и netwatch за известяване

Две неща вървят заедно, когато рутерът има повече от един изход към света: маршрутът да се прехвърли сам при отпадане и вие да разберете, че се е случило. Първото се прави с четири реда без никакъв скрипт, второто — с netwatch.

Failover с четири реда, без скрипт

Виждал съм failover, реализиран със скрипт, от който не се разбира нищо. Ето прост и напълно работещ вариант с четири реда конфигурация:

/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

Логиката: първите два реда са маршрути по подразбиране през два различни адреса за проверка, с различна дистанция. Вторите два казват как се стига до самите адреси за проверка — всеки през своя доставчик, със scope=10, за да не се търсят рекурсивно. Вторият маршрут (ISP2 ALTERNATIVE) стои неактивен и се активира, когато падне пингът към 8.8.4.4.

MikroTik failover — таблицата с маршрути, вторият неактивен

С няколко маршрутни таблици

Ако имате повече от една маршрутна таблица, проблемът е никакъв — добавя се routing-mark="new_table", както принципно се добавя нова таблица. Така може да имате колкото таблици искате и всичките да са failover.

MikroTik failover при три маршрутни таблици — реална конфигурация

Netwatch — за да разберете, че се е случило

Failover-ът връща услугата, но мълчаливо. Netwatch може да пише в лога с различно ниво според състоянието на наблюдавания хост — warning при връщане и error при отпадане. Така събитията се открояват цветово от пръв поглед в прозореца Log:

/tool netwatch
add host=8.8.8.8 \
    up-script=":log warning \"Ping 8.8.8.8 up\"" \
    down-script=":log error \"Ping 8.8.8.8 down\""

MikroTik netwatch — събитията в лога, оцветени по ниво

И със звук

Ако рутерът има beeper, може да се добави и звук — различна честота за up и down. Полезно, когато шкафът е близо до работното място:

/tool netwatch
add host=93.155.130.37 \
    up-script=":log warning \"Ping 93.155.130.37 up\"; :beep frequency=2000 length=1000ms" \
    down-script=":log error \"Ping 93.155.130.37 down\"; :beep frequency=4000 length=1000ms"

Едно предупреждение за netwatch

Netwatch по подразбиране проверява често и обявява хоста за паднал при първия неуспешен пинг. При радиовръзка или натоварен канал това дава фалшиви отпадания — логът се пълни, а нищо не е било сбъркано. Ако наблюдавате нещо, което може да трепва, вдигнете interval и не връзвайте тежки действия за down-script.