(imported topic written by SY57_Jim_Montgomery)
Hey folks, I’m trying to understand relay autoselection and what exactly happens. I don’t think the entire process is included in a document, so I’ve pulled the following information from various places. Please correct anything that is not accurate below.
In this scenario there is a BES server, 100 relays each at different remote wan locations, and I’m setting up a new BigFix agent at a remote wan location. The agent has the _BESClient_RelaySelect_MinRetryIntervalSeconds setting configured to 60, the default. Let’s also say that the agent is 3 hops away from his nearest relay. These guys have a wacky looking network, okay?
First, the client connects to the BES server, and registers and retrieves the list of all relays.
Next the client sends a ping with ttl 0 to every relay in that list (note this is NOT a broadcast ping) (he’s pinging 100 devices with a ttl 0 icmp here)
No response, then the client waits for _BESClient_RelaySelect_MinRetryIntervalSeconds seconds
Next the client sends a ping with ttl 1 to every relay in that list
No response, then the client waits DOUBLE _BESClient_RelaySelect_MinRetryIntervalSeconds seconds = 2 minutes
Next the client sends a ping with ttl 2 to every relay in that list
No response, then the client waits QUADRUPLE _BESClient_RelaySelect_MinRetryIntervalSeconds seconds = 4 minutes
Next the client sends a ping with ttl 3 to every relay in that list
Response from a relay.
The client keeps track of what relay he is using, he DOES not keep track of anything else, like what the other results were from pings, etc.
When the autoselection happens next time, after 6 hours, or if he can’t connect to the relay, then:
He’ll check his current relay and if that is still there, keep using it.
Otherwise, go through the previous process of pinging everything with increasing ttl, waiting double the time between each round of pings.
I appreciate your help in making sure I understand this clearly.
Thanks guys,
–Jim