Eu tenho o mesmo problema de vez em quando com o VirtIO dispositivo de rede no Qemu / KVM. Eu contornei o problema com ifstated (8) :
# grep -e ^ifstated /etc/rc.conf.local
ifstated_flags= # enabled
O daemon é configurado para pingar o gateway padrão 172.16.0.1
a cada 30 segundos:
# /etc/ifstated.conf
net = '( "ping -nq -c 3 -w 1 172.16.0.1 > /dev/null 2>&1" every 30 )'
state auto {
if ! $net {
run "ifconfig vio0 down up"
}
}
Infelizmente, a solução acima está na natureza, a mesma que a sua.