In another thread ppalias said he used a set of NetBalance rules to basically divide the IP address range into two halves when considering HTTP/S connections. One half he always routes through one interface, the other half through the other.
As long as the rules for HTTP are the same as for HTTPS then the site would see the same IP from you for both protocols.
You have three interfaces which does not work into powers of two very well. But maybe dividing things like this might work:
IP range: 0.0.0.0/2 use interface 1
IP range: 220.127.116.11/2 use interface 2
IP range: 18.104.22.168/2 use interface 3
IP range: 192.0.0.0/4 use interface 1
IP range: 22.214.171.124/4 use interface 2
IP range: 126.96.36.199/4 use interface 3
IP range: 240.0.0.0/4 pick an interface
(I hope I have those subnet ranges close.)
Anyway that would roughly spread your HTTP/S traffic equally among the three interfaces based on the destination address. (5/16s of the traffic on two interfaces and 6/16s of the traffic on the third).
Assuming that the HTTPS and HTTP servers are in the same general part of the IP address range, what ever route is picked for your HTTPS session would be the same route for the HTTP session.
I hope that we can figure out how to make routing decisions for destinations “sticky” which would solve this problem for everyone without resorting to this type of hack.
Well, that would work but doesn’t it nullify the point of having a load balancer 😕 Except in that case that connections are spread evenly on 0.0.0.0-255.255.255.255 range.
I thought about adding a third NIC in the ZS box, which would have been statically routed to use a specific connection. But then I’d have to fiddle with gateway settings every time that I want to use this “sticky” connection. And then ALL traffic would have been routed through this connection. As far as I know, I can’t bind any web browser to use certain network interface…
But the manual gateway switching has some applications. If I could specify the target gateway from LAN, for example I could start 3 parallel downloads from certain services that don’t allow parallel downloads.