Relay Affiliation and Failover Relay Priorities

We have our affiliation setup so that local branch clients will affiliate with their local relay. Then if the local relay is offline, the clients will affiliate with one of three head relays at the corporate office. We would like to set a failover to the DMZ relay in cases where clients have been taken home, or for laptops when they are not connected to the corporate network. My question is what is the order of precedence between relay affiliation and failover? It seems like affiliation should take precedence over the failover setting, but in the testing I have done, I found that not to be the case.

Below are our affiliation settings.

Head Relay - Corporate Office

_BESRelay_Register_Affiliation_AdvertisementList = CorporateOffice;HeadRelay;*

_BESClient_Register_Affiliation_Seeklist = not set

_BESGather_Comm_ParentRelayURL = RootServer

Local Relay - Remote Location

_BESRelay_Register_Affiliation_AdvertisementList = Location1;*

_BESClient_Register_Affiliation_Seeklist = HeadRelay

_BESClient_RelaySelect_FailoverRelayList = TopLevelRelay4; TopLevelRelay 5; TopLevelRelay 6

_BESClient_RelaySelect_FailoverRelay = DMZ Relay

Client - Remote Location - Location1

_BESClient_Register_Affiliation_Seeklist = Location1;HeadRelay

_BESClient_RelaySelect_FailoverRelay = DMZ Relay

Enable client debug logging, have the client perform automatic relay selection again , and then let’s take a look at the order the client is determining which relay to select.

Clients will try the the affiliations in the seeklist in order, followed by the configured failovers (if a list, in order), and the root server (as defined by the gather URL in the masthead) as the last resort. As BigFixNinja suggests, the Client’s debug log can help expose details of the auto selection process for a given Client.

The problem with having with having both the settings _BESClientRelaySelect_FailoverRelayList and _BESClientRelaySelect_FailoverRelay both defined is that _BESClientRelaySelect_FailoverRelayList completely negates _BESClientRelaySelect_FailoverRelay. I was thinking that the failover list would be used first and then the single failover, but that doesn’t appear to be the case. If the failover list is set, the single failover is ignored.