8 votos

¿Es posible tener 2 conexiones VPN diferentes simultáneamente en la misma máquina? ¿tal vez en diferentes interfaces de red?

Estoy configurando un nuevo cluster en mi nuevo lugar de trabajo, y todavía estoy administrando otro cluster en mi último lugar de trabajo. Básicamente estoy "copiando" la configuración del primero para configurar el nuevo.

Ahora estoy en casa, y me gustaría utilizar ambas conexiones VPN simultáneamente en lugar de uno tras otro para acceder a ambos clusters al mismo tiempo. En mi opinión esto no es posible, pero tal vez alguien tiene una idea?

Una conexión VPN utiliza OpenVPN y la segunda utiliza el cliente VPN CISCO. ¿O tal vez es posible jugar con las reglas de ruta para obtener eso? No tengo mucha experiencia en redes.

Estoy tratando de usar route -n para intentar redefinir las reglas de las diferentes subinterfaces. Esto es lo que obtengo cuando no hay ninguna VPN activa:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

Ahora bien, si conecto la VPN de Cisco (VPN1):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

Si me pongo en el openVPN (VPN2):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1      0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     192.168.2.17    255.255.255.0   UG    0      0        0 tun0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
zzz.zzz.zz.zz   10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

Y ahora si conecto las dos (primero vpn2 y luego vpn1):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Idealmente, todas las peticiones para xxx.xxx.xxx.0 deben ir como cuando sólo VPN1 está activo (cscotun0) y todas las peticiones para 192.168.2.0 deben ir a través de 192.168.2.17 (tun0) y el otro a través de eth0 ...

No estoy acostumbrado a enrutar y agradecería cualquier ayuda.

EDITAR: inspirado en las respuestas que estoy tratando de jugar route para tratar de configurar correctamente mi configuración.

para ser más claro he editado las tablas de rutas anteriores para reflejar el resultado de route -n que es más informativo. También he modificado el router de mi casa para que tenga 10.1.0.0 nm 255.255.255.0 direcciones ip en casa.

Si entiendo bien, cuando sólo está activa la VPN2 (tun0), utiliza la pasarela defalut de mi casa (10.1.0.1) y define unas cuantas rutas nuevas, dime si entiendo mal:

192.168.1.0   192.168.2.17 -> this says "everything for 192.162.1.0 network (vpn2 network), then pass through official gateway 192.168.2.17 "
192.168.2.17  0.0.0.0 -> this says "everything for host 192.168.2.17, goes to default gateway  (0.0.0.0) " , which is currently pointing to my home rooter"
zzz.zzz.zz.zz 10.1.0.1 -> this says "everything for zzz.zzz.zz.zz . pass through my home router (10.1.0.1)

Cuando conecto solo VPN1, anula la puerta de enlace por defecto con la suya propia (xxx.xxx.xxx.53) y todo se redirige a esta. Esto también es por lo que no puedo ver mi red doméstica btw (si estoy en lo cierto).

Ahora, veo que cuando enciendo ambas VPN, la puerta de enlace por defecto se redirige a la de VPN1 (xxx.xxx.xxx.53), y lo que pregunto es: Como puedo configurar las reglas, para que:

  • todo para 198.162.1.0 pasa por 198.162.2.17
  • las cosas para 198.162.2.17 pasan por 10.1.0.1
  • las cosas para xxx.xxx.xxx.0 pasan por xxx.xxx.117
  • las cosas para 10.1.0.0 pasan a 10.1.0.1

He intentado jugar con con route add y route del pero estoy intentando hacer las cosas más o menos por ensayo y error, y me gustaría entender mejor lo que se supone que debo hacer, y si las reglas que quiero aplicar aquí son correctas o básicamente estúpidas...

EDIT 2: Siguiendo la sugerencia de MariusMatutiae adjunto aquí el resultado de ifconfig cuando ambas VPN están activadas:

cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:xxx.xxx.xxx.117  P-t-P:xxx.xxx.xxx.117  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1380  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4007 (4.0 KB)  TX bytes:3789 (3.7 KB)

eth0      Link encap:Ethernet  HWaddr 00:21:cc:6b:3e:ae  
          inet addr:10.1.0.226  Bcast:10.1.0.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ccff:fe6b:3eae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14287030 (14.2 MB)  TX bytes:5521200 (5.5 MB)
          Interrupt:20 Memory:f3a00000-f3a20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4962141 (4.9 MB)  TX bytes:4962141 (4.9 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.18  P-t-P:192.168.2.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:103523 (103.5 KB)  TX bytes:56000 (56.0 KB)

EDITAR 3:

descripción de lo que no funciona: después de encender ambas VPN, no puedo llegar a la tun0 de la VPN; y si intento ping algo fuera de xxx.xxx.xxx.0 obtengo ping: sendmsg: Operation not permitted .

Lo ideal sería acceder tanto a la VPN (si el DNS de las redes VNP no funciona puedo gestionarlo con la IP directa, no hay problema) y idealmente acceso a mi lan local también...

Por desgracia, no soy lo suficientemente iptables experto para entender cómo se supone que debo hacer.

Gracias de antemano

1 votos

Tengo 5 VPNs conectadas al mismo tiempo en uno de mis sistemas que enruta/cortafuegos el tráfico entre las distintas VPNs. Conseguir que todo esté bien configurado consiste simplemente en entender y configurar correctamente las rutas.

0 votos

Hago esto todo el tiempo. Utilizo dos servicios de pago. Ambos soportan OpenVPN

0 votos

Gracias, ¿podría añadir una respuesta para mostrarme un par de route comandos para hacerlo por favor? Gracias

10voto

MariusMatutiae Puntos 20077

Ciertamente, puedes utilizar varias VPNs simultáneamente. El mayor problema para organizar esto es asegurarse de que la tabla de enrutamiento es correcta, porque todas las VPNs tratarán de alterarla sin asumir que hay más VPNs haciendo lo mismo.

Tu escenario es muy simple, porque básicamente estás usando VPNs para acceder a LANs remotas, no para redirigir todo tu tráfico. La última configuración habría requerido una configuración más compleja, pero en tu caso podemos salirnos con mucho menos trabajo.

A condición previa para que esto funcione es que todas las subredes sean diferentes: la de tu casa y la de tus dos lugares de trabajo.

Suponiendo que ya lo hayas arreglado, entonces debes asegurarte de que tu archivo de configuración del cliente para OpenVPN hace no contienen la siguiente declaración

    redirect-gateway def1

y que el archivo de configuración del servidor hace no contienen la siguiente declaración:

   push "redirect-gateway def1 bypass-dhcp"

Como sólo te interesa trabajar con dos VPN, esto ya resuelve tu problema, porque, aunque la otra VPN coja la ruta por defecto, habrá una única ruta por defecto en tu tabla de enrutamiento, y ya está.

Sin embargo, Cisco VPN no toma, por defecto, la ruta por defecto. Así que debería estar bien. Para comprobarlo, asegúrese de que la salida de ruta -n contiene un par de líneas como las siguientes,

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.73.1    0.0.0.0         UG    0      0        0 eth0

donde 192.168.73.1 es el router por defecto de tu casa (cámbialo si es necesario, si tu router no es 192.168.73.1).

Este problema habría sido mucho más divertido si hubieras querido redirigir todo el tráfico a través de ambas VPNs simultáneamente (sí, se puede hacer).

Editar:

Seguramente también puedes usar OpenVPN en diferentes interfaces de red, si te interesa. Por ejemplo, puede crear una interfaz virtual basada en su tarjeta ethernet de la siguiente manera,

   ip link add link eth0 mac0 address 56:61:4f:7c:77:db type macvlan
   ip link set mac0 up
   dhclient mac0

y ahora comprueba la dirección IP de la interfaz virtual mac0 con

   ip addr show

Entonces, en su openvpn del archivo de configuración del cliente, puede introducir la declaración

   local IP_address_of_mac0

y cuando se conecte a su servidor OpenVPN, la conexión se habrá vinculado sólo a la interfaz mac0 . A continuación, para acceder a la LAN remota, hay que acordarse de vincular todas las aplicaciones a la misma interfaz mac0 y a su dirección IP. Por ejemplo, para acceder a un pc a través de ssh de esta manera, usted tendrá que decir:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

y así sucesivamente. Para ping , debe utilizar

   ping -i IP_address_of_mac0 remote_LAN_pc

0 votos

Cuando intento hacer ping a máquinas fuera del rango de VPN1, me sale el error: ping: sendmsg: Operation not permitted ¿qué significa? (incluso si se utiliza la sintaxis -I ip_de_otra_interfaz_de_red)

0 votos

@Danduk82 por favor publica el ifconfig y la tabla de enrutamiento. Añádelo a tu post, hace que sea mucho más fácil de leer.

2voto

porto alet Puntos 315

Es totalmente posible ejecutar varias VPNs simultáneamente.

Veo un par de problemas con su configuración -

Dependiendo de lo que intente hacer, debe asegurarse de que el servidor VPN no publica (o ignora o utiliza una métrica menor para la ruta correcta) la ruta por defecto. De lo contrario, usted tiene VPN tratando de ruta a través de uno al otro y la ruptura. Por supuesto, esto implica que estás usando las VPN's sólo para alcanzar redes/rutas específicas

El segundo problema que puedes tener (fíjate en las redes 192.168.1.0 duplicadas con máscara de red 255.255.255.0) parece ser que las dos redes a las que intentas llegar están en 192.168.1.x. Esto es un problema ya que el kernel no sabe a cuál te refieres. La solución correcta es renumerar una de las redes para que esté en un bloque de red diferente. (Puede haber horribles, horribles, horribles hacks que puedes hacer con iptables y archivos hosts y otros trucos para emular esto en tu sistema, pero es altamente especializado, frágil y no recomendado).

Por cierto, cuando se elaboran las tablas de rutas, suele ser mejor utilizar el parámetro "-n" para que se muestren las IP en lugar de intentar resolver los nombres de las máquinas, ¡los nombres de las máquinas no significan nada para nosotros!

0 votos

¿Qué quiere decir con renumerar una de las redes para que esté en un bloque de red diferente ? No puedo modificar nada en la configuración de cisco VPN, pero tal vez podría cambiar algunas cosas en el archivo de configuración de openvpn para la segunda conexión.

0 votos

Estoy en el trabajo ahora, y veo que la dirección de firewalllocal es también 192.168.1.1 . ¿Es algo malo?

1 votos

Sí, es malo. Cada dispositivo necesita una dirección IP única, de lo contrario, es increíblemente difícil hacer que funcione (no es algo que se deba intentar sin un gran conocimiento de TCP/IP.

0voto

OxygenIT Puntos 27

¿Qué tal si simplemente configuramos una VM de W7 en VirtualBox, y usamos la segunda VPN a través de ella, y luego usamos la compartición bidireccional de carpetas entre el anfitrión y el invitado? Simplicidad. :)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: