Страница 1 из 1
Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 16:16
rstaganrog
При попытке выполнить
Код: Выделить всё
foreach i in [/ip route find] do={[/ip route remove $i]}
появляется сообщение о том, что динамические маршруты не могут быть удалены. При этом не удаляются и статические.
Как можно задать удаление всех статических маршрутов? Видимо нужно уточнить конструкцию find:
Код: Выделить всё
foreach i in [/ip route find where <dynamic>] do={[/ip route remove $i]}
Как это можно сделать?
Re: Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 16:38
simpl3x
или
Tab используйте, он вам покажет все варианты возможные.
Re: Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 17:55
rstaganrog
simpl3x писал(а):или
Tab используйте, он вам покажет все варианты возможные.
Спасибо. Про tab - очень полезно.
Но почему-то странно выходит:
Код: Выделить всё
[admin@MikroTik] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S ;;; 12
0.0.0.0/0 YTK 1
1 A S ;;; 123
0.0.0.0/0 INFOTECS 1
2 A S 0.0.0.0/0 INFOTECS 1
YTK
3 ADC 80.68.8.17/32 80.68.12.118 INFOTECS 0
4 ADC 83.221.214.195/32 93.178.107.152 YTK 0
5 ADC 192.168.1.0/24 192.168.1.1 bridge-local 0
[admin@MikroTik] > /ip route find where dynamic=yes
[admin@MikroTik] > /ip route find where dynamic=no
[admin@MikroTik] >
Ни с dynamic=yes, ни с dynamic=no вообще ничего не показывает...
Re: Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 19:00
simpl3x
а он должен вам что то показать? вы ему сказали find он и нашёл.
Код: Выделить всё
foreach i in [/ip route find] do={[/ip route remove $i]}
отсюда /ip route find тоже ничего вам не покажет, но при этом делает попытку удалить.
Re: Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 19:25
rstaganrog
simpl3x писал(а):а он должен вам что то показать? вы ему сказали find он и нашёл.
а как увидеть результат find?
--
Не могу понять, что происходит.
Цикл
Код: Выделить всё
foreach i in [/ip route find where comment="12" ] do={[/ip route remove $i]}
удалил строку с комментом 12.
Но
Код: Выделить всё
foreach i in [/ip route find where dynamic=no] do={[/ip route remove $i]}
не удалил ничего.
В чём тут дело?
Re: Как в скрипте удалить все маршруты?
Добавлено: 07 июн 2013, 20:22
simpl3x
а ip route find where static=yes ?
Re: Как в скрипте удалить все маршруты?
Добавлено: 11 июн 2013, 12:53
rstaganrog
simpl3x писал(а):а ip route find where static=yes ?
Спасибо, то что доктор прописал.
Re: Как в скрипте удалить все маршруты?
Добавлено: 11 июн 2013, 13:23
simpl3x
суть видимо была в том, что помимо Static и Dynamic есть еще Connected (это те, которые создаются когда прописывается адрес на интерфейсе), так вот когда dynamic=no означает что он попытается удалить и те которые connected, что впринципе не возможно, а вот static=yes будет перекрывать только статические роуты.