Скрипт переключения каналов

Тема в разделе "Скрипты", создана пользователем 4ikotillo, 13 ноя 2018.

  1. 4ikotillo

    4ikotillo Новый участник

    На микротике 3 WAN, разные подсети раскиданы по разным WAN с помощью mangle.
    Я написал скрипты для netwatch, только они пропускают действия. Подскажите где я ошибся.

    Код:
    :local W1IP [/ping 208.67.220.220 count=5]
    
    :local W3IP [/ping 1.1.1.1 count=5]
    
    :if (W1IP = 0) do={
    
    :if (W3IP = 0) do={
    /system script run [find name="DISABLE_ALL"]
    :log warning "ALL WANS IS DOWN! DISABLE ALL MANGLE!"
    
    } else={
    /system script run [find name="all_to_WAN3"]
    :log warning "WAN1 AND WAN2 IS DOWN! ALL SWICHED TO WAN3!"
    
    }
    
    } else={
    :if (W3IP = 0) do={
    /system script run [find name="all_to_WAN1"]
    
    :log warning "WAN2 AND WAN3 IS DOWN! ALL SWICHED TO WAN1!"
    
    } else={
    /system script run [find name="only_WAN1_and_WAN3"]
    :log warning "WAN2 IS DOWN! ALL SWICHED TO WAN1 AND WAN3!"
    
    }
    
    }
    Это скрипт срабатывает когда WAN2 имеет статус down. Так Если у меня выключен и WAN3 и после этого выключается WAN2, он должен все переключить на WAN3. Это 3 действие в скрипте, но он его не выполняет, а выполняет последнее. В итоге результат "WAN2 IS DOWN! ALL SWICHED TO WAN1 AND WAN3!". Ошибка в логике алгоритма который я использую для проверки и переключения каналов или же в написании команд?
     
  2. Илья Князев

    Илья Князев Администратор Команда форума

    А как вы обеспечиваете, чтобы netwatch пинговал что-либо через конкретный WAN?
     
  3. 4ikotillo

    4ikotillo Новый участник

    Фиксирую каждый адрес в своей таблице маршрутизации. Lookup only in table wan1, wan2 и wan3 соответственно.