what about shaping?
Posted: Tue Mar 10, 2015 12:47 pm
I'm curious how people are handling shaping. I'll start.
I'm doing shaping a couple ways.
1) traditional routeros simple queues with burst limits for service plans.
This is simple, and it works, and I can tie it into RADIUS so queues are dynamically created when a specific device (by MAC) pulls an address (I'm not doing this right now though). I do this on a 3Ghz Core2duo x86 box w/ 2GB RAM.
what I don't like is that it's dependent on routeros, which is either on lower performing hardware or on x86, and on x86 it's got limitations on RAM and isn't well threaded.
2) I additionally use a queue tree for specific routes. I route some traffic out a secondary connection at the headend, and other out a 'backup' connection on another leg of the network. These connections get a queue type SFQ for the interface maximums, then a PCQ under that limiting individuals to a given amount. These connections act as failover links also, but day-to-day they get routes for windows update ip addresses and various other things that are handy to offload off the premium uplink and backhaul links.
3) I queue interfaces for PTP links because the hardware/airmax queues don't do a good job of queuing based on link capacity and latency goes to heck when you saturate a link. I figure out my worst case aggregate capacity as well as the tx and rx and create a queue that has the peak tx, the peak rx, and then use the 'total' queue and limit at the aggregate max. That way I don't exceed the aggregate capacity peak where latency spikes. With this implemented, latency does rise a bit when a link is saturated, but because the packets are being queued and the increase is somewhat predictable and tolerable. If I let them just be, latency could spike by a hundred ms! vs 10ms w/ the queue.
I've considered shaping on the radios, but shaping ingress isn't ideal for one (I don't want to deliver dropped packets all the way across the network), the radio's CPU isn't so great, and the ability to track utilization over time with ubiquiti's tools isn't any good or even possible on newer devices. I've considered doing it anyway and just doing netflow on my mikrotik routers to track this info, but there isn't a good central management interface at this point and airCRM is....well, not coming along as nicely as I'd hope.
I'm doing shaping a couple ways.
1) traditional routeros simple queues with burst limits for service plans.
This is simple, and it works, and I can tie it into RADIUS so queues are dynamically created when a specific device (by MAC) pulls an address (I'm not doing this right now though). I do this on a 3Ghz Core2duo x86 box w/ 2GB RAM.
what I don't like is that it's dependent on routeros, which is either on lower performing hardware or on x86, and on x86 it's got limitations on RAM and isn't well threaded.
2) I additionally use a queue tree for specific routes. I route some traffic out a secondary connection at the headend, and other out a 'backup' connection on another leg of the network. These connections get a queue type SFQ for the interface maximums, then a PCQ under that limiting individuals to a given amount. These connections act as failover links also, but day-to-day they get routes for windows update ip addresses and various other things that are handy to offload off the premium uplink and backhaul links.
3) I queue interfaces for PTP links because the hardware/airmax queues don't do a good job of queuing based on link capacity and latency goes to heck when you saturate a link. I figure out my worst case aggregate capacity as well as the tx and rx and create a queue that has the peak tx, the peak rx, and then use the 'total' queue and limit at the aggregate max. That way I don't exceed the aggregate capacity peak where latency spikes. With this implemented, latency does rise a bit when a link is saturated, but because the packets are being queued and the increase is somewhat predictable and tolerable. If I let them just be, latency could spike by a hundred ms! vs 10ms w/ the queue.
I've considered shaping on the radios, but shaping ingress isn't ideal for one (I don't want to deliver dropped packets all the way across the network), the radio's CPU isn't so great, and the ability to track utilization over time with ubiquiti's tools isn't any good or even possible on newer devices. I've considered doing it anyway and just doing netflow on my mikrotik routers to track this info, but there isn't a good central management interface at this point and airCRM is....well, not coming along as nicely as I'd hope.