Как отключить порты на бридже
-
- Сообщения: 8
- Зарегистрирован: 18 фев 2019, 15:36
Как отключить порты на бридже
Всем привет
Помогите разобраться, как отключить порты на выбраном бридже ?
В данном примере одним из бриджей есть "brLAN"
Нужно отключить (disable) порты (интерфейсы) "ether2" и "ether3"
Помогите разобраться, как отключить порты на выбраном бридже ?
В данном примере одним из бриджей есть "brLAN"
Нужно отключить (disable) порты (интерфейсы) "ether2" и "ether3"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Как отключить порты на бридже
Приветствую.
Или более точечно:
Код: Выделить всё
/interface bridge port
disable [find interface="ether2"]
disable [find interface="ether3"]
Код: Выделить всё
/interface bridge port
disable [find interface="ether2" and bridge="brLAN"]
disable [find interface="ether3" and bridge="brLAN"]
-
- Сообщения: 8
- Зарегистрирован: 18 фев 2019, 15:36
Re: Как отключить порты на бридже
Не совсем хорошо.
Таким образом можно потушить любой интерфейс и необязательно знать в каком он бридже.
Нужно отключить (или включить) все интерфейсы, которые есть в известном бридже, не зная ни их количества ни названий
Ни сколько жизненная необходимость, сколько фича в скрипте, которая срабатывет по определенным событиям.
Есть ли сколь нибуть полная информация по использованию get find fetch и прочей магии?
Уж больно скудная mikrotik wiki
В любом случае спасибо за ответ
Таким образом можно потушить любой интерфейс и необязательно знать в каком он бридже.
Нужно отключить (или включить) все интерфейсы, которые есть в известном бридже, не зная ни их количества ни названий
Ни сколько жизненная необходимость, сколько фича в скрипте, которая срабатывет по определенным событиям.
Есть ли сколь нибуть полная информация по использованию get find fetch и прочей магии?
Уж больно скудная mikrotik wiki
В любом случае спасибо за ответ
-
- Сообщения: 8
- Зарегистрирован: 18 фев 2019, 15:36
Re: Как отключить порты на бридже
Может так?
или так
Хотя вроде пробовал так (куча вариантов была) - не получалось.
Поскольку не разобрался с механизмами обработки выборки после find, то путаюсь.
Код: Выделить всё
/interface ethernet disable [/interface bridge port find bridge="brLAN"]
Код: Выделить всё
/interface ethernet disable [get [/interface bridge port find bridge="brLAN"] name]
Поскольку не разобрался с механизмами обработки выборки после find, то путаюсь.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Как отключить порты на бридже
Ага, правильно сформулированная задача - уже половина ответа Значит, вам надо отключить не порты в бридже, а интерфейсы, являющиеся портами заданного бриджа. Уже лучше
Код: Выделить всё
:foreach i in=[ /interface bridge port find bridge=brLAN ] do={
/interface disable [ /interface bridge port get $i interface ]
}
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Как отключить порты на бридже
Ну, по скриптам там вроде не сильно-то и скудно: https://wiki.mikrotik.com/wiki/Manual:Scripting
-
- Сообщения: 8
- Зарегистрирован: 18 фев 2019, 15:36
Re: Как отключить порты на бридже
Отлично, работает!
Теперь видно, где я тормозил.
Огромное спасибо!!!
Почему назвал "портами", потому что интерфейсы бриджа находятся в разделе "/interface bridge port"
Вот и вся помощь
А вот как конкретно работать с этими "selected items parameter value" и "list of internal numbers" можно узнать путём догадок, изучая различные примеры из других разделов wiki и форумов (слава Господу, что есть mikrotik.by).
В даном случае у меня не получилось правильно оформить конструкцию get <id> <param>, чтобы получать названия интерфейсов из выборки и правильно подставлять эти названия в конструкцию /interface disable <name interface>.
Буду курить форумы дальше. Не понимая как работатет этот механизм в скрипто-писании делать нечего.
Еще раз огромное спасибо, @Chupaka
Теперь видно, где я тормозил.
Огромное спасибо!!!
Почему назвал "портами", потому что интерфейсы бриджа находятся в разделе "/interface bridge port"
В целом по написанию скриптов то да, а вот конкретно, например, по get и findНу, по скриптам там вроде не сильно-то и скудно
Код: Выделить всё
get get <id> <param>=<value> get selected items parameter value
find find <expression> Returns list of internal numbers for items that are matched by given expression.
А вот как конкретно работать с этими "selected items parameter value" и "list of internal numbers" можно узнать путём догадок, изучая различные примеры из других разделов wiki и форумов (слава Господу, что есть mikrotik.by).
В даном случае у меня не получилось правильно оформить конструкцию get <id> <param>, чтобы получать названия интерфейсов из выборки и правильно подставлять эти названия в конструкцию /interface disable <name interface>.
Буду курить форумы дальше. Не понимая как работатет этот механизм в скрипто-писании делать нечего.
Еще раз огромное спасибо, @Chupaka
-
- Сообщения: 8
- Зарегистрирован: 18 фев 2019, 15:36
Re: Как отключить порты на бридже
Вот так вот чудненько получилось
Может кому пригодится
InitVars
BridgesDisactive
BridgesActive
Может кому пригодится
InitVars
Код: Выделить всё
:global BrVPN {"brONE"; "brTWO"};
BridgesDisactive
Код: Выделить всё
:global BrVPN;
:foreach bi in=$BrVPN do={
:foreach i in=[ /interface bridge port find bridge="$bi" ] do={
/interface disable [ /interface bridge port get $i interface ]
}
}
BridgesActive
Код: Выделить всё
:global BrVPN;
:foreach bi in=$BrVPN do={
:foreach i in=[ /interface bridge port find bridge="$bi" ] do={
/interface enable [ /interface bridge port get $i interface ]
}
}