http://prototype-kernel.readthedocs.io/en/latest/networking/...
I’m actually working on porting XDP into the Xen net front end driver to see if I can’t get something like this working in AWS. If I do it, I’ll likely post an example about it here:
https://github.com/newtools/ebpf
As an aside cloudflare is using that repo for an XDP load balancer as well.
https://github.com/facebookincubator And... https://github.com/facebook
Not constraining the output of the load balancer to a single vLAN really helps for larger networks.
Reading the readme I see they've made every effort to process the packets as little as possible to it seems likely that this will run at line speed.
For L4 the main competitor is LVS which scales pretty well in my experience but probably not as well as this.
What is RSS in this context, ? My guess is that it's not this RSS https://en.wikipedia.org/wiki/RSS because I do not see how/why you should need any rule at L4 to maintain compatibility with an XML based protocol.
Is it possible they talk about : https://en.wikipedia.org/wiki/Network_interface_controller#R... ?
There's more info at https://code.facebook.com/posts/1906146702752923/open-sourci...
FYI, Facebook runs Katran in production: https://code.facebook.com/posts/1906146702752923/open-sourci...
This is an interesting question the answer to which is definitely not certain :)
The problem this solves is is when you are using haproxy but need redundancy or a single server is no longer capable of handling the load and you need to scale out to 2+ servers.
You could run 4 haproxy servers and use round robin DNS to load balance between them, but as they say, this has the problem of:
> compared to DNS it doesn't need to wait for TTL to redirect traffic from failed L7 lb.
Many people likely use anycast/ECMP for this case, but that has the other issue they mention:
> compared to anycast-based solution, L4 lbs are more resilient to the networking related issues (which triggers mass ECMP reshuffle)/ enable better handling of adding/removing of L7 lbs from the pool as well as provide better support for unequal load balancing.
There are also various other benefits, but network layer balancers do have their own share of downsides as well. Like you need to have pretty big control over your infra in order to use them (generally speaking it's not feasible to use them in public clouds), configuration is more complex, they won't do TLS for you etc.
[0] https://www.haproxy.com/blog/layer-4-load-balancing-nat-mode...