Приветствую, коллеги-пользователи Mikrotik! У меня в Филиппинах интернет-кафе, и у меня два провайдера DSL. Несколько недель я пытаюсь настроить балансировку нагрузки и автоматическое переключение при отказе. Думаю, руководство по балансировке нагрузки в вики довольно неплохое, и кажется, что всё работает нормально. Затруднения у меня со скриптом проверки соединения. У меня роутер RB532, и мне нужна помощь в скрипте автоматического переключения при отказе. Пожалуйста, помогите и скажите, что я делаю не так. Я позаимствовал часть скрипта с форума, но не могу заставить его работать должным образом, возможно, я пропустил синтаксис или всё сделал неправильно. Ничего не происходит, когда я пытаюсь запустить этот скрипт вручную.
# Установка переменных:
:local pingcount 3
:local ipA 201.84.93.24
:local ipB 203.215.102.14
:local website
# Проверка шлюзов с src:
:local pingresultA [/ping $website src-address=$ipA count=$pingcount]
:local pingresultB [/ping $website src-address=$ipB count=$pingcount]
:local timenow ([/system clock get date] . " / " . [/system clock get time])
Если Link A или Link B не работает, то:
:if (($pingresultA=0) || ($pingresultB=0)) do={
:if (($pingresultA=0) && ($pingresultB>0)) do={
/system script run linkA_down_script
} else= {
:if (($pingresultA>0) && ($pingresultB=0)) do={
/system script run linkB_down_script
}
}
} else={
Link A и Link B работают:
:if ((($pingresultA=$pingcount) && ($pingresultB=$pingcount))||(($pingresultA>0) && ($pingresultB>0))) do={
/system script run all_links_up_script
:log info " ВСЕ соединения работают"
}
}
Буду очень благодарен за любую помощь и советы. Спасибо!
# Установка переменных:
:local pingcount 3
:local ipA 201.84.93.24
:local ipB 203.215.102.14
:local website
# Проверка шлюзов с src:
:local pingresultA [/ping $website src-address=$ipA count=$pingcount]
:local pingresultB [/ping $website src-address=$ipB count=$pingcount]
:local timenow ([/system clock get date] . " / " . [/system clock get time])
Если Link A или Link B не работает, то:
:if (($pingresultA=0) || ($pingresultB=0)) do={
:if (($pingresultA=0) && ($pingresultB>0)) do={
/system script run linkA_down_script
} else= {
:if (($pingresultA>0) && ($pingresultB=0)) do={
/system script run linkB_down_script
}
}
} else={
Link A и Link B работают:
:if ((($pingresultA=$pingcount) && ($pingresultB=$pingcount))||(($pingresultA>0) && ($pingresultB>0))) do={
/system script run all_links_up_script
:log info " ВСЕ соединения работают"
}
}
Буду очень благодарен за любую помощь и советы. Спасибо!
