Somente inicie o servidor DHCP quando não houver nenhum disponível em outro lugar

0

Eu tenho uma caixa Linux portátil rodando o Ubuntu 16.04 com uma única interface de rede, que quando conectada a uma rede deve ter certeza que existe um servidor DHCP naquela rede. Dois casos:

  • (a) se já houver DHCP em execução na rede, a caixa deve apenas ter um ip lá.

  • (b) se não houver nenhum DHCP na rede, a caixa deve iniciar um servidor DHCP.

No caso de (b), tenho dnsmasq em execução. No entanto, gostaria que o sistema detectasse automaticamente (a) ou (b) e iniciasse o serviço dnsmasq dependendo do resultado.

Até agora, minha abordagem foi configurar / etc / network / interfaces para eth0 como static (como base para o DHCP fornecido internamente) e eth0: 1 como dhcp configurado. Eu tentei encontrar algo que iria iniciar / parar o serviço dnsmasq como resultado do dhcp-client depois de um link se tornar disponível, mas não conseguiu encontrar tal opção.

    
por jakob 03.08.2017 / 15:11

1 resposta

0

A maneira como eu abordaria isso seria escrever um script bash que inicie o dnsmasq com base na saída do dhclient. Se o dhclient não obtiver uma resposta, inicie o dnsmasq. Deve ser bem simples. Sem olhar, eu suponho que o dhclient dará um código de saída diferente de zero se ele falhar em obter uma concessão de DHCP.

Acione um script com o udev, ou colocando-o em / etc / network / interfaces, por exemplo, e se o dhclient fornecer um código de saída diferente de zero, inicie o dnsmasq.

    
por 03.08.2017 / 15:14