A documentação da Red Hat e da IBM especifica regras que permitem mais pacotes do que realmente são necessários.
Os pacotes IP multicast não são muito diferentes dos pacotes IP unicast, a única diferença (além de como eles são enviados na camada 2 e roteados) é o endereço de destino, que deve estar no intervalo 224.0.0.0/ 4.
Como descrito na Falha do servidor , as seguintes regras podem ser usadas para um único toque do Corosync (supondo que OUTPUT
chain não bloqueia nenhum tráfego):
iptables -A INPUT -p igmp -i $corosync_interface -j ACCEPT
for src_addr in $ip_addr_self $ip_addr_partner1 $ip_addr_partner2; do
iptables -A INPUT -i $corosync_interface -s $src_addr -d $ip_addr_self \
-p udp --source-port $(($corosync_port - 1)) \
--destination-port $corosync_port -j ACCEPT
iptables -A INPUT -i $corosync_interface -s $src_addr -d $ip_addr_mcast \
-p udp --source-port $(($corosync_port - 1)) \
--destination-port $corosync_port -j ACCEPT
done
Neste exemplo, as seguintes variáveis são assumidas como definidas:
-
$corosync_interface
: a interface de rede usada pelo Corosync -
$ip_addr_self
: o endereço IP ao qual o Corosync se vincula localmente (especificado comobindnetaddr
incorosync.conf
) -
$ip_addr_partner1
,$ip_addr_partner2
: os endereços IP dos outros nós do Corosync - mais podem ser adicionados se o cluster tiver mais de três nós. -
$ip_addr_mcast
: o endereço multicast usado para o Corosync (especificado comomcastaddr
incorosync.conf
) -
$corosync_port
: a porta (destino) usada pelo Corosync (especificada comomcastport
incorosync.conf
)
Para vários toques, a mesma abordagem pode ser usada com o nome da interface, endereços IP e números de porta alterados para corresponder às respectivas definições.
Em comparação com as regras especificadas na documentação, as regras acima são restritas a interfaces específicas, endereços de origem e portas de origem e a porta de destino é limitada a uma única porta. Na verdade, o Corosync não envia pacotes para mais de uma porta de destino, apenas usa uma porta diferente (porta de destino menos uma) para enviar dados do que para receber dados.