Stateful multi-homed or user selectable outgoing Nat

Hello,

In my brand new job, we have multiple “public” adsl connections and a few pro links, for the simple reason we create services tightly linked to ISPs.

For the moment, each “box” as we call them here, are configured as plain nat routers, each have a dhcp server, and are all connected to the same LAN (imagine the mess, miracles make it stand, but well), using NetSetMan, users change on the fly the outgoing “box” they want to go through (that tool obviously break existing connections, a pain for ssh users). That’s for the actual mess everyone got used to.

My goal is:
Eventually using a separate webserver to keep everyones choices recorded (and to serve a self-taylored interface), server which will changes masquerading rules on an mkt router depending on each persons choices through the API, and mainly on “new” connections to avoid breaking existing connections.
Users will be able to configure a list of IPs (their workstations, smartphones > source-address-list? ), one or more lists of destination IP (dst list) /regex hostnames (tricky, we’re also tied to ISP supplied DNS services who aren’t 100% neutral), for each of the destination lists, the outgoing connection to use, plus a default outgoing path for none listed destinations (can be specific, or loadbalanced)… Again, without breaking already established connections if a rule changes.
I know i’ll have to take care to avoid double entries, or per-user list overlaps, though, it’s in-house use, every one is at reach and buggers will get a slap in the head :wink:

Hoping I explained myself well enough, I’d expect an “Everything is possible”

But are there any tricks, subtle things to keep in mind that anybody could help me with before getting an RB110AH ? :wink:

Thanks in advance