En ocasiones necesitamos establecer una conexión de datos de baja velocidad sobre interfaces RS232 o RS485 entre dos puntos alejados entre sí y entre los que no disponemos de ningún medio de comunicación: ni cables Ethernet, ni visibilidad para enlaces Bluetooth o WiFi.
En estos casos la única tecnología de acceso disponible son las redes móviles 3G/4G. En este artículo vamos a explicar como montar un túnel RS232 o RS485 entre dos routers o gateways Teltonika a través de Internet. Para ello montaremos primero una VPN entre ambos dispositivos y luego mapearemos el puerto RS232/RS485 a la dirección IP del túnel.
Conexión directa entre los dos extremos a través de la red móvil
En este caso, un extremo tendrá que configurarse como servidor y el otro como cliente VPN. Al iniciarse la conexión entre ambos dispositivos el cliente debe comunicar con el servidor lo que implica que necesariamente el servidor tiene que tener una IP pública y accesible. El cliente no hace falta. Si no es el caso se podrá optar por la opción de conexión indirecta a través de un servidor VPN en cloud.
La forma más sencilla y a la vez segura de establecer una VPN entre los dos dispositivos es a través de OpenVPN con una clave estática. Con este método generaremos una clave en el extremo servidor y luego la cargaremos en el extremo cliente. Esta clave nos permitirá autenticar ambos extremos.
Generación de la clave estática
Podemos generar la clave estática descargando en un ordenador con Windows el paquete de openvpn desde este enlace. Cuando instalemos el paquete de software debemos seleccionar Customizar e instalaremos también el paquete Easy-RSA.
En este artículo generaremos la clave estática directamente desde el paquete openvpn instalado ya en el router servidor. Para ello nos conectaremos por SSH al router servidor. Para ello podemos usar putty o cualquier otro cliente SSH. El usuario es root y el password el mismo para el acceso al servidor web. Una vez dentro nos iremos al directorio adecuado a través del comando cd /etc/easy-rsa/keys/ y finalmente introduciremos el comando
# openvpn –genkey –secret static.key
A continuación necesitaremos descargar la clave creada en nuestro router ‘static.key’ en nuestro ordenador para después cargarlo en la configuración del cliente y del servidor VPN a través del interfaz web del router. Para ello podemos usar el programa WinSCP, seleccionaremos el protocolo SCP y accederemos al router con el mismo usuario ‘root’ y password que por SSH. Se nos abrirá una interfaz gráfica de directorios locales y remotos (RUT) donde podremos navegar al directorio anterior y traspasar el fichero static.key a nuestro ordenador.
Configuración del servidor y cliente OpenVPN
A continuación tenemos que configurar una instancia OpenVPN servidor en el router servidor y cliente en el router cliente. Recordemos que el router servidor necesita tener una IP pública y accesible. En la siguiente captura mostramos un ejemplo donde el router servidor tiene la IP pública 193.186.223.42. Como se indica con las flechas intercambiaremos la dirección local y remota del túnel VPN entre router servidor y cliente. En el campo Remote network IP address de cada extremo indicaremos el rango de la LAN del otro extremo. Es decir, si el router servidor tiene la dirección IP LAN 192.168.1.1 entonces en el extremo cliente configuraremos el valor 192.168.1.0. En nuestro ejemplo hemos seleccionado una VPN de tipo TUN y por tanto, el router servidor y el router cliente tienen que tener direccionamiento LAN diferente porque están ubicados dentro de la misma red de nivel 3.
Podemos verificar la conexión entre servidor y cliente haciendo pings desde un extremo al otro directamente en la interfaz web del router o bien desde un PC conectado en la LAN de cualquiera de los extremos.
Configuración del puerto RS232/485
Finalmente tendremos que configurar el puerto RS232 o RS485 en ambos equipos para mapearlo sobre el túnel IP. Para ello accederemos al menú Services – RS232 y configuraremos el router servidor como Serial type Over IP, Protocol TCP y Mode Server y podemos elegir cualquier puerto (5000 en nuestro ejemplo). También configuraremos los parámetros de velocidad en el puerto serie, número de bits de datos, paridad y número de bits de stop.
En el router cliente configuraremos los mismos parámetros excepto el Mode que será Client y en Server Address pondremos la dirección IP del túnel servidor (10.0.0.1 en nuestro ejemplo). También configuraremos el mismo protocolo y puerto.
Conexión indirecta a través de un servidor VPN en cloud
En caso de no disponer de una SIM con IP pública y accesible en uno de los extremos podemos realizar la conexión de ambos equipos como clientes VPN conectados a nuestro servidor VPN en cloud. Si quieres ampliar la información sobre nuestro servicio VPN puedes leer el siguiente artículo.
En este caso no será necesario generar una clave estática y tendremos que configurar ambos routers como un cliente VPN cargando el fichero ovpn suministrado para cada extremo.
Una vez cargados los ficheros comprobaremos que ambos extremos estén conectados al servidor VPN y que se vean entre ellos. Lo podemos verificar a través de las rutas (debe aparecer una ruta tun0 en el rango del túnel) y haciendo ping de un extremo al otro del túnel a través del menú de Troubleshoot. Una vez verificada la conectividad entre ambos extremos tendremos únicamente que configurar el puerto RS232 como en el caso anterior. En el extremo configurado como Client configuraremos la dirección IP del túnel del otro extremo.