As I posted earlier in this thread the normal way to setup load balancing and/or failover on multiple ethernet interfaces on the same subnet is to use the bonding driver. You will end up with one IP address for the bond interface and it will accept traffic from any of the bonded interfaces. Traffic out depends on how you set up bonding but it can be load balanced and/or failover.
A product that I developed code for commercially I used just that setup with CentOS (open source Linux equivalent to RedHat). We allowed the operator to group as many interfaces as they desired into one logical (bonded) interface for the purposes of reliability and greater throughput. It works well.
I haven’t done bonding with ZS but I do see a bond interface option under the network setup. You might want to give that a try.
Edit: Some of the bonding options require both ends of the connection be configured appropriately. You may need a commercial grade switch to properly support all bonding modes. But simple failover and at least one load balance mode are, if I recall correctly, compatible with consumer grade Ethernet switches.
Bonding will *not* work for what I am trying to do. I am talking about dealing with residential (cable) connections that go through a cable modem that could end up on the same subnet and use the same gateway. There is no way bonding will work in that situation as packets to/from say 18.104.22.168 always have to go out ETH00 and packets to/from 22.214.171.124 would always have to go out ETH01 for it to work (using my above examples).
This would work if both interfaces could use each others IP (it didn’t matter which IP was assigned to which interface) but this would not be the case with broadband via a two cable modems. This is the same reason that bridging won’t work either (as far as I can tell).
I don’t see any reason the netbalancers current implementation wouldn’t work if along with the gateway IP it also specified the interface instead of one or the other.