I have a RB1000 that is nearly peaking out at 100% CPU due to heavy load. It is doing Routing, IP Accounting, NAT(For our management stuff to get online and overflow for our public pools) and Queues (For clients who break AUP)
I am pushing about 100mbit over it to serve a few thousand subscribers. Our upstream is about to move us to a GB port.
I have already moved hotspot controller, usermanager, and each users service level queues to other systems. We also stopped L7 shaping P2P and no longer use mangle. I want to add BGP and OSPF soon.
I think I may need to ditch Connection tracking to save the CPU soon. I went online to look for a list of things that rely on Connection Tracking. I found there is no such list.
I already know NAT needs it. I can move that to another router.
you can still use the firewall filter, you just can’t use matchers that rely on connection tracking. Simple rules that match src/dst ip, ports, etc all will still work.
I tested it and simple queues worked fine for us. But your mileage may vary.
We also found out turning off conntrack on our RB1000 made only a small difference. We ended up installing a Mikronoc 2200 dual core router and that solved all our issues.
I am starting to get the feeling that the only way to know what breaks and what doesn’t would for MT to dig through all the source code and trace it out or something.
But as I found, Conntrack only added ~5-15% to the cpu in our environment. I know for me this is now a much less important question.