Saudações,
Estou usando vpnc
para um cliente VPN. Também estou fazendo algumas coisas complicadas route
para ter certeza de que ainda posso acessar minha rede local, etc. etc. (os detalhes aqui não são muito importantes).
Às vezes, recebo a tabela de roteamento tão alta que recebo ping: sendto: Network is unreachable
urls que, de outra forma, deveriam ser resolvidas.
Atualmente, se eu reiniciar o Mac OS X, tudo voltará ao normal. O que eu gostaria de fazer é redefinir as tabelas de roteamento para o "padrão" (por exemplo, o que está definido na inicialização) sem uma reinicialização do sistema inteiro.
Eu acho que o passo 1 é route flush
(para remover todas as rotas). E a etapa 2 precisa recarregar todas as rotas padrão.
Alguma ideia de como fazer isso? (por exemplo, o que é o passo 2?)
EDIT
Além disso, estou percebendo que outro sintoma traceroute
também falha no endereço em questão. Por exemplo:
traceroute the.good.dns.name
traceroute: bind: Can't assign requested address
Você precisa liberar as rotas. Use route -n flush várias vezes. Em seguida, adicione suas rotas com route add.
Eu estava enfrentando esse problema enquanto usava um servidor OpenVPN doméstico e me conectava a ele usando o aplicativo Tunnelblick no Mac.
O que estava acontecendo no meu final é que uma rota com meu IP doméstico como destino e um gateway incorreto estava ficando sobrando após a desconexão da VPN. A exclusão desta rota resolveu o problema, simplesmente
Exemplo: estou na escola e depois de uma nova inicialização do computador, me conecto a uma rede sem fio. Eu me conecto ao meu servidor OpenVPN doméstico com o Tunnelblick.
Eu desconecto do servidor VPN. Eu mudo as redes sem fio. Isso altera meu gateway padrão.
Não consigo em nenhuma circunstância me conectar à minha rede doméstica (VPN, ping, qualquer coisa) depois que isso acontecer. Se eu apenas excluir a rota:
Funciona bem.
Pode haver um problema com a configuração do servidor / cliente OpenVPN que está deixando isso (e eu estaria interessado em descobrir o que é), mas instalei um script de pós-desconexão do Tunnelblick que automatiza essa exclusão de rota.
Primeiro você precisa de uma rota para sua interface de rede. Se a VPN estiver desconectada, basta desativar sua interface de rede e trazê-la de volta com ifconfig. Em seguida, use o comando route para construir seu gw padrão. Então algo como:
ifconfig en0 down
ifconfig en0 up
route add <ip address> default
Eu estava com o mesmo problema que o @Sean (também estou executando o OS X), pois quando alternei entre as redes doméstica e de trabalho, a rota padrão não estava sendo excluída.
Para completar, quando eu me conecto à minha VPN em casa e executo o seguinte comando, ele mostra o gateway padrão conforme abaixo
E quando eu desconectei, o gateway [home-ip] ainda estaria lá. Quando eu me conectava à minha rede de trabalho, não conseguia me conectar à Internet e me deparava com o mesmo problema que o OP
Eu teria que excluir manualmente a rota com
Inicialmente eu coloquei o "route -n delete" em um
post-disconnect.sh
script, mas isso foi um pouco confuso, então encontrei este linkhttps://code.google.com/p/tunnelblick/issues/detail?id=177
Aparentemente, o motivo é devido à configuração do seguinte no meu
.ovpn
arquivoO que significa que a rota está configurada como root, mas quando a conexão é desativada o usuário não é mais root, então a rota não pode ser excluída.
Comentar essas 2 linhas no meu
.ovpn
arquivo resolveu o problema, sem precisar usar um arquivopost-disconnect.sh
.