Since this comes up every so often on the mailing list, and doesn’t yet seem to have a good solution, let’s put it here and continue to annoy people.
What I’d like to do is use Mikrotik RouterOS as a replacement for, say, a ETInc bandwidth shaper appliance.
All the customers to be managed are on one interface (ether1), and substantially all of them have the same bandwidth requirements (768kbps up and down).
Right now, that interface has about 600 unique IPs, and this will be growing (hopefully, to more than 1000).
PCQ should be able to do it, but nobody I know seems to have the “knack” for getting it right. (Last time I tried, the router did a kernel panic after about two minutes.)
Has anyone gotten this to work? Any estimates on how much CPU and RAM are needed for this sort of large-scale shaping?
Could you write down all the screen contents of the kernel panic (at least the couple lines starting with “Call Trace:”), restart the router, make Support output file (look in the link below how to create it) and send it to support@mikrotik.com?
I’ve had good luck with a large number of clients (100+) on a Pentium III 600Mhz using /ip firewall mangle to mark packets by IP, and then using /queue tree to set the bandwidth. I do this in transparent bridging mode, so I don’t need to bind IPs to an interface for each client.
If I could only graph the queue tree traffic with MRTG, I’d be really happy
We have MRTG graphs for queues. As PCQs are somethink like dynamic, then we will have to check on this. Maybe in v2.9. This should go into the ‘suggestions’ part of the forum…
I have a mt router functioning as firewall, bridge, and bandwidth manager. I use PCQ on per ip basis. Here’s the spec of the router.
Athlon xp 2500+ (1.8Ghz) - $75
Asus matx mobo - $65
Case - $36
Lan cards x 2 = $30
Ram 512MB = $90
40GB = $50
approx cost of our firewall is $350 and managing against 853 clients.
It is one ass-kicking firewall I’ve ever owned. :lol:
Here’s a sample MRTG config I’ve used successfully to graph a queue tree
(in and out) with MRTG. Note that the values for the Target below
come from “/queue tree print oid”, and these OIDs will change when you
add/delete qtrees. You have been forwarned!
You need to substitute your correct values for SNMP_COMMUNITY_STRING,
YOUR_EMAIL, CLIENTNAME, and MIKROTIK_IP_ADDR of course.
Also, this forum may insert linebreaks where they shouldn’t go. FYI.
Options[bwcontrol_CLIENTNAME]: growright, bits
Target[bwcontrol_CLIENTNAME]: \
.1.3.6.1.4.1.14988.1.1.2.2.1.5.16777316&\
.1.3.6.1.4.1.14988.1.1.2.2.1.5.16777315:\
SNMP_COMMUNITY_STRING@MIKROTIK_IP_ADDR:
SetEnv[bwcontrol_CLIENTNAME]: MRTG_INT_IP="" MRTG_INT_DESCR="CLIENTNAME"
Title[bwcontrol_CLIENTNAME]: Bandwidth Analysis for CLIENTNAME
PageTop[bwcontrol_utilalodge_bicd]: <H1>Bandwidth Analysis for CLIENTNAME</H1>
<TABLE><TR><TD>System:</TD>
<TD>MikroTik for CLIENTNAME</TD></TR>
<TR><TD>Maintainer:</TD>
<TD>YOUR_EMAIL</TD></TR>
</TABLE>