Graceful way to split Dual Access traffic?
Posted: Mon Nov 04, 2013 4:14 pm
Hi!
I'm running an Asus RT-N16 with custom firmware as a kind of L2TP modem (takes LOTS of CPU power to sustain a 40 Mbps L2TP tunnel at top load), one of its LAN ports bridged with the WAN port of my home gateway, TP-LINK 1043ND running Gargoyle 1.5.11.
My ISP down / up speeds have been perfectly stable since ages, i.e. I don't need active congestion control. I'm getting some 40-42 Mbs via L2TP and another 60 Mpbs (100 Mbps MAN link minus the 40 Mbps max L2TP capacity) between me and my ISP's middle area network.
What I want is to isolate MAN traffic as a separate traffic class: anything that goes to or from 10.0.0.0/8 should be limited to 60% (60 Mbps) of total link capacity at a minimum bandwidth of 60 Mpbs and maximum bandwidth of 60 Mbps.
Anything that doesn't classify as coming to or from 10.0.0.0/8 should be classified by one of the further rules in the chain, all of which add up to some 40% of remaining max bandwidth.
The question is: how exactly does Gargoyle judge if the link is saturated?
Imagine a situation where there is absolutely no MAN traffic, yet a minimum of 60 Mbps is reserved for it. Meanwhile, the L2TP tunnel on my RT-N16 is overloaded, and there are some outbound packets on Gargoyle's side waiting to be sent because the RT-N16 just can't squeeze them all through.
Will Gargoyle consider the 60 Mbps _minimum_ reserved for MAN traffic (though not actually used) as effectively contributing to link saturation and think like "Hey, we've already got a minimum of 60 Mbps reserved for Class A and the rest of classes are currently producing a total 40 Mpbs of actual traffic, so the link is saturated and i must start balancing the traffic between those classes without a strict minimum and / or maximum limit, yet assigned with a total percentage limit!"
Or rather the unused (yet reserved as a _minimum_) 60 Mpbs of MAN bandwidth will delude Gargoyle into thinking that the link is not saturated, so it won't take any action towards shaping the L2TP traffic, thinking that the link is only 40% (40 Mbps) saturated?
I could simply exempt the local MAN traffic with an iptables script, but that is likely to jeopardize my WAN speeds -- a massive data transfer coming over MAN (and ignored by QoS) would easily choke the MAN link itself through which the L2TP tunnel runs, thus squeezing the L2TP connection itself.
I'm also not enthusiastic about limiting my overall link to 40 Mbps just to comply with L2TP speeds.
Any help appreciated and sorry for the occasionally bad English.
I'm running an Asus RT-N16 with custom firmware as a kind of L2TP modem (takes LOTS of CPU power to sustain a 40 Mbps L2TP tunnel at top load), one of its LAN ports bridged with the WAN port of my home gateway, TP-LINK 1043ND running Gargoyle 1.5.11.
My ISP down / up speeds have been perfectly stable since ages, i.e. I don't need active congestion control. I'm getting some 40-42 Mbs via L2TP and another 60 Mpbs (100 Mbps MAN link minus the 40 Mbps max L2TP capacity) between me and my ISP's middle area network.
What I want is to isolate MAN traffic as a separate traffic class: anything that goes to or from 10.0.0.0/8 should be limited to 60% (60 Mbps) of total link capacity at a minimum bandwidth of 60 Mpbs and maximum bandwidth of 60 Mbps.
Anything that doesn't classify as coming to or from 10.0.0.0/8 should be classified by one of the further rules in the chain, all of which add up to some 40% of remaining max bandwidth.
The question is: how exactly does Gargoyle judge if the link is saturated?
Imagine a situation where there is absolutely no MAN traffic, yet a minimum of 60 Mbps is reserved for it. Meanwhile, the L2TP tunnel on my RT-N16 is overloaded, and there are some outbound packets on Gargoyle's side waiting to be sent because the RT-N16 just can't squeeze them all through.
Will Gargoyle consider the 60 Mbps _minimum_ reserved for MAN traffic (though not actually used) as effectively contributing to link saturation and think like "Hey, we've already got a minimum of 60 Mbps reserved for Class A and the rest of classes are currently producing a total 40 Mpbs of actual traffic, so the link is saturated and i must start balancing the traffic between those classes without a strict minimum and / or maximum limit, yet assigned with a total percentage limit!"
Or rather the unused (yet reserved as a _minimum_) 60 Mpbs of MAN bandwidth will delude Gargoyle into thinking that the link is not saturated, so it won't take any action towards shaping the L2TP traffic, thinking that the link is only 40% (40 Mbps) saturated?
I could simply exempt the local MAN traffic with an iptables script, but that is likely to jeopardize my WAN speeds -- a massive data transfer coming over MAN (and ignored by QoS) would easily choke the MAN link itself through which the L2TP tunnel runs, thus squeezing the L2TP connection itself.
I'm also not enthusiastic about limiting my overall link to 40 Mbps just to comply with L2TP speeds.
Any help appreciated and sorry for the occasionally bad English.