Simple queues work fine for limiting a handful of clients, but they don't scale well and can't express rules like "split whatever bandwidth is left fairly among everyone currently downloading." Queue tree, combined with mangle to mark traffic, gives you that kind of shared, prioritized bandwidth control — the setup ISPs actually run on shared uplinks.
Mark the traffic you want to shape
Queue tree can only match on packet/connection marks, not directly on IP addresses, so mangle has to run first:
/ip firewall mangle add chain=prerouting src-address=192.168.88.0/24 action=mark-connection new-connection-mark=lan-conn
/ip firewall mangle add chain=prerouting connection-mark=lan-conn action=mark-packet new-packet-mark=lan-traffic passthrough=noCreate a parent queue for the total link
/queue tree add name=upload-total parent=ether1 max-limit=50MThis caps the whole uplink so it never saturates past what your connection can actually handle.
Add a PCQ queue type for fair sharing
PCQ (Per Connection Queue) automatically splits available bandwidth evenly per source address, without a fixed limit per client:
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address pcq-rate=0Attach a child queue using that PCQ type
/queue tree add name=upload-clients parent=upload-total packet-mark=lan-traffic queue=pcq-upload max-limit=50MRepeat the same pattern for download, marking on dst-address instead and attaching to a download parent queue.
Watch it under real load
With two or more clients pulling data at once, /queue tree print stats or the Torch tool should show bandwidth split close to evenly between them, adjusting automatically as clients join or leave — that's the behavior a fixed simple queue per client can't give you.
Why do it this way
A separate simple queue per client requires deciding a fixed limit for each one ahead of time, which either wastes bandwidth when few clients are active or starves everyone once more join. PCQ inside a queue tree instead shares whatever bandwidth is actually available at that moment, recalculating the fair share as the number of active clients changes — closer to how ISPs actually want to sell "up to X Mbps" rather than a hard per-client cap.
How MoniTik helps
Queue tree and PCQ manage the bandwidth; they don't tell you when the parent limit itself is too low for what your network actually needs. MoniTik's bandwidth graphs show you the real usage pattern over time, so you know whether that 50M parent limit is comfortably under capacity or constantly getting maxed out before you have to raise it.