Помогите задизаблить айпишник на порту )

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
dtbank
Сообщения: 6
Зарегистрирован: 14 июл 2019, 18:55

Доброго времени суток. С микротиками знаком относительно поверхностно. Скриптов не писал.

Тут я что то не нашел ничего похожего.
Собственно что нужно.
Есть группа примаркированных к портам айпишников, и нужно их дизаблить(запрещать пинговать), если порт в состоянии down.

Если есть где посмотреть подобный пример ткните пожалуйста.


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

Если порт в состоянии даун пингуй его не пингуй толку нет ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
dtbank
Сообщения: 6
Зарегистрирован: 14 июл 2019, 18:55

Вот при таком раскладе, адреса 192.168.0.27-29 будут пинговаться при любом состоянии порта.

/ip address
add address=192.168.0.27/22 interface=ether1 network=192.168.0.0
add address=192.168.0.28/22 interface=ether1 network=192.168.0.0
add address=192.168.0.29/22 interface=ether1 network=192.168.0.0
add address=192.168.120.1/22 interface=ether3 network=192.168.120.0
add address=192.168.120.1/22 interface=ether4 network=192.168.120.0
add address=192.168.120.1/22 interface=ether5 network=192.168.120.0
/ip firewall mangle
add action=mark-connection chain=prerouting dst-address=192.168.0.27 new-connection-mark=port2
add action=mark-connection chain=prerouting dst-address=192.168.0.28 new-connection-mark=port3
add action=mark-connection chain=prerouting dst-address=192.168.0.29 new-connection-mark=port4
add action=mark-routing chain=prerouting connection-mark=port2 new-routing-mark=port2 passthrough=no
add action=mark-routing chain=prerouting connection-mark=port3 new-routing-mark=port3 passthrough=no
add action=mark-routing chain=prerouting connection-mark=port4 new-routing-mark=port4 passthrough=no
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=192.168.0.27 dst-port=11159 protocol=udp to-addresses=192.168.120.178
add action=dst-nat chain=dstnat dst-address=192.168.0.28 dst-port=11159 protocol=udp to-addresses=192.168.120.178
add action=dst-nat chain=dstnat dst-address=192.168.0.29 dst-port=11159 protocol=udp to-addresses=192.168.120.178
add action=masquerade chain=srcnat out-interface=ether3
add action=masquerade chain=srcnat out-interface=ether4
add action=masquerade chain=srcnat out-interface=ether5
/ip route
add distance=1 dst-address=192.168.120.0/24 gateway=ether3 routing-mark=port2
add distance=1 dst-address=192.168.120.0/24 gateway=ether4 routing-mark=port3
add distance=1 dst-address=192.168.120.0/24 gateway=ether5 routing-mark=port4


dtbank
Сообщения: 6
Зарегистрирован: 14 июл 2019, 18:55

что делаю не так. написал вот такой скрипт
должен дизаблить адрес "192.168.0.29 примаркированный к 5 порту если линка на порту нет.

/interface ethernet monitor ether5 once do={
:if ($status = "no-link") do={:/ip address disable [find address="192.168.0.29/22"]
}
}

если вбивать в терминал просто
/ip address disable [find address="192.168.0.29/22"] - срабатывает.

вот такая конструкция тоже отрабатывает

/interface ethernet monitor ether5 once do={
:if ($status = "no-link") do={:log info message="port is down";
}
}

а блин вот эта конструкция нифига не срабатывает

/interface ethernet monitor ether5 once do={
:if ($status = "no-link") do={:/ip address disable [find address="192.168.0.29/22"]
}
}

где ошибка?


Ответить