IPv6 VIPs are created with /64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
puppet-pacemaker |
Fix Released
|
Undecided
|
Michele Baldessari | ||
tripleo |
Fix Released
|
High
|
Michele Baldessari |
Bug Description
From https:/
The problem is that the VIPs are on the same network as the "normal"
controller interfaces, and it causes problems with routing when a VIP
moves.
Consider controller ctrl-r00-00. It has IPv6 address
fd00:fd00:
network.
The internalapi VIP has IPv6 address fd00:fd00:
vlan200, the internalapi network.
Now, when the VIP resource is active on ctrl-r00-00, the vlan200
interface has both addresses. There also exists a route to
fd00:fd00:
What happens when galera starts, and the replication connects to the
other cluster members? The configuration item used is:
wsrep_cluster_
(this is an attribute on the galera resource)
Next, ctrl-r00-00 does a name lookup for ctrl-r01-01, which is:
[root@ctrl-r00-00 ~]# getent hosts ctrl-r01-01
fd00:fd00:
So we need to make a connection to fd00:fd00:
we have a route for that network on dev vlan200, but we have two valid
IPv6 addresses on that network.
In short, the kernel chooses the VIP address as the source addr for
the connection. And that's a problem. When the VIP moves to a
different host, any outbound packets become unroutable.
So in this circumstance, ctrl-r01-01 and ctrl-r02-02 will see the
galera membership of ctrl-r00-00 as originating from the VIP, not from
the address normally associated with ctrl-r00-00. So when the VIP
moves, galera logs that a member with the VIP address went away. This
is the suspicious behavior we observed previously.
The same thing happens with RabbitMQ. Some of the inter-cluster
connections are using the VIP as a source address. When the VIP
moves, RabbitMQ sees other cluster members disappear, and things
generally fall apart from there.
Changed in puppet-pacemaker: | |
assignee: | Michele Baldessari (michele) → Sofer Athlan-Guyot (sofer-athlan-guyot) |
Changed in puppet-pacemaker: | |
assignee: | Sofer Athlan-Guyot (sofer-athlan-guyot) → Michele Baldessari (michele) |
Changed in puppet-pacemaker: | |
status: | In Progress → Fix Released |
Changed in tripleo: | |
status: | In Progress → Fix Committed |
Changed in tripleo: | |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/460028
Review: https:/