no puedo enrutar IP a través de VPN

no puedo enrutar IP a través de VPN

Estoy intentando ejecutar una VPN. Me gustaría que los programas soliciten explícitamente la interfaz en lugar de enrutar TODO el tráfico, como con curl --interface.

curl --interface ppp0 ip.bsd-unix.netdebería enviar a través de la VPN, pero de alguna manera, usando tcpdumpo iftop,Puedo ver tráfico pasando por eth0, incluso cuando la IP de origen es 10.10.1.2. Aquí está mi ip route show:

default via 149.x.y.z dev eth0
10.10.1.1 dev ppp0  proto kernel  scope link  src 10.10.1.2
149.x.y.128/25 dev eth0  proto kernel  scope link  src 149.x.y.172

Algunas IP oscurecidas. El segundo lo agrega xl2tp cuando se inicia y se crea la interfaz ppp0. 149.etc es mi LAN y 10.etc es mi VPN.


Además, cuando hago ping -I ppp0 8.8.8.8, puedo ver la actividad ppp0 y recibo respuestas con ms más altos, lo que sugeriría que están pasando por la VPN.

Respuesta1

En cierto modo supuse que si la IP de origen de un paquete coincide con la de una interfaz, usaría dicha interfaz. Y si ese no fuera un comportamiento inherente de IP, entonces mi segunda ruta habría hecho que eso sucediera: la srcparte de la ruta fue una pista falsa para mí.

Entonces, mis programas se vinculan a la dirección ppp0, que establece su IP de origen, ¿verdad? Hice lo que dijo @davidgo e hice una tabla de enrutamiento separada...

echo 200 custom | sudo tee -a /etc/iproute2/rt_tables

... luego agregó una regla para usar la tabla personalizada para paquetes que tienen esa IP de origen...

sudo ip rule add from 10.10.1.2 lookup custom

...y agregó una regla a la tabla personalizada para usar ppp0 para cualquier tráfico que reciba, pasando por la puerta de enlace de ppp0.

sudo ip route add default via 10.10.1.1 dev ppp0 table custom

curl ip.bsd-unix.netme da la IP de mi casa y curl --interface ppp0 ip.bsd-unix.netme da la IP remota de mi VPN. ¡Funciona!

Aún así, me interesa saber por qué el ping pasó ppp0 correctamente todo el tiempo.

información relacionada