Enrutar permanentemente un host a VPN en OS X

4

Necesito VPN de la universidad para ssh a la computadora de mi 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 intento anterior de reencaminamiento 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 tanto para sistemas Unix como para Linux deberían ser similares?

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

    
pregunta Chong 06.07.2014 - 06:32

1 respuesta

8

Puede poner una configuración adicional en el archivo /etc/ppp/ip-up , que se describe en man pppd , y que es un archivo de script de shell estándar que se activará cuando el pppd establezca una conexión.

Ya no uso la VPN y, lamentablemente, parece que ya no tengo una copia de mi archivo ip-up , pero la forma en que solía hacerlo es algo similar a lo siguiente (deberá verificar esto con la página de manual antes mencionada).

Una vez que pppd establezca 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

Por lo tanto, su secuencia de comandos ip-up podría tener el siguiente aspecto:

#!/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. Supongo que la dirección IP de la puerta de enlace VPN a la que te conectas es siempre lo mismo y nunca cambia, y en el ejemplo anterior soy asumiendo que es 192.0.2.1 ( RFC5737 rango de direcciones especificado para usar Como ejemplos de documentación - POR FAVOR CAMBIO. La comparacion aqui se utiliza para agregar solo la ruta 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 usar una dirección IP en lugar del nombre de host para la computadora a la que desea agregar una ruta estática. En lugar de usar lab_computer.foo Yo usaría una dirección IP en el comando route .
  3. Estoy usando -interface ${IFNAME} en lugar de codificar ppp0 , que debería hacer que esto funcione incluso si tiene dos VPN conexiones establecidas al mismo tiempo (o una VPN y otra forma de PPP, por ejemplo un modem 3G)
respondido por el mike 06.07.2014 - 20:32

Lea otras preguntas en las etiquetas