O seguinte funciona para mim. Execute estes após a conexão ao Cisco VPN. (Estou usando o cliente Cisco interno do OS X, não o cliente da marca Cisco.)
sudo route -nv add -net 10 -interface utun0
sudo route change default 192.168.0.1
Substitua 10
no primeiro comando pela rede que está do outro lado do túnel.
Substitua 192.168.0.1
pelo gateway da sua rede local.
Eu coloquei em um script bash, assim:
$ cat vpn.sh
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Run this as root"
exit 1
fi
route -nv add -net 10 -interface utun0
route change default 192.168.0.1
Também encontrei uma explicação sobre como executar isso automaticamente ao conectar a VPN, mas é tarde na sexta-feira e eu não sinta vontade de experimentar:)
Editar:
Desde então, deixei o trabalho em que estava usando o Cisco VPN, portanto, isso é da memória.
O 10
no primeiro comando é a rede que você deseja rotear pela VPN. 10
é um ponteiro curto para 10.0.0.0/8
. Em Tuan Anh Tran's caso, parece que a rede é 192.168.5.0/24
.
Quanto a qual gateway especificar no segundo comando, ele deve ser o seu gateway local. Quando você faz logon em uma VPN que impede o tunelamento dividido, ela está impondo essa política alterando suas tabelas de roteamento para que todos os pacotes sejam roteados na interface virtual. Então você quer mudar sua rota padrão de volta para o que era antes de entrar na VPN .
A maneira mais fácil de descobrir o gateway é executar netstat -rn
antes de efetuar login na VPN e examinar o endereço IP à direita do destino "padrão". Por exemplo, aqui está o que parece na minha caixa agora:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 29 0 en1
10.0.1/24 link#5 UCS 3 0 en1
10.0.1.1 0:1e:52:xx:xx:xx UHLWIi 55 520896 en1 481
10.0.1.51 7c:c5:37:xx:xx:xx UHLWIi 0 1083 en1 350
10.0.1.52 127.0.0.1 UHS 0 0 lo0
Meu gateway é 10.0.1.1
- está à direita do destino "padrão".