Nova network DHCP не освобождает IP с force_dhcp_release=True

Nova network DHCP не освобождает IP с force_dhcp_release=True

Проблема, которую я вижу, заключается в том, что когда nova-network вызывает dhcprelease при завершении работы экземпляра (из-заforcehcp_release=True) адрес не всегда выдается(syslog не отображает запрос DHCPRELEASE). Затем, если позже nova присвоит новому экземпляру тот же IP-адрес, который былнетосвобожденный DHCP-запрос игнорируется, а ошибка в системном журнале покажет, что dnsmasq увидел запрос и отклонил его, поскольку IP-адрес уже был арендован для другого MAC-адреса (принадлежащего старой, завершенной виртуальной машине).

Некоторые подробности о моей установке:

  • релиз Джуно
  • устаревшая (nova-) сеть
  • Убунту 14.04
  • DHCP обрабатывается DNSMASQ.

Когда хосты могут получить свой IP-адрес от DHCP-сервера, все, кажется, работает отлично. Кажется, что ошибка возникает только тогда, когда IP не освобождается и блокирует его последующее использование для будущих виртуальных машин.

Я проверил наличие ошибок в журналах nova-* и не обнаружил ни одной.Единственные ошибки в моем системном журнале, когда dnsmasq отказывается арендовать IP-адрес из-за конфликта MAC-адресов..

Любая информация или предложения будут высоко оценены.

решение1

Я все еще не могу найти идеального решения этой проблемы, но я нашел проблемную область и нашел несколько обходных путей.

1. Проблемная область:Проблема в dnsmasq, а не в OpenStack. Я заметил, что OpenStack выполняет функцию «dhcprelease» после завершения экземпляра каждый раз, но dnsmasq отвечает только на несколько запросов dhcprelease.

2. Обходной путь:Время аренды любого IP по умолчанию составляет 24 часа (86400 секунд), что означает, что каждый экземпляр должен продлевать свою аренду каждые 24 часа. Если экземпляр не продлит аренду IP, то dnsmasq посчитает эту аренду недействительной и освободит IP, полученный по этой аренде.
Я сократил эту аренду до 3 минут (180 секунд). Таким образом, любая аренда не сможет удерживать IP более 3 минут после завершения экземпляра.

Действия по сокращению времени аренды до 3 минут:

Выполните следующие шаги на всех вычислительных узлах поочередно.

  1. Откройте файл /etc/nova/nova.conf

vi /etc/nova/nova.conf

  1. В разделе [DEFAULT] настройте dhcp_lease_time.
    Он указывается в секундах.

[ПО УМОЛЧАНИЮ]
...
dhcp_lease_time = 180

  1. Сохраните и закройте файл.

  2. Уничтожьте процесс dnsmasq для каждого моста на сервере. (ИЛИ вы можете также выполнить killall, если dnsmasq не используется для других целей)

убить (ИЛИ убить все dnsmasq)

  1. Перезапустите службы.

перезапустить nova-api-metadata
перезапустить nova-compute
перезапустить nova-network

Связанный контент