Quantcast
Channel: MikroTik
Viewing all articles
Browse latest Browse all 23620

General • Removing routes too fast -- command hangs... ROS7 -- just report

$
0
0
Despite the topic with almost the same subject exists, problem, described there, I belive, really not related to this, but to dhcp client scripts behavior.

Problem: while removing routes in script one after one, in series, second command just hangs, route not deleted. Command (script) can be stopped by Ctrl-C. Routes in routing table doubled -- records, printed by
Code:
/ip/route/print
. Half of them cannot be removed until reboot of killing
Code:
routing tables/rib
process in
Code:
/routing/stats/process/
Before any details, I must say, that described problem already solved in 7.17rc3.
Since 7.17rc3 still relase candidate, testing, I beleieve, this report must be here.

Versions tested:
ROS6 - no problem
7.15.2 - no problem
7.15.3 - no problem
7.16 - problem present
7.16.2 - problem present
7.17rc3 -- no problem

Hardware: I believe, hardware independed. Tested on mipsbe and x86-64/CHR.

Symptoms and workarounds:
Script (part of code for Failower (WAN Backup) https://help.mikrotik.com/docs/spaces/R ... WAN+Backup
Code:
:local srv1 8.8.4.4; :local srv2 208.67.220.220; :local srv3 1.0.0.1; :local gw 192.168.10.1 :local delay 10ms:local if wan1:local addr 192.168.10.101/24:put "Removing gateway=$srv3":onerror err in={/ip/route/remove [/ip/route/find gateway=$srv3 dst-address=0.0.0.0/0] } \    do={:put "Error $err while removing gateway=$srv3" }:delay $delay:put "Removing gateway=$srv2":onerror err in={/ip/route/remove [/ip/route/find gateway=$srv2 dst-address=0.0.0.0/0] } \    do={:put "Error $err while removing gateway=$srv2" }:delay $delay:put "Removing gateway=$srv1":onerror err in={/ip/route/remove [/ip/route/find gateway=$srv1 dst-address=0.0.0.0/0] } \    do={:put "Error $err while removing gateway=$srv1" }:delay $delay:put "Removing dst-address=$srv3":onerror err in={/ip/route/remove [/ip/route/find dst-address=($srv3 . "/32")] } \    do={:put "Error $err while removing dst-address=$srv3" }:delay $delay:put "Removing dst-address=$srv2":onerror err in={/ip/route/remove [/ip/route/find dst-address=($srv2 . "/32")] } \    do={:put "Error $err while removing dst-address=$srv2" }:delay $delay:put "Removing dst-address=$srv1":onerror err in={/ip/route/remove [/ip/route/find dst-address=($srv1 . "/32")] } \    do={:put "Error $err while removing dst-address=$srv1" }:delay $delay:put "Removing addresses form $if":onerror err in={/ip/address/remove [find interface=$if]} \    do={:put "Error $err while removing addresses form $if" }
If delays absent, or zero (minimum approved value is 10ms) -- commands hangs.
Code:
[admin@MikroTik] /system/script> run w1up; run w1do ; run w1up; run w1do ;                                Removing gateway=1.0.0.1Removing gateway=208.67.220.220[admin@MikroTik] /ip/route> printFlags: D - DYNAMIC; I - INACTIVE, A - ACTIVE; c - CONNECT, s - STATIC, d - DHCP; H - HW-OFFLOADED; + - ECMPColumns: DST-ADDRESS, GATEWAY, DISTANCE#       DST-ADDRESS        GATEWAY         DISTANCE  DAd   0.0.0.0/0          192.168.45.1           10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         12  As + 1.0.0.1/32         192.168.10.1           12  As + 1.0.0.1/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           1  DAc   192.168.10.0/24    ether3                 0  DAc   192.168.45.0/24    ether1                 0  DAc   192.168.56.0/24    ether2                 04  As + 208.67.220.220/32  192.168.10.1           14  As + 208.67.220.220/32  192.168.10.1           1[admin@MikroTik] /ip/route> remove 4[admin@MikroTik] /ip/route> printFlags: D - DYNAMIC; I - INACTIVE, A - ACTIVE; c - CONNECT, s - STATIC, d - DHCP; H - HW-OFFLOADED; + - ECMPColumns: DST-ADDRESS, GATEWAY, DISTANCE#       DST-ADDRESS        GATEWAY         DISTANCE  DAd   0.0.0.0/0          192.168.45.1           10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         12  As + 1.0.0.1/32         192.168.10.1           12  As + 1.0.0.1/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           1  DAc   192.168.10.0/24    ether3                 0  DAc   192.168.45.0/24    ether1                 0  DAc   192.168.56.0/24    ether2                 04  As   208.67.220.220/32  192.168.10.1           1[admin@MikroTik] /ip/route> remove 4no such item (4)[admin@MikroTik] /ip/route> printFlags: D - DYNAMIC; I - INACTIVE, A - ACTIVE; c - CONNECT, s - STATIC, d - DHCP; H - HW-OFFLOADED; + - ECMPColumns: DST-ADDRESS, GATEWAY, DISTANCE#       DST-ADDRESS        GATEWAY         DISTANCE  DAd   0.0.0.0/0          192.168.45.1           10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         10  IsH  0.0.0.0/0          8.8.4.4                11  IsH  0.0.0.0/0          208.67.220.220         12  As + 1.0.0.1/32         192.168.10.1           12  As + 1.0.0.1/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           13  As + 8.8.4.4/32         192.168.10.1           1  DAc   192.168.10.0/24    ether3                 0  DAc   192.168.45.0/24    ether1                 0  DAc   192.168.56.0/24    ether2                 04  As   208.67.220.220/32  192.168.10.1           1
As I say, problem absent in 7.17rc3.

Let it be here for those, who still on stable branch.

Statistics: Posted by tarasfilatov — Fri Jan 03, 2025 4:44 pm



Viewing all articles
Browse latest Browse all 23620