Roteamento por aplicativo

3

Estou usando um cliente VPN proprietário em minha estação de trabalho Ubuntu Linux (Astrill) que suporta vários tipos de VPNs. Um desses tipos de VPN é o OpenVPN, que cria uma interface virtual tun0 quando conectado.

O que me confunde é que quando eu escolho o OpenVPN no cliente eu tenho a opção de apenas encaminhar o tráfego de certos aplicativos no meu computador através da VPN, enquanto o tráfego de outros aplicativos não usa a VPN e deixa meu computador através da interface física.

Eu acho que entendo como o roteamento no Linux funciona, mas não consigo entender como esse cliente VPN consegue rotear o tráfego de maneira diferente por aplicativo.

Quando habilito esse roteamento por aplicativo, vejo que o cliente adiciona a seguinte entrada à tabela de roteamento, mas nada mais:

198.18.32.0/21 dev tun0  proto kernel  scope link  metric 950

Não existe uma regra IPTables única, por isso não é feita via IPTables.

Alguém tem idéia de como isso pode estar acontecendo?

    
por replay 07.10.2015 / 19:18

1 resposta

0

Ao definir NameSpaces no linux você pode conseguir isso, você pode ter diferentes processos para ter redes ou roteamentos diferentes.
Por exemplo
Para criar um novo namespace chamado test:
ip netns add test

Para atribuir uma interface de rede (ou interface de túnel): ip link set tun0 netns test

A network interface can just be active in one namespace at a time.

Para executar um programa nesse namespace, você pode fazer isso:% ip netns exec test <command to run against that namespace>

mais informações sobre o ip net-ns
mais informações sobre namespace

    
por 29.03.2016 / 12:25

Tags