Ok this post is a report on my attempts to make load balancing work on Zentyal 2.2.7.
In short, it is not as straight forward as it looks, and I'll explain why.
Let's start with the first scenario, one static interface with public IP address, the other interface dynamic PPPoE using included pppd with a bridged adsl2+ modem.
Either the pppd implementation is in early alpha stage or incredibly buggy, well - when you have ONE interface it works but if you try to balance between
one static and another pppoe it's a no-go.
I found that every change to the static gateway also disconnected the PPPoE interface.
Likewise, adding, changing or removing rules also disconnects both interfaces.
The problem lies in the method how the PPPoE connection is ended. A non-clean termination causes a "hung" session at the providers side, and to detect this can take a long time.
While testing, my PPPoE interface would come up only after 30 minutes or sometimes one hour.
That in turn results in Zentyal reporting firewall errors, because when saving changes, the PPPoE gateway is down.
So while PPPoE authentication worked before with only one interface, when doing load balancing I was forced to use my adsl2+ modem as a PPPoE client, and make it as transparent as possible. I'm not exited about double routing and getting all sorts of port issues.
The penalty of this method is latency, the poor adsl2+ modem has a lot more to cope with now.
Now having two static interfaces, the load balancing worked better. But then, another issue came up.
Load balancing breaks video conferencing, online games and my security camaras would go black after a while.
Obviously this has to do with traffic going out on the second interface while the remote client is still connected to the first from which the connection was initiated.
So this can be solved eventually, but it requires setting traffic rules for each and every application and service.
This is just not feasible because it takes a lot of work.
What does work? Interface metrics are OK. the weight of each interface can be adjusted and it gives the expected results.
Rules on itself are also working. I could set rules for different traffic types like sending DNS out one one interface etc. all OK.
But what I wanted to achieve, the load balancing using two interfaces simultaneously, is not possible.
At this point, to make use of my second interface with the adsl2+ modem connected, I have the load balancing option disabled and set some rules
for specific traffic type to go out on that interface.
Bandwidth is only 512Kb (yes, in Colombia that's still considered high speed Internet) so my options are a bit limited.
Anyway, if others can share their views and/or experiences it would be nice.
Cheers.