This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
BMC Client Management
All Versions of BMC Client Management (BCM)
How can I use the relay list mechanism for my BCM agents to auto-select relays?
The relay list mechanism allows devices to auto select relays as per their subnet. A list of subnets is set on a relay list server and when the device that is configured to connect to this relay list server contacts it, the server check its subnet, check if it exists and if it does it assign the relay configured for this subnet to the device.
Very often customer will use one relay list server only but this implies that all devices must be able to contact this relay list server, which is not always the case. Some will therefore create one relay list server by geo instead.
Note that it is possible to:
- create several relay list servers (from 12.7)
- chain relays in the relay lists servers, so when the first relay is not available for any reason, the device will be able to pick the next relay in the list of relays available for his subnet.
In order to use this mechanism it is required to create Relay List(s) and to set BCM Agents to use this mechanism:
1 - Prepare the list of subnets
One must make a list of all the subnets it has or will have agents on, along with the available relays on these subnets or that is available to a group of subnets. Customers usually put at least one subnet by location.
A- After 12.7 included:
In the BCM Console, go to Global Settings > Relay List in order to create a Relay List :
In this example the "Main Relay List" was created, (the other one existed from a previous migration):
2- Define parameters for each subnet:
first parameter is the IP range:
Warning: if "IP address ranges is selected then the real subnet range must be set; it must be calculated from the mask if it's not the standard mask. e.g: if the device has the ip 10.5.159.56/255.255.252.0 the subnet to add in the relay list is "10.5.156.0" and not "10.5.159.0".
Then second parameter is the list of Relay, in can you set several Relays for an IP range you have to order them in the order you want them to be tested.
- when selecting the "Network Address" drop-down list it will be possible to select any ip address that was detected on the relay that is being added, its hostname or its FQDN. This is very useful to take potential DNS issues as an example: there could be several entries related to the same relay: one on its ip address and one on the FQDN as an example.
- several relays can be chained: the first one will be tried by the client, if it's not available it will try to connect to the second one in the list etc. This is an easy way to set backup relays, although if the relay list server is down at some point the device will not be able to find its relay, this is why other mechanisms should be set in the Agent Configurations > Communications module of the client when possible.
3- Repeat the above as many times there are subnets in the environment
4- Assign the relay list to a server
The same relay list can be associated to one or more servers.
WARNING: this must be added to a device that will be accessible to the clients, and NOT to the clients themselves (this is a common mistake)
IMPORTANT NOTE: Relay Lists do not auto-update when you modify them, they will need to be reassigned after any modification will have been done on it.
Note: It is possible to create several different relay lists and assign them to different relay list servers from each other:
- this could be useful and efficient if there are thousands locations and/or 100000+ devices as an example as the relay list would be really big and complicated to maintain in this situation, and it could even be more efficient as the list would be fastest to parse
- but is not mandatory: the same relay list could be assigned to every relay list servers, even though several subnets from the list are not relevant to them.
B- Before 12.7 not included:
2- Add the first entry for the first subnet that should be managed:
- Relay Name: The Hostname or IP Address of the Relay. If Hostname is used then one must be sure Client devices are able to resolve the Relay hostname.
- Client Subnet : The address of the subnet of the BCM Client that must connect to the above server.
Warning: the real subnet range must be set; it must be calculated from the mask if it's not the standard mask. e.g: if the device has the ip 10.5.159.56/255.255.252.0 the subnet to add in the relay list is "10.5.156.0" and not "10.5.159.0"
- Relay Port : (default is 1610) do not change this unless you have change BCM default port in your Rollout configuration.
- Priority : from 0 to 5. If there are several Relays to set for the same subnet the one with lower priority is the one selected first.
Warning: if several Relays are set for the same Subnet with the same Priority only one of them will be selected (always the same, this depends on how data are stored). This is not recommended.
The configuration of the relay list will the be stored in the file Subnets.xml file created in the directory "C:\Program Files\BMC Software\Client Management\Master\data\Relay".
This file is only created on the BCM Master but it can be copied or distribute it to a Relay as an example, in this case it will have to be copied into the directory "C:\Program Files\BMC Software\Client Management\Client\data\Relay" of the relay, then restart the service of the BCM agent on the relay.
This will not appear in the console, but the relay will start acting as a relay list server as soon as this file is in and as long as clients are set to connect to it as a relay list server instead of the master.
2 - Configure your devices in order to use the Relay List mechanism :
The best is to have done it from the beginning, meaning the rollout configurations should be set for the device to use the right relay list server at its first installation. It is advised to set it to "Reinstall" because this rollout configuration could be used to reinstall device that are "lost" because the Agent Configuration > Communication hasn't been reconfigured on time or because the client is "broken":
It is recommended to set the mechanism "Relay List server" as the first 'Selected Methods'. It must be set to the URL of the Relay list server. It is built as "http://<Master IP address>:<port>", the default port is 1610 The Master IP/Hostname here could be replaced by the other Relay List server IP/Hostname that could have been assigned to a Relay List in the step A- 4:
How it will work if set as in the above screenshot: when the BCM client starts it first connects to the Relay List server in order to get its parent IP/Hostname. It then tries to connect to it. If:
- the relay is reachable it connects to it
- the relay is not reachable and that the relay list is set with another relay to select after it tries to connect to it instead etc
- the relay list is empty for its subnet (maybe because of misconfiguration, or because the device is not in the LAN) it will try the Backup Relay instead, or any mechanism that could be set after the Relay list Server mechanism in the list of Selection Methods.
2- Operational Rules
One option is to create an operational rule that contains the step 'Relay Module Setup' step in which to set new parameters :
Please note that it is recommended to use several mechanisms, and that 'Reselection Interval' is set to 3600. This ensures the device will connect back to its main relay in case it previously switched to a secondary relay, because the main one was not online, e.g:
More information and methods to deploy the new configuration in this KA: Client Management: How to deploy a new configuration to the Windows devices relay module?
- if a Relay list was implement before version 12.7 and then upgraded to version 12.7 or higher, the subnets.xml file may still be in place on the Master and on other devices where it may have been copied to. If this file is present then new Relay list system (post 12.7) is not taken into account, and the file has to be renamed in order to have the new mechanism (relay.sqlite3) in use.
- In some situation the relay list can hammer the relay list server, which is the same port than the agent communication uses (e.g to many clients use it as a relay list server). It can be a good idea to follow this KA to set it up on a different port than 1610: Client Management: How to dedicate a new port to Relay List feature.