Forum Discussion
Here's one way I think you could make it work. Put both site's IPs on both clusters. So you'd have a self IP from each site, and then on each of the virtuals put a layered virtual in front of the "real". That way each virtual will respond to either site's IP addresses. On the Pool side, just add in each sites backend addresses. On the "passthru" virtual do some name based mapping using an iRule. I do this for IPv4 -> IPv6. One pro and con on this approach is that naming conventions become very important, if you want to make things as generic as possible. I enforce this by using an iApp to maintain consistency, which I would highly recommend.
I put in a feature request to allow for multiple VIPs on any given virtual, which I'm hoping gets into 11.6 at some point (no ETA on that yet) which would help in your use case as well, I think.
Here's the iRule in question for the above scenario:
when CLIENT_ACCEPTED {
set name [string range [virtual name] [ expr { [string last "/" [virtual name] [ string length [virtual name] ]] + 1} ] [expr {[string first "-ipv4" [virtual name]] - 1}]]
set type [string range [virtual name] [expr {[string first "-ipv4" [virtual name]] + 6}] [ expr {[string first "-passthru" [virtual name]] -1} ]]
virtual $name-ipv6-$type-virtual
}