Red a Red

Este documento lo publiqué originalmente en el sitio EcuaLug hace varios años

Lo mejor de la configuración red-red es que es casi idéntica a la de roadwarrior.

Esto es El Road Warrior está conectado a una red, pero él es un cliente sólo, de ésta forma:

El road warrior, con la configuración antes explicada puede perfectamente ver las máquinas de la LAN (192.168.1.0/24)

Pero qué tal que pusiéramos una red detrás del roadwarrior?, quedaría algo así:

Oh, el Road warrior es en realidad otro linux.

  • Linux1: Está conectado a la red 192.168.1.0/24
  • Linux2: Está conectado a la red 192.168.2.0/24

Al finalizar de configurar, realmente lo que sucederá es que ambos extremos (servidores) de la VPN agregan una ruta estática para cada uno de ellos poder alcanzar la red LAN del otro:

Fíjense, es IMPERIOSO que ambas redes tengan diferente numeración, es decir, que sean dos redes IPs diferentes, en éste caso lo son.

Mediante OpenVPN podemos hacer que ambas redes puedan verse. Es decir, por ejemplo, que podamos hacer ping entre máquinas de la LAN1 y de la LAN2 (por ejemplo: 192.168.1.6 haciendo ping a 192.168.2.78 sin inconveniente alguno).

Configuración inicial:

Como bien indiqué anteriormente, es una configuración muy parecida al roadwarrior. El RoadWarrior sería Linux2 y el servidor sería Linux1.

Hay que configurar entonces linux1 para ser el servidor, con todas las de la ley anteriormente explicado

Hay que configurar linux2 para que actúe como un cliente (road warrior) con todas las de la ley anteriormente explicados.

Adiciones a la configuración:

Asumamos que el ejemplo anterior aplica. Es decir, la subred del cliente (linux2) es la 192.168.2.0/24 el cliente le llamaremos client2 (de acuerdo a los certificados y claves generados como road warrior).

Cambios en el servidor:

Hay que crear el directorio ccd:

 mkdir /etc/openvpn/ccd 

Dentro de éste directorio creamos un archivo con el nombre del cliente (client2) que contiene la siguiente linea:

iroute 192.168.2.0 255.255.255.0

Aquí lo que le indicamos al servidor es que al conectarse client2 (este cliente remoto que es un linux con una red detrás) que por favor cree una ruta hacia la red 192.168.2.0/24 que vaya hacia ese cliente remoto. Con eso logramos que las máquinas de la red del servidor puedan ver a las del cliente.

Después hay que agregar esta linea a /etc/openvpn/server.conf

client-config-dir ccd
 route 192.168.2.0 255.255.255.0
 client-to-client
 push "route 192.168.2.0 255.255.255.0

La directiva client-config-dir permitirá al servidor buscar dentro del directorio ccd configuraciones especiales según el cliente (en este caso client2).

¿Por qué tantas veces directivas de route? Sinceramente: no lo entiendo pero así es.

Tenga cuidado, en este segundo caso no la agregamos en ccd/client2 sino en el archivo de configuración del servidor (server.conf en mi caso)

Cambios en el cliente

En el cliente simplemente tenemos que poner en 1 el ip_forwarding, esto se hace tal y como se realizó en el servidor: editando el archivo /etc/sysctl.conf y después ejecutando:

sysctl -p 


debe salirte:

net.ipv4.ip_forward = 1 

Ya, con esto las máquinas de una red podrán ver a las de la otra red.

Si tuvieras varias redes remotas (client2 y client3 por ejemplo) entonces debes crear un archivo llamado client3 dentro de ccd con la configuración propia de esa red. Y agregar las lineas de las rutas (route y push “route…”) en el server.conf

No te olvides de reiniciar los clientes.

Me funciona.. pero si notas algo que falta o que sobre, bienvenido el comentario.

2 thoughts on “Red a Red”

  1. Buenos dias, una pregunta yo he instalado una vpn para una empresa y todo bien se conectan los clientes se conectan, pero ahora han puesto otra oficina y se quieren conectar todos a la vez desde la oficina al servidor y me hay demasiada latencia entre los clientes a la hora de conectarse a la oficina en donde esta el servidor. Esta seria una solucion para este problema? y el cliente VPN que instale en la nueva oficina debe ser el gateway? por que yo el server VPN lo tengo instalado como una computadora mas.
    Gracias por su tiempo

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Member of SKCC#7163T