Um guia “curto” para noobs como eu, que não sabem muito sobre redes. Não é muito novo aqui, mas um resumo de todas as boas opções descritas em respostas anteriores e em outros tópicos relacionados. O procedimento completo consiste em 3 passos básicos:
1) Faça todo o tráfego NÃO passar via VPN. Para isso deve desmarcar Use default gateway on remote network
nas definições VPN. Certifique-se de que desmarca esta caixa de verificação tanto para IPv4 como para IPv6. Normalmente simplesmente desabilito completamente o protocolo IPv6 para a ligação VPN.
(!) É (por vezes) possível que desmarcar esta caixa de verificação seja suficiente para o trabalho normal - segundo a minha experiência, as rotas necessárias (que irão direccionar o tráfego necessário via VPN) podem ser adicionadas automaticamente após o estabelecimento da ligação VPN. Não sei exactamente onde e como estas regras são configuradas, mas tal cenário existe - provavelmente é alguma magia feita pelos administradores de rede VPN.
2) Faça apenas necessary traffic going via VPN. Para isso, é necessário definir rotas. Aqui tem 3 opções:
2.1) Adicionar rota permanente via gateway VPN:
route -p add a.b.c.d/<CIDR> w.x.y.z
ou route -p add a.b.c.d mask e.f.g.h w.x.y.z
onde ‘gateway VPN’ = ‘o seu IP na rede VPN’ = w.x.y.z
e endereço/rede de destino = a.b.c.d
. Pode encontrar w.x.y.z
executando ipconfig
e procurando o nome da sua ligação VPN ou, se utilizar o PowerShell, pode obter uma saída compacta executando ipconfig | grep -A5 PPP
(que irá emitir 5 linhas após encontrar cada ligação PPP).
Cons: terá de recriar rotas se o seu IP VPN for alterado.
2.2) Adicionar rota permanente via interface de rede VPN:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
onde a.b.c.d
é o endereço/rede de destino e interface number
é o identificador da sua ligação VPN. Esta identificação pode ser encontrada executando netstat -rn
, ou, para uma saída mais compacta, netstat -rn | grep -A10 'Interface List'
.
Pros: não é necessário alterar nada se o seu endereço VPN (w.x.y.z
) for alterado.
Cons: necessidade de recriar rotas com nova identificação se eliminar a sua ligação VPN.
- 3) Utilize PowerShell cmdlet:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
Pros: as rotas necessárias são adicionadas cada vez que a ligação VPN é estabelecida e apagadas cada vez que é desligada.
Cons: não há Get-VpnConnectionRoutes
cmdlet, pelo que pode ser difícil gerir estas regras.
3) Verifique e assegure-se de que o encaminhamento funciona como esperado!
Se adicionou rotas persistentes, pode verificá-las executando netstat -rn | grep -A10 'Persistent Routes'
.
E, finalmente, execute alguns comandos tracert
contra ambos os endereços IP que devem ser acedidos via VPN e contra os que devem funcionar sem VPN.