Help script

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
andrey.tretyakov
Сообщения: 3
Зарегистрирован: 16 мар 2023, 01:21

Прошу помощи в написании скрипта.
При недоступности хоста с ether1 надо менять up интерфейс в igmp-proxy на eoip-tunel1 и обратно, когда хост доступен.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Ну и пишите, чего там сложного ?

Пингуем Ваш хост через интерфейс ether1.
Если не доступен = выключаем ether1 и включаем eoip.
Переодически включаем Ether1 и запускаем всё с начала


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
andrey.tretyakov
Сообщения: 3
Зарегистрирован: 16 мар 2023, 01:21

Интересует скрипт переключения именно в igmp-proxy


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

В idmp-routing два правила, одно из которых активно (disabled=no), а второе нет (disabled=yes). На каждом уникальный комментарий (в примере это Vasya и Petya). Пингуете нужный хост с заданной периодичностью. При недоступности срабатывает условие типа:

Код: Выделить всё

/routing igmp-proxy interface set [find comment=Vasya] disabled=yes;
/routing igmp-proxy interface set [find comment=Petya] disabled=no;
При появлении доступа срабатывают обратные правила.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
andrey.tretyakov
Сообщения: 3
Зарегистрирован: 16 мар 2023, 01:21

В том и дело, что даже 2 выключенных интерфейса с up-stream в системе не может быть.
Только один!
Автоматом хочу переключаться.
У меня ROS 7.5


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Ну так можно держать в igmp-proxi одно правило, а по ситуации удалять его и добавлять другое, нужное и наоборот.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Да что ж вы дописать один аргумент не в состоянии?

Код: Выделить всё

/routing igmp-proxy interface set [find comment=Vasya] disabled=yes upstream=no; 
 /routing igmp-proxy interface set [find comment=Petya] disabled=no upstream=yes;


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Sheva
Сообщения: 15
Зарегистрирован: 06 фев 2023, 17:29

Не факт что сразу заработает, но при желании допилите.
https://chat.openai.com/chat дает такой ответ: Для реализации данного функционала необходимо написать скрипт на языке script MikroTik RouterOS.

Приведу пример такого скрипта:
---------------------------------------------------------------------------------------------------------------------
:local host "192.168.1.1" # IP-адрес хоста, который необходимо проверять
:local interface1 "ether1" # Имя интерфейса, который используется по умолчанию
:local interface2 "eoip-tunnel1" # Имя интерфейса, который будет использоваться при недоступности хоста

:while (true) do={
:if ([ping $host count=1] = 0) do={
# Хост недоступен, меняем интерфейсы
/interface igmp-proxy set [find name=igmp-proxy] interface=$interface2
/interface igmp-proxy set [find name=igmp-proxy] multicast-interfaces=$interface2
/log info "Switched to $interface2 interface"
} else={
# Хост доступен, возвращаем настройки
/interface igmp-proxy set [find name=igmp-proxy] interface=$interface1
/interface igmp-proxy set [find name=igmp-proxy] multicast-interfaces=$interface1
/log info "Switched to $interface1 interface"
}
# Пауза между проверками состояния хоста
/delay 10s
}
--------------------------------------------------------------------------------------------------------------------------
В данном скрипте используется бесконечный цикл, в котором осуществляется проверка доступности хоста через ping. Если хост недоступен, то настройки интерфейсов igmp-proxy изменяются на интерфейс interface2, если хост доступен - на интерфейс interface1. В лог-файл выводится информация о смене интерфейса.

После написания скрипта, необходимо сохранить его на MikroTik RouterOS и запустить. Для этого можно воспользоваться командой /system script add и /system scheduler add.

Пример команд для запуска скрипта:
---------------------------------------------------------------------------------------------------------------------------
/system script add name=switch-igmp-proxy source="`<вставить сюда содержимое скрипта>`"
/system scheduler add name=check-host interval=10s on-event=switch-igmp-proxy
----------------------------------------------------------------------------------------------------------------------------
Данный скрипт будет проверять доступность хоста каждые 10 секунд и менять настройки igmp-proxy в зависимости от его состояния.


Ответить