We have a robot behind NAT which is having trouble communicating.
Symptoms may include:
- robot appears green in IM but we cannot open the configuration GUI for controller
- we cannot deploy any probes to the robot - we receive a communication error (2)
- In Infrastructure manager, the robot shows up using its local (non-NAT) IP address which we know the hub can't communicate with
It is expected that a hub will be on the same network segment as the robot. In some cases, this can not be accomplished and NAT is used.
The following three settings can be used to try and get around this issue.
local_ip_validation = yes /no
strict_ip_binding = yes / no
robotip_alias = XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX represents the NAT IP.
In most cases, the first two keys are not present in robot.cfg and you do not need to add them. Adding robotip_alias with the NAT IP will be enough.
A different combination of these might need to be tested.
1) the robot has a local/internal IP address of 192.X.XXX.XXX
2) the NAT IP that the hub needs to communicate on is 10.0.XXX.XXX
3) the HUB IP is 10.1.XXX.XXX
in the robot.cfg of the robot you would set the following values:
hubip = 10.1.XXX.XXX
robotip = 192.X.XXX.XXX
robotip_alias = 10.0.XXX.XXX
Restart the robot. If the following keys are set to 'yes' then you may need to set them to no, and in some cases we have seen where you have to specifically add them and set them to "no" so it couldn't hurt to add them at the same time:
local_ip_validation = no
strict_ip_binding = no
After you add the robotip_alias and restart the robot watcher service, the robot will check in to the hub and inform the hub of the appropriate IP to communicate on. This should resolve the issues.