MultiWAN Link Aggregation
I don't know if I should post this here or under Development. But nonetheless, I'm very interested in multiwan link aggregation. I did some very heavy searching and found the attached. Michael Brumm is the author of this. I take no credit. Granted, the material is outdated. Is Based on FreeBSD 4.x. He doesn't specify exactly which version of FreeBSD 4 he accomplished this with. But being that it is FreeBSD, it shouldn't be too much of a problem to implement this onto pfsense, if it does work. Instructions and files are attached. And as the author said, "Step right up ladies and gentlemen. The show is about to start."
Change the ext. from txt to rar to unzip.
[FreeBSD MultiWAN Link Aggregation.txt](/public/imported_attachments/1/FreeBSD MultiWAN Link Aggregation.txt)
By "multiwan link aggregation" I was hoping it would have some magic solution to being able to have a single client-server state/flow/connection downloading that achieves download speed equal to the sum of the bandwidths of the links (like MLPPP). But this seems to be a "how to" on load balancing, where clients connections are round-robin allocated to the various links (with weights…) to achieve "random" load balancing across a medium to large number of clients.
As far as I can see at a quick scan, pfSense already does this with gateways and gateway group settings and using firewall rules to feed into gateway groups.
I'm no FreeBSD expert, but I am very technically inclined. According to his description that's exactly what he said its done with his configuration, which is the equal sum of the bandwidths of the links. Please correct me if I'm wrong, but FreeBSD 4 was already able to load-balancing. It would be helpful to really look at this in detail to really break it down to see if there really is any difference between load-balancing and his multiwan aggregation.
Yes, I believe you (and he) are correct - all this load-balancing stuff has been in FreeBSD since at least V4 and it is in pfSense.
If you have a single client and multiple WANs and are using a download-manager that makes a whole lot of connections to download pieces of a file "in parallel", then the connections get (round-robin or "randomly") distributed across the WANs in the load-balancing group. Usually the client manages to saturate all the WANs with a single download. That is all easy.
But if you have a client getting a single-stream feed (e.g. watching some live video feed of an event) then that single connection is state that flows over only 1 WAN and so you get only the max throughput of the 1 WAN that the state is using.
If this report has some more magic that is possible, then someone feel free to point it out and I will quickly work on implementing it in pfSense! But I can't see it here, and can't see how it even could be done in principle without some other co-operating device in the internet somewhere (like an MLPPP or "multi-link OpenVPN" provider) that effectively does the multiplexing/demultiplexing of the parallel streams across the clients multiple WANs.
For example, multiple people could watch the same Youtube video at the same time. The way I'm understanding his setup is that it does just that. That it requests the same Youtube video through each WAN and gets put together somehow by the NAT and the reordered ipf and ipw that he created. Isn't that what FatPipe claims to do with their Warp product that uses their "Router Clustering" technology?
I think what's needed is for this to be dissected and inspected thoroughly by a group or individual that's very knowledgeable in this field. Cause if this is at all true, it would be a great addition to PfSense.
After looking at the attached document, I believe that his implementation is similar to ML-PPP but without the ISP having to do anything. How he accomplishes that is way beyond my technical understanding. It sounds like magic though, and I am always wary of things that seem to good to be true.