não é possível rotear IP através de VPN

não é possível rotear IP através de VPN

Estou tentando colocar uma VPN em execução. Gostaria que os programas solicitassem explicitamente a interface em vez de rotear TODO o tráfego, como acontece com curl --interface.

curl --interface ppp0 ip.bsd-unix.netdeveria enviar através da VPN, mas de alguma forma, usando tcpdumpou iftop,Posso ver o tráfego passando pela eth0, mesmo quando o IP de origem é 10.10.1.2. Aqui está o meu 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

Alguns IPs obscurecidos. O segundo é adicionado pelo xl2tp quando ele inicia e a interface ppp0 é criada. 149.etc é minha LAN e 10.etc é minha VPN.


Além disso, quando eu ping -I ppp0 8.8.8.8posso ver a atividade do ppp0 e recebo respostas com ms mais altos, o que sugere que eles estão passando pela VPN.

Responder1

Eu meio que presumi que se o IP de origem de um pacote correspondesse ao de uma interface, ele usaria essa interface. E se esse não fosse o comportamento inerente do IP, então minha segunda rota teria feito isso acontecer: a srcparte da rota era uma pista falsa para mim.

Então, meus programas se vinculam ao endereço ppp0, que define o IP de origem, certo? Fiz o que @davidgo disse e criei uma tabela de roteamento separada...

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

... em seguida, adicionei uma regra para usar a tabela personalizada para pacotes que possuem esse IP de origem ...

sudo ip rule add from 10.10.1.2 lookup custom

...e adicionei uma regra à tabela personalizada para usar o ppp0 para qualquer tráfego obtido, passando pelo gateway do ppp0.

sudo ip route add default via 10.10.1.1 dev ppp0 table custom

curl ip.bsd-unix.netme dá meu IP residencial e curl --interface ppp0 ip.bsd-unix.neto IP remoto da minha VPN. Funciona!

Ainda assim, estou interessado em saber por que o ping passou pelo ppp0 corretamente o tempo todo.

informação relacionada