vm boot failure because of wrong mac address
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
Boden R |
Bug Description
Hi,
I used same base_mac configuration as previous release. It is "base_mac = 00:05:86:00:00:00".
As the comments in /etc/neutron.conf, the mac address should be fixed in first 3 octets.
# The base MAC address Neutron will use for VIFs. The first 3 octets will
# remain unchanged. If the 4th octet is not 00, it will also be used. The
# others will be randomly generated. (string value)
But in my case, it generated below mac address(
It complains "expected unicast mac address, found multicast '9d:05:
Below is nova-compute log:
2017-09-28 10:16:13.553 18290 INFO os_vif [req-9047022d-
2017-09-28 10:16:13.555 18290 ERROR nova.virt.
<uuid>
<name>
<memory>
<vcpu>2</vcpu>
<metadata>
<nova:instance xmlns:nova="http://
<nova:package version=
<
<
<nova:flavor name="2x8x60">
<
<nova:owner>
<nova:user uuid="928cd394b
</nova:owner>
<nova:root type="image" uuid="9f3c23db-
</nova:
</metadata>
<sysinfo type="smbios">
<system>
<entry name="manufactu
<entry name="product"
<entry name="version"
<entry name="serial"
<entry name="uuid"
<entry name="family"
</system>
</sysinfo>
<os>
<type>
<boot dev="hd"/>
<smbios mode="sysinfo"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cputune>
<shares>
</cputune>
<clock offset="utc">
<timer name="pit" tickpolicy=
<timer name="rtc" tickpolicy=
<timer name="hpet" present="no"/>
</clock>
<cpu mode="host-model" match="exact">
<topology sockets="2" cores="1" threads="1"/>
</cpu>
<devices>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2" cache="none"/>
<source file="/
<target bus="virtio" dev="vda"/>
</disk>
<interface type="bridge">
<mac address=
<model type="virtio"/>
<source bridge=
<target dev="tap56595ff
</interface>
<serial type="file">
<source path="/
</serial>
<serial type="pty"/>
<input type="tablet" bus="usb"/>
<graphics type="vnc" autoport="yes" keymap="en-us" listen=
<video>
<model type="cirrus"/>
</video>
<memballoon model="virtio">
<stats period="10"/>
</memballoon>
</devices>
</domain>
: libvirtError: XML error: expected unicast mac address, found multicast '9d:05:86:ba:64:a5'
2017-09-28 10:16:13.556 18290 ERROR nova.virt.
Version:
Pike on CentOS 7:
openstack-
openstack-
openstack-
python-
python-
openstack-
description: | updated |
summary: |
- vm boot failure because wrong mac address + vm boot failure because of wrong mac address |
Changed in neutron: | |
status: | New → Confirmed |
Changed in neutron: | |
assignee: | nobody → Boden R (boden) |
importance: | Undecided → Medium |
tags: | added: lib |
I think I see the problem. The configuration option in neutron has the comment you posted above:
"The first 3 octets will remain unchanged. If the 4th "
"octet is not 00, it will also be used. The others "
"will be randomly generated."
Neutron now uses the get_random_mac() code in neutron-lib, which has a different comment:
"""Get a random MAC address string of the specified base format.
Any part that is '00' will be randomized
That's obviously not going to produce the same results.
It was broken in this change:
commit 4a78c722aa4c6cb f6fafb5c1c57735 31710ab013
Author: Martin Roy <email address hidden>
Date: Mon Nov 21 16:15:50 2016 -0500
Make the get_random_mac more versatile
The past version was not well documented and could use
a little dusting. This new version offers a custom OUI size.
This is a random code enhancement.