[Cake] de-natting & host fairness

Kevin Darbyshire-Bryant kevin at darbyshire-bryant.me.uk
Sun Sep 25 23:20:38 EDT 2016


A while back I started on a quest to make cake 'nat' aware as the lack 
of host fairness in a typical home router environment was the only thing 
that prevented cake from being the ultimate qdisc in my opinion.  This 
involves dealing with conntrack which on egress is easy (the kernel 
fills in a data structure for us), ingress is less clear.  I hacked 
something together but wasn't really happy with it.

Another github user 'tegularius' presented some beautifully crafted code 
that did the lookups in a much neater way.  Originally it too had an 
'ingress' lookup problem.  This was worked on and I hacked some 
conditional 'denat' options into cake & tc.

For your 'delight' a denat cake 
https://github.com/kdarbyshirebryant/sch_cake/tree/natoptions along with 
a matching tc https://github.com/kdarbyshirebryant/tc-adv/tree/denat

Typically I use 'dual-srchost srcnat' options on the egress interface, 
with 'dual-dsthost dstnat' in the ingress ifb interface.  In *brief* 
testing, bandwidth is shared fairly between hosts, and fairly by flow 
within each host.  And it's not crashed yet.


More information about the Cake mailing list