4 votos

Enrutar permanentemente un host a VPN en OS X

Necesito la VPN de la universidad para hacer ssh a mi ordenador de la oficina. Pero cada vez que inicio la VPN, tengo que enrutar el host a ppp0 manualmente para usarlo,

sudo route add lab_computer.foo ppp0

porque mi anterior intento de redireccionamiento se perdió. Y, francamente, es un dolor. Me pregunto si es posible usar algún script para redirigirlo automáticamente cada vez que establezca con éxito la conexión vpn.


PS1. Estoy usando OS X. Pero creo que para ambos sistemas unix y linux deben ser similares?

PS2. No quiero enrutar toda la conexión a la vpn porque de esa manera, la conexión a otros hosts se ralentizará innecesariamente.

8voto

user36155 Puntos 36

Puedes poner una configuración extra en /etc/ppp/ip-up que se describe en man pppd y que es un archivo de shell estándar script que se disparará cuando el pppd establece una conexión.

Ya no uso la VPN y lamentablemente parece que no tengo una copia de mi ip-up pero la forma en que yo lo hacía es algo similar a lo que se muestra a continuación (tendrá que verificar esto con la página man antes mencionada).

Una vez que pppd establece la conexión, llamará a /etc/ppp/ip-up con los siguientes argumentos:

ip-up interface-name tty-device speed local-IP-address remote-IP-address ipparam

Su ip-up scriptpodría, por tanto, ser algo así:

#!/bin/bash

IFNAME="${1}"
LOCALIP="${4}"
REMOTEIP="${5}"

if [[ "${REMOTEIP}" == "192.0.2.1" ]]; then
  /sbin/route add -host lab_computer.foo -interface "${IFNAME}"
fi

Tenga en cuenta lo siguiente:

  1. Estoy asumiendo que la dirección IP de la pasarela VPN a la que te conectas es siempre la misma y nunca cambia, y en el ejemplo anterior estoy asumiendo que es 192.0.2.1 ( RFC5737 rango de direcciones especificado para usar como Ejemplos de Documentación - POR FAVOR CAMBIELO). La comparación aquí se utiliza para añadir la ruta sólo cuando está conectado a través de la VPN a su oficina, y no cualquier otra conexión VPN o PPP.
  2. También es mejor utilizar una dirección IP en lugar del nombre de host para el ordenador al que quieres añadir una ruta estática. En lugar de utilizar lab_computer.foo Utilizaría una dirección IP en el route comando.
  3. Estoy usando el -interface ${IFNAME} a diferencia de la codificación dura ppp0 que debería hacer que esto funcione incluso si tiene dos conexiones VPN al mismo tiempo (o una VPN y otra forma de PPP). de PPP, por ejemplo, un módem 3G)

0 votos

Gracias por la ayuda. Ha funcionado. Aunque tengo que chmod +x para ip-up para que funcione. También he eliminado la condición mostrada en tu ejemplo, ya que no tengo ni idea de cuál es el valor ${REMOTEIP} para mi conexión VPN. (No es la IP de la ruta vpn que se muestra en el conector GUI, ni es la dirección del servidor VPN).

0 votos

Puede utilizar ifconfig para conocer las IPs correspondientes. La sintaxis es LOCALIP --> REMOTEIP .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X