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:
- 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.
- 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.
- 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)