Roteamento da interface de rede ao usar VPN

0

Eu quero me conectar a uma VPN, mas não enviar todo o tráfego por ela.

Veja como minha rede está configurada com a VPN redirecionando todo o tráfego. Este é o padrão com a configuração vpn não alterada.

$ ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

$ ip link show        
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether bc:5f:f4:0e:04:bb brd ff:ff:ff:ff:ff:ff
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none

$ ip route list
0.0.0.0/1 via 10.35.0.98 dev tun0
default via 192.168.1.1 dev enp4s0
10.35.0.1 via 10.35.0.98 dev tun0
10.35.0.98 dev tun0 proto kernel scope link src 10.35.0.97
128.0.0.0/1 via 10.35.0.98 dev tun0
[VPN PUBLIC IP] via 192.168.1.1 dev enp4s0
192.168.1.0/24 dev enp4s0 proto kernel scope link src 192.168.1.8

Quando eu configuro o vpn para não redirecionar todo o tráfego, as rotas mudam.

$ ip route list
default via 192.168.1.1 dev enp4s0
10.35.0.1 via 10.35.0.98 dev tun0
10.35.0.98 dev tun0 proto kernel scope link src 10.35.0.97
192.168.1.0/24 dev enp4s0 

A tentativa de usar a interface tun0 não funciona quando a VPN está configurada para não redirecionar todo o tráfego. Este comando curl apenas trava.

curl google.com --interface tun0

Como posso configurar minha rede para que, quando eu tentar usar a interface tun0 diretamente, eu ainda possa enviar tráfego através da VPN.

Examinei o roteamento, mas não consigo descobrir como rotear o tráfego para uma interface de rede específica. Tudo o que eu li é sobre roteamento de endereços de origem / destino.

    
por Ryan 20.08.2018 / 23:08

1 resposta

0

Você não pode simplesmente "usar a interface tun0", não é assim que a pilha IP funciona. Embora seja possível dizer a alguns aplicativos para "ligar-se" a uma interface específica, o aplicativo ainda precisará que o restante da pilha de rede seja configurado adequadamente, incluindo rotas e gateways, portanto, não é possível usar isso para "alternar" entre saída conexões à vontade.

Então, você pode classificar o tráfego que deseja rotear por meio da VPN, em oposição ao tráfego que não deseja usar a VPN por endereço de origem ou de destino. Então você pode fazer roteamento normal ou roteamento de política (se você classificar por endereço de origem) para fazer a distinção.

Ou você tem alguns aplicativos que você deseja usar a VPN, enquanto o resto dos aplicativos não deve usar a VPN. Nesse caso, crie um namespace de rede , coloque o ponto de extremidade VPN nesse namespace e inicie os aplicativos que deve usar a VPN nesse namespace.

Se você tiver outros critérios para distinguir entre uso VPN e não VPN, edite sua pergunta e especifique-os.

    
por 21.08.2018 / 08:01