¿Cómo enrutar selectivamente el tráfico de red a través de VPN en Mac OS X Leopard?

96

No quiero enviar todo mi tráfico de red a VPN cuando estoy conectado a la red de mi empresa (a través de VPN) desde casa. Por ejemplo, cuando estoy trabajando desde casa, me gustaría poder hacer una copia de seguridad de todos mis archivos en Time Capsule en casa y aún así poder acceder a la red interna de la compañía.

Estoy usando el cliente VPN integrado de Leopard. He intentado desmarcar "Enviar todo el tráfico a través de una conexión VPN". Si lo hago, perderé el acceso a los sitios web internos de mi empresa, ya sea a través de curl o del navegador web (aunque todavía se puede acceder a las IP internas). Sería ideal si pudiera elegir selectivamente un conjunto de IP o dominios para enrutarlos a través de VPN y mantener el resto en mi propia red. ¿Es esto posible con el cliente VPN incorporado de Leopard? Si tiene alguna recomendación de software, me gustaría escucharla también.

Newtonapple
fuente
2
La primera solución solo funcionará en una VPN PPP. La siguiente solución funcionará en una VPN de Cisco (y otros tipos que no sean específicos de Cisco) superuser.com/questions/91191/…
dr jimbob

Respuestas:

84

Cree el archivo / etc / ppp / ip-up con el siguiente contenido:

#!/bin/sh
/sbin/route add <SUBNET> -interface $1 

reemplazando <SUBNET>con subred, desea enrutar a través de VPN (por ejemplo, 192.168.0.0/16)

ejecutar como root:

chmod 0755 /etc/ppp/ip-up

Este archivo se ejecutará cada vez que se conecte a VPN.

Los parámetros dados al script:

  • $1: La interfaz VPN (p ppp0. Ej. )
  • $2: Desconocido, estaba 0en mi caso
  • $3: IP del servidor VPN
  • $4: Dirección de puerta de enlace VPN
  • $5: Puerta de enlace regular (no vpn) para sus conexiones lan
Aleksei Balandin
fuente
1
La punta de Aleksei funcionó para mí. Solo me pregunto si la primera línea (#! / Bin / sh) está haciendo algo. ¿No está comentado? Pregunto esto ya que describo esto para usar en nuestra empresa y cuanto más simple mejor :-) Gracias, Edgar
Edgar Wieringa
1
@EdgarWieringa: convirtió tu respuesta en un comentario. Espero que sea mejor! :)
studiohack
66
@Edgar - no. Esa primera línea es especial. en.wikipedia.org/wiki/Shebang_(Unix)
James Moore
66
En 10.7 / Lion, tuve mejor suerte con: / sbin / route add 172.16.0.0/16 -interface $ 1 Los argumentos que vi obtener ip-up son: $ 1 = interfaz VPN, por ejemplo, 'ppp0' $ 2 = '0' (no asegúrese de cuál es este valor) $ 3 = Su IP VPN $ 4 = Dirección IP de la puerta de enlace pública VPN $ 5 = Puerta de enlace predeterminada normal para ethernet / wifi
Gabe Martin-Dempesy
44
¿Qué sucede si tengo dos o más conexiones VPN configuradas? ¿Cómo distingo entre ellos /etc/ppp/ip-uppara poder agregar las rutas en consecuencia? ¿Se pasará el nombre amigable de VPN como el sexto argumento ( ipparam)?
Kal
11

Quería hacer algo similar. Conecte la VPN y luego enrute una red adicional a través de esa VPN. Terminé con el siguiente bit de Applescript:

-- Connect Work VPN

tell application "System Events"
    tell network preferences
        tell current location
            tell service "Work"
                connect
                tell current configuration
                    repeat until get connected = true
                        delay 1
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

set gateway to "192.168.1.1"

do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges

Debe cambiar "Work"el nombre de su conexión VPN, 192.168.1.1la dirección de su puerta de enlace y 172.16.0.0/16la dirección de la red a la que desea enrutar. Se pueden agregar redes adicionales repitiendo la línea final con diferentes direcciones.

Martin Hilton
fuente
1
(Además, para aquellos que se preguntan acerca de esta dirección IP: al igual que el interlocutor, 172.16.0.0/16 es un espacio de direcciones privadas como 10.xxx y 192.168.xx Entonces, de hecho, es parte de la VPN, y no algún sitio web externo o lo que sea.)
Arjan
1
Entonces, ¿ 192.168.1.1está su enrutador en la VPN o el enrutador en la LAN? ¿Y no tiene que configurar la ruta predeterminada de regreso a su LAN?
Jack M.
8

Hay una función oculta en las Preferencias de red en MacOS: puede ordenar las interfaces .

Abra Preferencias del sistema -> Red -> Haga clic en la gearesquina inferior izquierda ->Set service Order...

<code> Establecer orden de servicio ... </code> Pedido de VPN

Es fundamental que tenga sus interfaces de red ordenadas en el orden en que desea que se usen. Si desea que TODOS los datos que no sean LAN vayan a la VPN, coloque la interfaz VPN en la parte superior. Ordenar así

  1. VPN
  2. Ethernet
  3. Aeropuerto

Así no:

  1. Aeropuerto
  2. Ethernet
  3. VPN

De esta manera, no es necesario verificar la siguiente configuración en Session Options:

Enviar todo el tráfico a través de una conexión VPN

✅ Probado en la L2TP VPNconexión

GabLeRoux
fuente
No creo que esto responda la pregunta, a menos que el OP realice una copia de seguridad en Time Machine a través de Ethernet y se conecte a la vista de red de la compañía Aeropuerto (conexión inalámbrica)
Josh Newman
1
Utilicé el truco de inicio de ppp, pero no funcionó hasta que moví mi conexión vpn debajo de la conexión inalámbrica. Esta es una respuesta válida.
Arosboro
¡Realmente sería la respuesta principal! Muchas gracias, ¡sería imposible de entender!
Andre Soares
1
Esto funciona para las VPN IPSec L2TP, pero NO funciona para las VPN IPSec de Cisco. Las VPN IPSec de Cisco no están disponibles en el cuadro de diálogo "Establecer orden de servicio"
goofology
1

He echado un vistazo en línea para ver si puedo encontrar algo, y hasta donde puedo entender, parece que quieres poder usar tu computadora de manera normal, al mismo tiempo que puedes conectarte a los sitios web internos de la compañía, por lo que puedes necesita configurar una tabla de enrutamiento personalizada.

Aparentemente, este enlace solo se aplica a 10.4, pero las cosas de la línea de comando aún pueden funcionar.

Alexis Hirst
fuente