Привет, мне нужно с командной строки найти конкретное правило NAT, есть идеи, что я могу делать не так? [admin@MikroTik] > /ip firewall nat print [/ip firewall nat find dst-port="55882"] ожидается конец команды (строка 1, столбец 24) Спасибо
shafiqrahman
Guest
0
20.05.2021 14:50:00
Этот аргумент правильный? : if ([/ip firewall nat get [find where comment=pihole_bypass] disabled]=yes) do={ Похоже, это единственная тема, где обсуждают nat get find
anav
Guest
0
20.05.2021 14:55:00
Вот как должен выглядеть более корректно сформулированный вопрос или требование. Мы можем работать только с тем, что нам дают. Спасибо за разъяснение.
rextended
Guest
0
20.05.2021 16:00:00
какой же бардак… ) хочешь так: /ip fire nat :if ( [get [find where comment="pihole_bypass"] disabled] = yes) do={ :put "pihole_bypass отключён" } else={ :put "pihole_bypass включён" }
# *** или ***
/ip fire nat :if ( [:len [find where comment="pihole_bypass" and disabled=yes] ] > 0) do={ :put "все или хотя бы один pihole_bypass отключён" } else={ :put "все pihole_bypass включены или их нет" }
shafiqrahman
Guest
0
20.05.2021 16:58:00
Спасибо, @rextended, что опять навел порядок ) На самом деле эта строчка была частью резервного скрипта. Я всё ещё дорабатываю /ip fire nat :if ( [get [find where comment="pihole_bypass"] disabled] = yes) do={ :resolve google.com server=192.168.188.25; } on-error={ :put "pihole_bypass enabled" } else={ :resolve google.com server=192.168.188.25; :put "pihole_bypass disabled" } Извиняюсь, что захватил тему.
rextended
Guest
0
20.05.2021 21:53:00
ммм... Кажется, я понимаю, чего ты хочешь добиться? /ip fire nat :if ( [get [find where comment="pihole_bypass"] disabled] = yes) do={ :local noerror true :put "pihole_bypass отключён, проверяю, работает ли" :do { :resolve google.com server=192.168.188.25 } on-error={ :put "не разрешается, pihole всё ещё выключен" :set $noerror false } :if ($noerror) do={ :put "но сейчас работает, включаю pihole_bypass" set [find where comment="pihole_bypass"] disabled=no } } else={ :put "pihole_bypass включён, проверяю, работает ли" :do { :resolve google.com server=192.168.188.25 } on-error={ :put "теперь не работает, выключаю pihole_bypass" set [find where comment="pihole_bypass"] disabled=yes } }
shafiqrahman
Guest
0
21.05.2021 02:52:00
Отчасти да, но всё ещё не работает. Скрипт должен включать определённое правило NAT, когда pihole не работает, и отключать его, когда pihole снова в сети. Вот ссылка: По какой-то странной причине планировщик ничего не делает. Но сам скрипт был хорош, спасибо.