Eu tenho uma caixa virtual do FreeBSD 8.0 com duas interfaces ethernet, em0 e em1. em0 é 192.168.1.99 e em1 é 192.168.1.100. Ambos são "Anexados a: Bridged Adapter
".
Quando os dois estão ativos, se eu disser
# route add default 192.168.1.1
# netstat -rn
# default 192.168.1.1 UGS 1 6 em0
Até aí tudo bem. Escolheu em0.
# ifconfig em0 down
# route delete 0.0.0.0
# route add default 192.168.1.1
# netstat -rn
# default 192.168.1.1 UGS 1 6 *em0*
Ok. Então ainda escolhe em0 (deve gostar mesmo) mesmo que esteja em baixo. Eu testei e se eu escolher outro ip (digamos 10.0.0.1) para o em0 ele pega o em1 para a rota.
Isso me deixa imaginando: como posso fazer o freebsd escolher o em1 como a interface de saída? No linux, lembro que poderíamos fazer isso com o argumento dev
.
P.S. Eu tentei usar a opção -interface - sem sorte. Eu tentei
# route add default 192.168.1.1 -interface 192.168.1.100
# route add default 192.168.1.1 -interface em1
O resultado foi
0.0.0.0&0xc0a80164 192.168.1.1 US 0 0 em0 =>
Estou usando o FreeBSD 8.0-STABLE. Qualquer ajuda será apreciada.
EDITAR:
No Debian Lenny, o mesmo conjunto de operações escolhe corretamente a interface up como interface de saída. Quando ambos estão em alta
route add default gw 192.168.1.1
escolhe eth2
route add padrão gw 192.168.1.1 dev eth0
escolhe eth0
Portanto, deve haver uma maneira de conseguir isso no FreeBSD, certo?