Há algumas coisas a serem lembradas ao usar o modo somente de host do VirtualBox (pelo menos V4.3.36), especialmente quando bridging não é uma opção e manual, personalizado rotas são necessárias para serem configuradas posteriormente:
-
O nó do dispositivo vboxnet0 é não disponível automaticamente após a inicialização (!)
Exceto quando você configura manualmente em/etc/network/interfaces
, o que pode interferir quando o VirtualBox tenta abrir seu próprio instância. - Ele nem está disponível quando os módulos vbox (pci | netadp | netflt | drv) são carregados.
- Usar
vboxmanage hostonlyif create
apenas adicionará o nó do dispositivo, mas deixará em estado DOWN, o que ainda não é possível de ser executado. -
O estado do dispositivo vboxnet0 permanecerá desconhecido mesmo quando a interface é ativada:
4: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> ... state UNKNOWN ...
Qualquer tentativa de usar backup eventos de/etc/network/interfaces
,ifup
ou/etc/network/if-up.d/MYSCRIPT
é inútil, pois esse estado nunca é alcançado. - No host, ele fica apenas disponível e pronto para uso quando sua primeira máquina convidada de VM for iniciada.
A única maneira de ficar entre o virtualbox e o início da sua VM que encontrei até agora é usar uma regra do udev colocando um arquivo, por exemplo: /etc/udev/rules.d/80-vboxnet
com:
KERNEL=="vboxnet0", SUBSYSTEM=="net", ACTION=="add", RUN+="/bin/bash -c '/bin/sleep 1; /sbin/ip route add x.x.x.x dev vboxnet0'"
que aciona uma instância do bash. Coloquei a instrução ip route ...
diretamente no arquivo de regras, mas, como alternativa, é possível simplesmente abrir um script em outro lugar e colocar configurações de rota adicionais lá.