Create corosync firewall rules independently of localnet
authorStefan Reiter <s.reiter@proxmox.com>
Mon, 1 Jul 2019 15:22:15 +0000 (17:22 +0200)
committerFabian Gr├╝nbichler <f.gruenbichler@proxmox.com>
Tue, 2 Jul 2019 07:05:44 +0000 (09:05 +0200)
commit06208a013f82b8654d009c7f6e10c2bd25b316bd
tree5a7d60aedf6e9f0329807737e3b28b58735e6c0c
parent9429bd3510d116b02b62da8e9e567051b4b69ef0
Create corosync firewall rules independently of localnet

"localnet" does not necessarily correspond to the correct network for
corosync (e.g. corosync rings/link can be run independently from other PVE
cluster service networks).

This change uses the previously introduced sub 'for_all_corosync_addresses'
to iterate through all nodes in a corosync cluster and generate rules for
all nodes and all their respective ringX_addr's it finds.

The rules are generated as strict as possible, there is a specific rule
for every remote node and every ring/link. Also, communication "between"
different links/rings is not allowed, e.g. a remote ring1_addr cannot
contact a local ring0_addr, and vice versa.

Multicast is always allowed, for backwards compatibility. Note however,
that we no longer filter on the source of inbound multicast packets,
since that would require localnet, and thus introduce the bug we're
trying to fix once again.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
src/PVE/Firewall.pm