[ClusterLabs] About RA ocf:heartbeat:portblock

Murat Inal mrt_nl at hotmail.com
Fri Oct 18 18:45:48 UTC 2024


Hi Oyvind,

Probably current portblock has a bug. It CREATES netfilter rule on 
start(), however DOES NOT DELETE the rule on stop().

Here is the configuration of my simple 2 node + 1 qdevice cluster;


node 1: node-a-knet \
     attributes standby=off
node 2: node-b-knet \
     attributes standby=off
primitive r-porttoggle portblock \
     params action=block direction=out ip=172.16.0.1 portno=1234 
protocol=udp \
     op monitor interval=10s timeout=10s \
     op start interval=0s timeout=20s \
     op stop interval=0s timeout=20s
primitive r-vip IPaddr2 \
     params cidr_netmask=24 ip=10.1.6.253 \
     op monitor interval=10s timeout=20s \
     op start interval=0s timeout=20s \
     op stop interval=0s timeout=20s
colocation c1 inf: r-porttoggle r-vip
order o1 r-vip r-porttoggle
property cib-bootstrap-options: \
     have-watchdog=false \
     dc-version=2.1.6-6fdc9deea29 \
     cluster-infrastructure=corosync \
     cluster-name=testcluster \
     stonith-enabled=false \
     last-lrm-refresh=1729272215


- I checked the switchover and observed netfilter chain (watch sudo 
iptables -L OUTPUT) real-time,

- Tried portblock with parameter direction=out & both.

- Checked if the relevant functions IptablesBLOCK() & IptablesUNBLOCK() 
are executing (by inserting syslog mark messages inside). They do run.

However rule is ONLY created, NEVER deleted.

Any suggestions?


On 10/9/24 11:26, Oyvind Albrigtsen wrote:

> Correct. That should block the port when the resource is stopped on a
> node (e.g. if you have it grouped with the service you're using on the
> port).
>
> I would do some testing to ensure it works exactly as you expect. E.g.
> you can telnet to the port, or you can run nc/socat on the port and
> telnet to it from the node it blocks/unblocks. If it doesnt accept
> the connection you know it's blocked.
>
>
> Oyvind Albrigtsen
>
> On 06/10/24 22:46 GMT, Murat Inal wrote:
>> Hello,
>>
>> I'd like to confirm with you the mechanism of ocf:heartbeat:portblock.
>>
>> Given a resource definition;
>>
>> Resource: r41_LIO (class=ocf provider=heartbeat type=portblock)
>>   Attributes: r41_LIO-instance_attributes
>>     action=unblock
>>     ip=10.1.8.194
>>     portno=3260
>>     protocol=tcp
>>
>> - If resource starts, TCP:3260 is UNBLOCKED.
>>
>> - If resource is stopped, TCP:3260 is BLOCKED.
>>
>> Is that correct? If action=block, it will run just the opposite, 
>> correct?
>>
>> To toggle a port, a single portblock resource is enough, correct?
>>
>> Thanks,
>>
>> _______________________________________________
>> Manage your subscription:
>> https://lists.clusterlabs.org/mailman/listinfo/users
>>
>> ClusterLabs home: https://www.clusterlabs.org/
>
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
>
> ClusterLabs home: https://www.clusterlabs.org/


More information about the Users mailing list