Cause: IPv6 addresses should be expressed either with no leading zeros, or with enough leading zeroes to pad out the full address.
Consequence: If an IPv6 is supplied with only some of the leading zeroes, this will cause the IP address to be interpreted incorrectly.
Workaround (if any): Always use full leading zeroes, or do not use leading zeroes. For instance, the IPv6 address 2001:db8::1 may also be expressed as 2001:db8:0001, but 2001:db8:01 will fail.
Result: You must pay attention that IPv6 addresses are specified in the above way, or deployment may fail as a result.
Created attachment 1118437[details]
/var/log/messages
Description of problem:
When one of the leading zeros of the last IPv6 quartet is omitted the public VIP gets set on all 3 controllers.
Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-0.8.6-112.el7ost.noarch
How reproducible:
100%
Steps to Reproduce:
1. Deploy IPv6 enabled overcloud with the following external allocation pool:
ExternalInterfaceDefaultRoute: 2001:db8:fd00:1000:dead:beef:cafe:f00
ExternalNetCidr: '2001:db8:fd00:1000::/64'
ExternalAllocationPools: [{'start': '2001:db8:fd00:1000:dead:beef:cafe:001', 'end': '2001:db8:fd00:1000:dead:beef:cafe:009'}]
Actual results:
stack@instack:~>>> for ctrl in $(nova list | grep controller | awk {'print $12'} | awk -F'=' {'print $2'}); do ssh heat-admin@$ctrl 'cat /etc/hostname; /usr/sbin/ip a s dev vlan10 | grep inet6 | grep 2001';done
overcloud-controller-0.localdomain
inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global tentative dadfailed
inet6 2001:db8:fd00:1000:dead:beef:cafe:3/64 scope global
overcloud-controller-1.localdomain
inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global tentative dadfailed
inet6 2001:db8:fd00:1000:dead:beef:cafe:2/64 scope global
overcloud-controller-2.localdomain
inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global
inet6 2001:db8:fd00:1000:dead:beef:cafe:4/64 scope global
ip-2001.db8.fd00.1000.dead.beef.cafe.001 (ocf::heartbeat:IPaddr2): Stopped
Expected results:
The VIP resource is started and the IP address gets set only on one of the nodes at a time.
Additional info:
Attaching /var/log/messages.
(In reply to Marius Cornea from comment #0)
Marius,
It sounds like this does not occur if the leading zero is not omitted? So, if we tell people to use this:
[{'start': '2001:db8:fd00:1000:dead:beef:cafe:0001', 'end': '2001:db8:fd00:1000:dead:beef:cafe:0009'}]
Instead of this:
[{'start': '2001:db8:fd00:1000:dead:beef:cafe:001', 'end': '2001:db8:fd00:1000:dead:beef:cafe:009'}]
Then it works?
I need to understand what the workaround is to help write the release note.
Created attachment 1118437 [details] /var/log/messages Description of problem: When one of the leading zeros of the last IPv6 quartet is omitted the public VIP gets set on all 3 controllers. Version-Release number of selected component (if applicable): openstack-tripleo-heat-templates-0.8.6-112.el7ost.noarch How reproducible: 100% Steps to Reproduce: 1. Deploy IPv6 enabled overcloud with the following external allocation pool: ExternalInterfaceDefaultRoute: 2001:db8:fd00:1000:dead:beef:cafe:f00 ExternalNetCidr: '2001:db8:fd00:1000::/64' ExternalAllocationPools: [{'start': '2001:db8:fd00:1000:dead:beef:cafe:001', 'end': '2001:db8:fd00:1000:dead:beef:cafe:009'}] Actual results: stack@instack:~>>> for ctrl in $(nova list | grep controller | awk {'print $12'} | awk -F'=' {'print $2'}); do ssh heat-admin@$ctrl 'cat /etc/hostname; /usr/sbin/ip a s dev vlan10 | grep inet6 | grep 2001';done overcloud-controller-0.localdomain inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global tentative dadfailed inet6 2001:db8:fd00:1000:dead:beef:cafe:3/64 scope global overcloud-controller-1.localdomain inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global tentative dadfailed inet6 2001:db8:fd00:1000:dead:beef:cafe:2/64 scope global overcloud-controller-2.localdomain inet6 2001:db8:fd00:1000:dead:beef:cafe:1/64 scope global inet6 2001:db8:fd00:1000:dead:beef:cafe:4/64 scope global ip-2001.db8.fd00.1000.dead.beef.cafe.001 (ocf::heartbeat:IPaddr2): Stopped Expected results: The VIP resource is started and the IP address gets set only on one of the nodes at a time. Additional info: Attaching /var/log/messages.