Me estoy conectando a un servicio VPN usando OpenVPN y todo funciona bien. Una vez que me conecto estas son las reglas que se establecen automáticamente:
root@linux:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:AA:1B:01:AC:FB
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37977382 (36.2 MiB) TX bytes:5098121 (4.8 MiB)
Interrupt:16
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.7.7.126 P-t-P:10.7.7.125 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:31366374 (29.9 MiB) TX bytes:308591 (301.3 KiB)
root@linux:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
5.120.121.114 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
10.7.7.1 10.7.7.125 255.255.255.255 UGH 0 0 0 tun0
10.7.7.125 * 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Esto es lo que entiendo:
- mi dirección IP local es 192.168.1.201
- la puerta de enlace local es 191.168.1.1
- 5.120.121.114 es la ip pública de VPN
- tun0 es el túnel VPN, mi máquina tiene 10.7.7.126 como dirección
- 10.7.7.125 es la dirección ptp que entiendo es el otro "extremo" de la VPN
Respecto a la tabla de enrutamiento entiendo que:
- de forma predeterminada, todo el tráfico se envía a través de 10.7.7.125 en la interfaz tun0 (pero ¿por qué esa máscara?)
- Se puede acceder a 10.7.7.1 a través de tun0
- Se puede acceder a la IP pública de VPN a través de eth0
No entiendo la segunda puerta de enlace predeterminada, esta es la predeterminada cuando la VPN no está activa, ¿simplemente se omite?
¿Qué pasa con el 10.7.7.1? Parece que es la puerta de enlace de la VPN...
¿Por qué el destino 128.0.0.0?
OpenVPN crea automáticamente todas estas reglas. ¿Pero en base a qué se crean esos?
No puedo controlar el lado del servidor de la VPN sino solo la configuración del cliente.
Ahora, ¿qué pasa si quisiera:
- ¿Forzar que todo el tráfico a 216.58.213.174 pase a través de VPN tun0 y que el resto pase a través de eth0?
- ¿Puedo establecerlo automáticamente al iniciar la VPN?
Gracias por su sugerencia y apoyo para entender esto.
KR, no sé
EDITAR:
root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0
default via 192.168.1.1 dev eth0
5.152.210.249 via 192.168.1.1 dev eth0
10.7.7.1 via 10.7.7.125 dev tun0
10.7.7.125 dev tun0 src 10.7.7.126
128.0.0.0/1 via 10.7.7.125 dev tun0
192.168.1.0/24 dev eth0 src 192.168.1.201
Respuesta1
No entiendo la segunda puerta de enlace predeterminada, esta es la predeterminada cuando la VPN no está activa, ¿simplemente se omite?
Este es uno de los trucos de OpenVPN para enrutar el tráfico a través de su túnel mientras mantiene su puerta de enlace predeterminada. Las rutas 0.0.0.0/1 y 128.0.0.0/1 tienen prioridad sobre la ruta 0.0.0.0/0 ya que son más específicas y aun así coinciden con todas las direcciones. Busque "def1" en la documentación de OpenVPN para obtener más detalles.
¿Qué pasa con el 10.7.7.1? Parece que es la puerta de enlace de la VPN...
Probablemente si
OpenVPN crea automáticamente todas estas reglas. ¿Pero en base a qué se crean esos?
Probablemente hayan sido enviados desde el servidor. Puedo proporcionar más información si puede proporcionar el resultado de su cliente mientras se inicia junto con su archivo de configuración.
No puedo controlar el lado del servidor de la VPN sino solo la configuración del cliente.
Sí, pero el cliente es altamente configurable, de modo que puedes anular prácticamente cualquier cosa que el servidor quiera que haga tu cliente. Aún así, deberá cumplir con los requisitos básicos de su proveedor para poder conectarse. También debe consultar los "Términos de uso" de sus proveedores para asegurarse de no terminar cabreándolos.
Ahora, ¿qué pasa si quisiera:
¿Forzar que todo el tráfico a 216.58.213.174 pase a través de VPN tun0 y que el resto pase a través de eth0?
Sí, incluya "ruta 216.58.213.174 255.255.255.255 10.7.7.125" en su configuración. Eso debería configurar la ruta deseada. Debería poder mantener sus otras rutas en su lugar eliminando la opción "redirect-gateway" de su configuración.
¿Puedo establecerlo automáticamente al iniciar la VPN?
si, ver arriba
Todas las opciones que he descrito y más se pueden encontrar en la documentación en línea de OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage