The proxy servers configured on the management Console are further used to route traffic from/to agents.
Basically it's used for two traffic flows: between agents and management Console, and between agents in a job.
Traffic between Agents and Management Console
By default, first proxy server from the list of configured proxies is used by Agents to connect to the management console. Depending on how Agent is launched, with a configuration file or not, see below
For newly connected agents:
- replace the direct address of Management Console to the address of the proxy server in the Agent UI, including the port
- or replace "host" address in an already saved configuration file, including the port
For the agents that are already have connection to the MC:
no need to adjust the agent UI or configuration file. Configure the proxy server on MC while the agent is connected to it. If direct connection becomes not possible at a moment (the agent is moved to WAN), the agent will switch to the proxy server it received.
Only one proxy server is supported for this connection. The agent does not accept two configured proxies and switch from one to another if necessary.
Another limitation is that the Agent won't automatically switch to a second proxy in the list of configured proxies.
This tunnel will be used for all communication between agents and the Console - jobs configuration, statistics, recourses usage, etc.
For each Agent, connected to MC through Proxy, a new socket is opened on the MC's host.
Agent <-> Agent traffic
In the Agent profile enable option Use proxy. However, Agents always prefer direct connection when it is available. If a direct connection is not available, traffic will be routed via proxy.
The agent will be using the proxy servers from MC settings > Auxiliary servers, that were configured in advance. Agents in already configured Synchronization jobs will re-evaluate network settings and will also try a proxy tunnel. Agents in Distribution and Consolidation jobs will probe proxy tunnel on next job run. Make sure that all agents in the job are configured to "Use proxy".
Proxy servers, if several are configured, work in ‘load balancing’ mode: agents distribute their requests to proxies for different jobs. High availability of Proxy is not supported.
By default proxy only routes traffic from/to LAN per "subnet" setting in its configuration.
Proxy can route TCP and ZGT protocols only. Be sure to have these enabled in the Agent profile. Otherwise only proxied tunnel will be possible for a non-selected protocol (as was previously mentioned, agents will try direct connection first). This also means - to force agents to connect only through proxy, uncheck all protocols in the Agent profile.
Proxy connection is reflected in Connectivity map of the Agent. On the example below direct connection to the (external) address discovered by tracker is not available on all protocols, so connection is established through proxy 192.168.56.200.
Note, since proxy is used per whole agent, the map may show all proxy connection, not necessarily related to this particular job.
Proxied connection is not reported in the Agent UI.
Introducing a proxy into the environment will also has its impact on other Resilio Connect functionality, as described below
Proxied connection is also limited by Bandwidth scheduler.
Since real IP addresses of remote agents are hidden behind the proxy, Known hosts parameter in the Agent profile won't work for a proxied tunnel. In order to preserve the functionality, new parameter was introduced - Allowed peers. It accepts only AgentID as value, multiples lines are supported. AgentID can be learned from the agent details. For this parameter to work, tracker must be enabled and reachable for the agents involved.
Speed test can also be run through a proxy tunnel. For speed test through a proxy tunnel to be successful, corresponding tunnel shall be enabled in the Agent profile. For example, for speed test to run through Proxy_TCP tunnel, TCP tunnel protocol must be checked in selected agents' profiles. Otherwise speed test will give error "Network is unreachable:"