ovn-dbs is missing firewall port for pacemaker control port

Bug #1834856 reported by Michele Baldessari
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Michele Baldessari

Bug Description

When an OCF bundle is managed by pacemaker it runs pacemaker-remote inside the container. The communication between the pacemaker cluster and the remote happens through a so-called control port. In the case of ovn-dbs, this port is set to 3125 by default: https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/pacemaker/ovn_dbs_bundle.pp#L62

We need to make sure that the cluster is always able to connect to said port as the connection might come from a cluster node that is not the same node where the ovn bundle is running.

This has worked so far only by pure luck because pacemaker will retry the connection from each controller node and eventually when the connection comes from the same host as the one where the bundle is running it succeeds (INPUT rules do not apply to same-host connections).

First spotted via https://bugzilla.redhat.com/show_bug.cgi?id=1712896

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (master)

Fix proposed to branch: master
Review: https://review.opendev.org/668462

Changed in tripleo:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (stable/stein)

Fix proposed to branch: stable/stein
Review: https://review.opendev.org/668882

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.opendev.org/668462
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=8775e2d5aa3e29137aadd2419ca89fbec4beb499
Submitter: Zuul
Branch: master

commit 8775e2d5aa3e29137aadd2419ca89fbec4beb499
Author: Michele Baldessari <email address hidden>
Date: Mon Jul 1 14:52:21 2019 +0200

    Fix ovn dbs control port

    When an OCF bundle is managed by pacemaker it runs pacemaker-remote
    inside the container. The communication between the pacemaker cluster
    and the remote happens through a so-called control port. In the case of
    ovn-dbs, this port is set to 3125 by default:
    https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/pacemaker/ovn_dbs_bundle.pp#L62

    We need to make sure that the cluster is always able to connect to said
    port as the connection might come from a cluster node that is not the
    same node where the ovn bundle is running.

    This has worked so far only by pure luck because pacemaker will retry
    the connection from each controller node and eventually when the
    connection comes from the same host as the one where the bundle is
    running it succeeds (INPUT rules do not apply to same-host connections).

    Tested and correctly observed port 3125/tcp being open in iptables:
    * Before
    [root@controller-0]# iptables -nvL INPUT |grep 3125
    [root@controller-0]#

    * After
    [root@controller-0]# iptables -nvL INPUT |grep 3125
        0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 3125,6641,6642 state NEW /* 121 OVN DB server ports ipv4 */

    Closes-Bug: #1834856
    Change-Id: Ia455702d75a450f1c3ac88ed69853e9b98b98644

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (stable/stein)

Reviewed: https://review.opendev.org/668882
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=743b8169299eb7a7c261e82127a899d08375c3b4
Submitter: Zuul
Branch: stable/stein

commit 743b8169299eb7a7c261e82127a899d08375c3b4
Author: Michele Baldessari <email address hidden>
Date: Mon Jul 1 14:52:21 2019 +0200

    Fix ovn dbs control port

    When an OCF bundle is managed by pacemaker it runs pacemaker-remote
    inside the container. The communication between the pacemaker cluster
    and the remote happens through a so-called control port. In the case of
    ovn-dbs, this port is set to 3125 by default:
    https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/pacemaker/ovn_dbs_bundle.pp#L62

    We need to make sure that the cluster is always able to connect to said
    port as the connection might come from a cluster node that is not the
    same node where the ovn bundle is running.

    This has worked so far only by pure luck because pacemaker will retry
    the connection from each controller node and eventually when the
    connection comes from the same host as the one where the bundle is
    running it succeeds (INPUT rules do not apply to same-host connections).

    Tested and correctly observed port 3125/tcp being open in iptables:
    * Before
    [root@controller-0]# iptables -nvL INPUT |grep 3125
    [root@controller-0]#

    * After
    [root@controller-0]# iptables -nvL INPUT |grep 3125
        0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 3125,6641,6642 state NEW /* 121 OVN DB server ports ipv4 */

    Closes-Bug: #1834856
    Change-Id: Ia455702d75a450f1c3ac88ed69853e9b98b98644

tags: added: in-stable-stein
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 11.1.0

This issue was fixed in the openstack/tripleo-heat-templates 11.1.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 10.6.1

This issue was fixed in the openstack/tripleo-heat-templates 10.6.1 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.