O cliente Network Connect VPN da Juniper parece deixar uma interface de rede OS X em um estado inutilizável se não for desconectada normalmente.
Editar: "desconectar normalmente" refere-se a qualquer momento em que a VPN cair por outros motivos que não sejam o clique no botão "Sair" no cliente de software. Isso acontece quando o wifi cai por tempo suficiente para fazer com que a VPN caia, ou talvez eu feche a tela do laptop sem lembrar de desconectar etc.
No terminal, um simples ping fornece o seguinte resultado:
ping: sendto: Cannot allocate memory
Reiniciar resolve o problema, mas isso é inconveniente.
O uso do ifconfig para redefinir a interface não funciona:
ifconfig en0 down
ifconfig en0 up
Nem a liberação da tabela de rotas:
route -n flush
Eu também tentei redefinir o cache DNS (completamente irrelevante, mas achei que tentaria mesmo assim). Isso obviamente não funcionou.
launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
O que finalmente funcionou de maneira confiável foi desligar o IPv4 e depois ativá-lo novamente, usando as seguintes etapas:
- Abra Preferências do Sistema
- Clique no ícone Rede
- Clique na interface quebrada.
- Clique no botão Avançado.
- Selecione TCP / IP
- Selecione "Desativado" em Configurar IPv4.
- Selecione "OK"
- Selecione "Aplicar".
- Execute as etapas 4 a 8 novamente, mas substitua 6 pelo método de configuração de IP desejado.
Então, para minha pergunta ... Existe uma maneira de obter o mesmo que os passos 1 a 9 acima na linha de comando? Idealmente, eu gostaria de poder chamar um script bash para fazer a redefinição.
Nota: Isso foi testado no OS X Mountain Lion e no OS X Yosemite. Eu pulei o OS X Mavericks, daí o motivo de eu ter omitido essa tag específica. Tenho todos os motivos para que isso se aplique ao Mavericks também, mas não posso provar.