Entradas Cortas: Ruta automática en OSX al conectar VPN

Una nueva entrada corta para Mac OSX, que en este caso resuelve un problema que inexplicablemente viene muy mal resuelto en la interfaz gráfica, y es el enrutado estático al configurar una VPN…

Lo normal con una VPN es que queramos enviar a través de ella el tráfico a ciertas IPs y no todo el tráfico, y esto es algo que no podemos hacer a través de la interfaz, por lo que deberemos añadir manualmente la ruta estática, o bien configurar nuestro sistema para que la añada al conectar la VPN y la elimine al cortar la conexión.

Para ello crearemos un fichero ip-up en la carpeta /etc/ppp:

sudo vi /etc/ppp/ip-up

e introduciremos el siguiente contenido, siendo XXX.XXX.XXX.XXX el rango de red que queremos enrutar (192.168.10.0, por ejemplo), YYY.YYY.YYY.YYY la máscara de subred (255.255.255.0 por ejemplo) y ZZZ.ZZZ.ZZZ.ZZZ la ip de la puerta de enlace a utilizar (atención al scroll horizontal)

#!/bin/sh
sudo /sbin/route add -net XXX.XXX.XXX.XXX -netmask YYY.YYY.YYY.YYY ZZZ.ZZZ.ZZZ.ZZZ

Para obtener la puerta de enlace que debemos usar, así como para comprobar que la ruta está bien puesta, podemos usar el comando netstat (he eliminado por claridad las rutas no relacionadas):

netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            link#11            UCSI            0        0    ppp0
10                 ppp0               USc             2        4    ppp0
10.2.0.0           10.2.0.1           UH              2        6    ppp0

192.168.10          10.2.0.1           UGSc            0        3    ppp0

Una vez comprobado que al conectar de nuevo la VPN el enrutado funciona correctamente (si no estamos seguros, utilizar traceroute para comprobar por donde están los paquetes siendo enviados)

traceroute 192.168.10.100
traceroute to 192.168.10.100 (192.168.0.100), 64 hops max, 52 byte packets
 1  10.2.0.0 (10.2.0.0)  36.649 ms  37.018 ms  36.937 ms
 2  192.168.10.100 (192.168.10.100)  37.287 ms  37.246 ms  37.429 ms

nos queda configurar para que la ruta sea eliminada al desconectar la vpn, para lo cual crearemos un nuevo fichero:

sudo vi /etc/ppp/ip-down

e introduciremos el siguiente contenido, siendo las XXX.XXX.XXX.XXX y las YYY.YYY.YYY.YYY las mismas que en el fichero ip-up (atención nuevamente al scroll horizontal):

#!/bin/sh
sudo /sbin/route delete -net XXX.XXX.XXX.XXX -netmask YYY.YYY.YYY.YYY

Espero que os haya sido de utilidad y gracias por visitarme!

Málaga, Enero de 2015