Nth a little biased

I am trying some load balance with src address lists:

 1   ;;; Enrutar
     chain=prerouting src-address-list=clientes dst-address-list=!internas action=jump jump-target=enrutar 
 2   chain=enrutar src-address-list=ruta2 action=return 
 3   chain=enrutar src-address-list=ruta3 action=return 
 4   chain=enrutar nth=1,3,0 action=add-src-to-address-list address-list=ruta2 address-list-timeout=1d 
 5   chain=enrutar src-address-list=ruta2 action=return 
 6   chain=enrutar nth=1,3,1 action=add-src-to-address-list address-list=ruta3 address-list-timeout=1d

When I test it seems to work, but if i leave it some time (minutes, hours, days) it starts doing nth balancing wrong:

Rule 4 and 5 have 522 packet count, while rule 6 has only 98.
If i browse address list i find that address list ruta2 has many more addresses than ruta3. I have tried resetting counters and rebooting mt, and always first rule has more packet count than second rule (but ratio varies).

Verified on 2.9.9 and 2.9.19, with hotspot active.

why with these weird versions?

It was the respective latest version of routeros when we updated them. I didn’t know those were weird versions.

We also have this on 2.9.24, same behaviour.

no, i mean you are 10 versions behind. you should consider upgrading

I found a trick.

I created 2 set of rules:

  • one of them just like the ones i posted before
  • the other does the same but in opposite order (first adds to listaB, second to listaA). When i follow these rules they bias in favour of listaB.

I made a timer so each 5 minutes i switch over one or other rules, so each 5 minutes bias direction changes. It works quite fine in the long term (about 100 addresses balanced with an average bias below 5%).