Nova 네트워크 DHCP가 force_dhcp_release=True로 IP를 해제하지 않음

Nova 네트워크 DHCP가 force_dhcp_release=True로 IP를 해제하지 않음

내가 보고 있는 문제는 nova-network가 인스턴스 종료 시 dhcprelease를 호출할 때(이로 인해)입니다.강제hcp_release=참) 주소가 항상 공개되는 것은 아닙니다(syslog에 DHCPRELEASE 요청이 표시되지 않습니다.). 그런 다음 나중에 nova가 이전과 동일한 IP 주소를 새 인스턴스에 할당하면~ 아니다해제된 DHCP 요청은 무시되고 IP 주소가 이미 다른 MAC 주소(이전 종료된 VM에 속한 주소)에 임대되었기 때문에 dnsmasq가 요청을 확인하고 거부했다는 오류가 syslog에 표시됩니다.

내 설정에 대한 세부정보:

  • Juno 출시
  • 레거시(nova-) 네트워크
  • 우분투 14.04
  • DNSMASQ가 DHCP를 처리합니다.

호스트가 DHCP 서버에서 IP 주소를 얻을 수 있으면 모든 것이 완벽하게 작동하는 것처럼 보입니다. IP가 해제되지 않고 향후 VM에 대한 후속 사용을 차단하는 경우에만 오류가 발생하는 것 같습니다.

내 nova-* 로그에 오류가 있는지 확인했는데 아무 것도 표시되지 않습니다.dnsmasq가 MAC 주소 충돌로 인해 IP 주소 임대를 거부할 때 내 syslog에 유일한 오류가 있습니다..

어떤 정보나 제안이라도 대단히 감사하겠습니다.

답변1

여전히 이 문제에 대한 완벽한 해결책을 찾을 수는 없지만 문제 영역을 찾았고 몇 가지 해결 방법이 있습니다.

1. 문제 영역:문제는 OpenStack이 아닌 dnsmasq에 있습니다. OpenStack이 매번 인스턴스를 종료한 후 "dhcprelease" 기능을 실행하지만 dnsmasq는 소수의 dhcprelease 요청에만 응답하는 것을 관찰했습니다.

2. 해결 방법:모든 lP의 기본 임대 시간은 24시간(86400초)입니다. 이는 각 인스턴스가 24시간마다 임대를 갱신해야 함을 의미합니다. 인스턴스가 IP 임대를 갱신하지 않으면 dnsmasq는 해당 임대가 유효하지 않은 것으로 간주하고 해당 임대로 얻은 IP를 해제합니다.
그 임대 시간을 3분(180초)으로 줄였습니다. 따라서 모든 임대는 인스턴스 종료 후 3분 이상 IP를 보유할 수 없습니다.

임대 시간을 3분으로 줄이는 단계:

모든 컴퓨팅 노드에서 다음 단계를 하나씩 수행합니다.

  1. /etc/nova/nova.conf 파일을 엽니다.

vi /etc/nova/nova.conf

  1. [DEFAULT] 섹션에서 dhcp_lease_time을 구성합니다.
    초 단위입니다.

[기본값]
...
dhcp_lease_time = 180

  1. 파일을 저장하고 종료합니다.

  2. 서버의 각 브리지에 대해 dnsmasq 프로세스를 종료합니다. (또는 dnsmasq가 다른 목적으로 사용되지 않는 경우에도 killall을 수행할 수 있습니다)

죽이기(또는 killall dnsmasq)

  1. 서비스를 다시 시작합니다.

nova-api-metadata
재시작 nova-compute
재시작 nova-network 재시작

관련 정보