Como executar um script assim que uma interface de rede é criada?

0

Eu uso o VirtualBox 5.1 no Ubuntu 16.04 Xenial com algumas VMs na rede "Host-Only" que aparece como vboxnet0 interface de rede no host. Eu quero iniciar dnsmasq com uma configuração personalizada para servir DNS e DHCP nesta rede vboxnet0 assim que a interface for criada, que é quando o aplicativo VirtualBox é executado.

Pode acionar essa inicialização de dnsmasq de alguma forma? Através do NetworkManager ou udev ou systemd?

BTW Eu não quero usar o servidor DNS / DHCP interno do VirtualBox por razões além do escopo desta questão (essencialmente opções DHCP personalizadas e redirecionadas algumas consultas DNS para as VMs).

Além disso, não consigo iniciar o dnsmasq antes vboxnet0 ser criado porque ele deve ser executado com --bind-interfaces devido ao NetworkManager já estar executando uma instância de dnsmasq para seus próprios propósitos.

    
por MLu 18.01.2017 / 06:48

1 resposta

0

A funcionalidade de executar comandos específicos quando uma interface sobe / desce é fornecida fora da caixa da maioria dos sistemas * nix. No entanto, executar um comando quando uma interface é criada pode exigir alguns scripts personalizados.

Uma maneira de fazer isso (não sei se é a melhor maneira) seria escrever um script personalizado que analise periodicamente a saída do comando ifconfig e verifique se ele contém uma entrada para vboxnet0 e executa seu comando personalizado se uma entrada para a interface vboxnet0 for encontrada.

    
por sid-m 18.01.2017 / 07:06