I was wondering if someone could provide some networking guidance. Any ideas/suggestions are welcome.

I am trying to figure out how to reliably connect from my office computer to a computer on-board a robot.

The connection with the robot is not always good (flaky) as the robot is always moving. The connection is over a 3G router (the router on the robot is a 3G bullet from Microhard) http://www.microhardcorp.com/Bullet-3G.php (I am just adding the link to provide more info on my specific setup)

The robot computer runs Ubuntu server 14.04 and the office computer runs Ubuntu Desktop 14.04.

The first place I looked at is setting up VPN.

The robot computer could run a VPN server and allow clients to connect to it.

What are the best recommended Ubuntu-ready VPN software?

VPN over UDP would work best? What happens if the cellular connection drops temporarily to a VPN connection? Would it disconnect quickly and require a long re-connection process?

The router we have also appears to have VPN support ( NAT-T VPN tunneling). Would this be recommended? (I have seen some post stating that NAT-T VPN is not the most safe way to go about doing this)

Any recommendation of the best practices will be appreciated.

Thank you for your time and help in advance.

closed as off-topic by Ron Maupin Mar 30 at 3:35

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "NE is a site for to ask and provide answers about professionally managed networks in a business environment. Your question falls outside the areas our community decided are on topic. Please visit the help center for more details. If you disagree with this closure, please ask on Network Engineering Meta." – Ron Maupin
If this question can be reworded to fit the rules in the help center, please edit the question.

  • Product and resource recommendations are specifically off-topic, as are questions from end-users of corporate networks. If you can, edit the question to fit within the guidelines of the help center. – Ron Maupin Jan 6 '16 at 1:56
  • 1
    If it's losing connectivity, then there's little that can be done about that. My experience with cellular connectivity suggests it isn't small, momentary drops, but disruptions that last minutes. Persistent connections will be hard to maintain in that environment. – Ricky Beam Jan 6 '16 at 2:01
  • Sorry about suggesting products @RonMaupin - it was never my intention. I was just trying to show that I have tried to search for the answer online before posting it here - I edited my querstion). – Pablo Molina Jan 6 '16 at 2:29
  • Just to update you all, I decided to go with setting up OpenVPN over UDP between the robot and the control computer. I am still having some other problems, but OpenVPN is working. Thank you for your help – Pablo Molina Jan 17 '16 at 23:56

I do this exact scenario now. My robots run ROS, but it doesn't make a difference. My company is in the states and we use Verizon 4G but again it doesn't matter.

The basic steps are

  1. We run an OpenVPN server on EC2 (Ubuntu 14.04)
  2. Each client (robot) connects to the OpenVpn. We happen to run Ubuntu 14.04 on this as well.
  3. Since the robots are clients of the VPN each must have a certificate to join the VPN.
  4. Certificates possess what is called a common name. This will be unique per robot (in our case we have multiple computers per robot, so it is unique per host/computer)
  5. This common name is used alongside OpenVPN CCD functionality. This acts a sort of static assignment of IP based on cert name. https://openvpn.net/index.php/open-source/documentation/howto.html#policy
  6. If you are wise you can then configure DNS.

Robots will essentially try indefinitely to connect to the vpn, when they connect they will receive a static ip.

Having said that, we have built functionality that runs as service that will try various version of ifdown tun0 && ifup tun0 and service openvpn restart in order to ensure connectivity. We can afford to do this since our robots are completely autonomous except for monitoring purposes.

  • Thanks. If it helps you toward a solution please consider selecting as answer – bearrito Jan 17 '16 at 23:58

This is tangential to the question but since you said it's Ubuntu, if you are connecting via the command line you should think about using a virtual terminal like screen or tmux - you log in and start your work, get disconnected, reconnect, and start up again where you were because your console session never dropped.

  • Thank you for your note. We are huge fans Byobu actually (built on top of tmux). We are using it extensively. – Pablo Molina Jan 7 '16 at 3:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.