DHCP da rede Nova não libera ip com force_dhcp_release=True

DHCP da rede Nova não libera ip com force_dhcp_release=True

O problema que estou vendo é que quando a nova-network chama dhcprelease após o encerramento da instância (devido aforçadohcp_release = Verdadeiro) nem sempre o endereço é divulgado(syslog não está mostrando solicitação DHCPRELEASE). Mais tarde, se nova atribuiu a uma nova instância o mesmo endereço IP que foinãoliberada, a solicitação DHCP é ignorada e um erro no syslog mostrará que o dnsmasq viu a solicitação e recusou porque o endereço IP já foi alugado para um endereço MAC diferente (aquele pertencente à VM antiga e encerrada).

Alguns detalhes sobre minha configuração:

  • Lançamento Juno
  • rede legada (nova-)
  • Ubuntu 14.04
  • DHCP gerenciado por DNSMASQ.

Quando os hosts conseguem obter seus endereços IP do servidor DHCP, tudo parece estar funcionando perfeitamente. Parece que o erro ocorre apenas quando um IP não é liberado e bloqueia o uso subsequente dele para futuras VMs.

Verifiquei se há erros em meus logs nova-* e não vejo nenhum.Os únicos erros estão no meu syslog quando o dnsmasq se recusa a alugar o endereço IP devido aos endereços MAC conflitantes.

Qualquer informação ou sugestão seria muito apreciada.

Responder1

Ainda não consigo encontrar a solução perfeita para esse problema, mas encontrei a área do problema e tenho alguma solução alternativa.

1. Área problemática:O problema está no dnsmasq e não no OpenStack. Observei que o OpenStack está executando a função “dhcprelease” após encerrar a instância todas as vezes, mas o dnsmasq está respondendo apenas a algumas solicitações de dhcprelease.

2. Solução alternativa:O tempo de concessão padrão de qualquer IP é de 24 horas (86.400 segundos), o que significa que cada instância deve renovar sua concessão a cada 24 horas. Se a instância não renovar sua concessão de IP, o dnsmasq considerará essa concessão inválida e liberará o IP obtido por essa concessão.
Reduzi esse aluguel para 3 minutos (180 segundos). Portanto, qualquer concessão não poderá reter o IP por mais de 3 minutos após o encerramento da instância.

Passos para reduzir o tempo de locação para 3 minutos:

Execute as etapas a seguir em todos os nós de computação, um por um.

  1. Abra um arquivo /etc/nova/nova.conf

vi /etc/nova/nova.conf

  1. Na seção [DEFAULT], configure dhcp_lease_time.
    Está em segundos.

[PADRÃO]
...
dhcp_lease_time = 180

  1. Salve e saia do arquivo.

  2. Elimine o processo dnsmasq para cada ponte no servidor. (OU você também pode executar killall se o dnsmasq não for usado para outros fins)

matar (OU matar todos dnsmasq)

  1. Reinicie os serviços.

reiniciar nova-api-metadata
reiniciar nova-compute
reiniciar nova-network

informação relacionada