O problema é que sua interface en0
está adicionando uma rota padrão que está tomando precedência sobre a rota padrão estabelecida pela interface 802.11. Não sei exatamente por que, mas é também o fato de que o BSD está preferindo uma interface com fio por um sem fio, ou está preferindo uma interface configurada estaticamente sobre uma interface configurada dinamicamente. Você pode dizer que a rota padrão en0
está sendo usada pela coluna Refs
; Refs
é uma métrica que indica o número atual de usos ativos da rota, para que possamos ver que ela está recebendo todo o tráfego.
A solução é remover essa rota, preferencialmente permanentemente da tabela de roteamento, para que o tráfego destinado a outros hosts que não sejam em suas redes locais atravesse o gateway padrão estabelecido pelo DHCP em en1
. A primeira coisa que eu verificaria seria no painel de configuração para en0
, para garantir que você não inseriu nada no campo router
. As informações nesse campo são adicionadas como um gateway padrão. Se isso não funcionar, precisamos excluir manualmente a rota, a razão pela qual route flush
não funciona é que acredito que ele informe ao OS X para recarregar as informações de roteamento dos arquivos de configuração da interface, portanto, revertendo sua alteração após um curto período de tempo. O comando a seguir deve remover a rota padrão para a interface en0
até que a rede seja reiniciada ou o sistema seja IPLed:
sudo route delete -net 0.0.0.0 192.168.2.1
Se você quiser tornar esta mudança permanente, você pode a) criar um serviço em /Library/StartupItems
, o que parece ser muito trabalhoso para mim ou b) adicionar essa linha a /etc/rc.local
com um comando como:
echo 'route delete -net 0.0.0.0 192.168.2.1' >> /etc/rc.local
Pode ser necessário adicionar um comando sleep <number_of_seconds>
antes dessa linha em /etc/rc.local
para evitar a execução do comando antes que as interfaces fiquem totalmente ativas e a tabela de roteamento estabelecida.
Espero que isso ajude e boa sorte!