I have a relatively simple problem which I can't think of a solution to..
I have 3 pools with the following inter dependencies:
Pools 1 and 2 have four members each, two in the primary location and two in the DR.
Priority groups are the natural solution, but they must all fail together.
The apps are not HTTP and DNS (GTM) is impossible as clients must use IPs.
One approach would have been a 'compound' monitor of:
Which means a frontend pool member would fail if he himself failed his healthchecks or both the local backend failed (now everything moves to the 'dr').
Similarly a backend pool member would fail if he himself failed (or "Another" he's depended on) or both local frontends failed (now everything moves to the 'dr').
However there is no "AND OR" compound healthcheck.
Another approach would have been creating four additional "objects":
Then have the regular "AND" healthcheck of "Frontend & localBackend" for the frontends and "Backend & localFrontends" (& "Another) for the backends.
However how can you check pool availability in a healthcheck? creating a VS for each doesn't work.
Another approach I thought of is per node in a pool "at least 1" healthcheck of the required resources, however this runs-over the pool one (so we get to the first approach's problem - in this case all are OR, can't have the Pool one AND the per-node OR).
Please look for Alias Address and Alias Service Port monitor settings on GUI help or https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm-monitors-reference-12-0-0/2...
The snipped from GUI help "If the health check for the alias address is successful, the system marks all associated objects up. If the health check for the alias address is not successful, then the system marks all associated objects down."
I have, and tried it - the idea was to use alias of IP/port of a VS (Virtual Server):"frontend local"/"frontend remote" and "backend local"/"backend remote" - that was the second approach explained.
However it didn't work. if that should have worked I'll put some more effort in this.
I've further tested it, it is possible and this is the approach I'm going with (and was going with but for some reason it didn't work).
That's the 'Option 2' above (creating additional four VS and pools: primary frontends, primary backends, secondary frontends and secondary backends) with their respective pools).
Then: on the whole-backends (primary and secondary with priority groups) VS and pool add in that pool's per node healthcheck and add additional 'alias' healthcheck of the primary frontends.
Similarly on the whole-frontends
Similarly on the 'backup' location