Eu tenho um aplicativo vpn que se conecta ao servidor vpn com um soquete tcp. Eu marquei pacotes de soquete tcp com setsockopt
e SO_MARK
. Posso pingar o gateway vpn ping 10.0.0.1
com êxito.
Então eu tento rotear todo o meu tráfego através da vpn. Eu crio uma tabela diferente e adiciono o gateway padrão com ip route add default via 10.0.0.1 dev tun0 table 200
e ip rule add lookup 200
.
Mas, em seguida, os próprios pacotes da vpn começam a passar por vpn. Eu corro ip rule add fwmark 1234 lookup main
e os próprios pacotes da vpn são excluídos da vpn. Eu posso vê-los com o tcpdump passando por eth0
e servidores vpn respondendo-os. Mas os pacotes de entrada não estão sendo entregues no soquete tcp. O kernel parece estar caindo. Por quê?