DHCPv6 lease not released at VM deletion opearion

Solution Verified - Updated -

Environment

  • Red Hat OpenStack Version 10

Issue

  • dhcp6_release is unable to clean IPv6 entries from DHCP lease during VM delete operation in RHOSP 10 environment.

    # cat /var/lib/neutron/dhcp/0c3af617-acd3-4bd3-86d2-7cdba82893c5/leases
    duid xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
    1518436189 1055540937 xxxx:xxxx:xxxx:xxx::xx host-xxxx-xxxx-xxxx-xxx--xx xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
    

Resolution

  • The RFE has raised to the engineering team for backporting.

Root Cause

  • In RHOS10, the rpm dnsmasq-utils-2.66-21.el7.x86_64 does not have dhcp6_release binary which is the root cause of the issue.

    @overcloud-controller-0 ~]# cat /etc/redhat-release;rpm -ql dnsmasq-utils-2.66-21.el7.x86_64
    Red Hat Enterprise Linux Server release 7.4 (Maipo)
    /usr/bin/dhcp_lease_time
    /usr/bin/dhcp_release
    /usr/share/man/man1/dhcp_lease_time.1.gz
    /usr/share/man/man1/dhcp_release.1.gz
    
  • Currently the dhcp6_release binary is belongs to dnsmasq-utils-2.76-2.el7_4.2.x86_64 package which is avaible in RHOSP12 repository.

    # rpm -ql dnsmasq-utils-2.76-2.el7_4.2.x86_64
    /usr/bin/dhcp_lease_time
    /usr/bin/dhcp_release
    /usr/bin/dhcp_release6
    /usr/share/man/man1/dhcp_lease_time.1.gz
    /usr/share/man/man1/dhcp_release.1.gz
    /usr/share/man/man1/dhcp_release6.1.gz
    
    # yum info dnsmasq-utils-2.76-2.el7_4.2.x86_64
    Loaded plugins: product-id, search-disabled-repos, subscription-manager
    Installed Packages
    Name        : dnsmasq-utils
    Arch        : x86_64
    Version     : 2.76
    Release     : 2.el7_4.2
    Size        : 39 k
    Repo        : installed
    From repo   : rhel-7-server-openstack-12-rpms
    Summary     : Utilities for manipulating DHCP server leases
    URL         : http://www.thekelleys.org.uk/dnsmasq/
    License     : GPLv2 or GPLv3
    Description : Utilities that use the standard DHCP protocol to
                : query/remove a DHCP server's leases.
    

Diagnostic Steps

  • Verify the dhcp-agent.log, which threw the exception that dhcp_release6 is not present on this system.

    2018-02-12 08:28:58.306 97074 DEBUG neutron.agent.linux.utils [req-ef61cc7b-5e3b-4e9d-b942-65246f63a126 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Running command: ['env', 'LC_ALL=C', 'dhcp_release6', '--help'] create_process /usr/lib/python2.7/site-packages/neutron/agent/linux/utils.py:89
    2018-02-12 08:28:58.313 97074 ERROR neutron.agent.linux.utils [req-ef61cc7b-5e3b-4e9d-b942-65246f63a126 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Exit code: 127; Stdin: ; Stdout: ; Stderr: env: dhcp_release6: No such file or directory
    2018-02-12 08:28:58.314 97074 DEBUG neutron.cmd.sanity.checks [req-ef61cc7b-5e3b-4e9d-b942-65246f63a126 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Exception while checking dhcp_release6. Exception: Exit code: 127; Stdin: ; Stdout: ; Stderr: env: dhcp_release6: No such file or directory
     dhcp_release6_supported /usr/lib/python2.7/site-packages/neutron/cmd/sanity/checks.py:226
    2018-02-12 08:28:58.314 97074 WARNING neutron.agent.linux.dhcp [req-ef61cc7b-5e3b-4e9d-b942-65246f63a126 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] dhcp_release6 is not present on this system, will not call it again.
    2018-02-12 10:47:29.968 345841 DEBUG neutron.agent.linux.utils [req-a3a679b6-ba45-4ed0-b9f8-68302d338cd3 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Running command: ['env', 'LC_ALL=C', 'dhcp_release6', '--help'] create_process /usr/lib/python2.7/site-packages/neutron/agent/linux/utils.py:89
    2018-02-12 10:47:29.975 345841 ERROR neutron.agent.linux.utils [req-a3a679b6-ba45-4ed0-b9f8-68302d338cd3 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Exit code: 127; Stdin: ; Stdout: ; Stderr: env: dhcp_release6: No such file or directory
    2018-02-12 10:47:29.976 345841 DEBUG neutron.cmd.sanity.checks [req-a3a679b6-ba45-4ed0-b9f8-68302d338cd3 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] Exception while checking dhcp_release6. Exception: Exit code: 127; Stdin: ; Stdout: ; Stderr: env: dhcp_release6: No such file or directory
     dhcp_release6_supported /usr/lib/python2.7/site-packages/neutron/cmd/sanity/checks.py:226
    2018-02-12 10:47:29.976 345841 WARNING neutron.agent.linux.dhcp [req-a3a679b6-ba45-4ed0-b9f8-68302d338cd3 9e16ad0a563d436e9f83533773c19e14 5f1b1e40249641ac9c96cf779b60119c - - -] dhcp_release6 is not present on this system, will not call it again.
    

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments