Hi,
ich baue einen 2-node cluster auf, der auch über multicast kommuniziert. Auf beiden nodes habe ich multicast erlaubt:
/etc/sysconfig/scripts/SuSEfirewall2-custom:
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT iptables -A OUTPUT -m pkttype --pkt-type multicast -j ACCEP
ha-idg-2:~ # iptables -nvL|grep multi
ha-idg-2:~ # iptables -nvL|grep multi 711 103K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 PKTTYPE = multicast LOG flags 0 level 4 prefix "Accept Input multicast" 711 103K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PKTTYPE = multicast 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 PKTTYPE = multicast LOG flags 0 level 4 prefix "Accept Output multicast" 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PKTTYPE = multicast 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/min burst 5 PKTTYPE = multicast LOG flags 6 level 4 prefix "SFW2-INext-DROP-DEFLT " 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 PKTTYPE = multicast Die log rules hab ich für's debugging gemacht.
Die drop-Regel steht in der chain input_ext und wird m.E. ignoriert, da die ACCEPT Regel vorher greift.
Beide hosts lauschen auf multicast-Adressen:
ha-idg-1:~ # netstat -anpg IPv6/IPv4 Group Memberships Interface RefCnt Group --------------- ------ --------------------- lo 1 224.0.0.1 eth0 1 224.0.0.1 eth1 1 224.0.0.1 eth2 1 224.0.0.1 eth3 1 224.0.0.1 bond0 1 224.0.0.1 bond1 1 239.255.1.1 bond1 1 224.0.0.1 br0 1 239.255.1.2 br0 1 224.0.0.1 vnet0 1 224.0.0.1
Mal zwei prinzipielle Verständnisfragen: wird bei multicast immer udp benutzt ? Und sind multicast-Verbindungen bidirektional ? Wenn ein host Pakete an eine multicast-Adresse schickt, landen die bei allen hosts die auf diese multicast-Addresse lauschen, oder ? Wenn nun einer dieses hosts antwortet, geht dieses Paket dann zurück ? Mit welcher Absenderadresse ? Mit der multicast-Adresse oder einer dedizierten IP des antwortenden hosts ?
Wenn ich versuche per netcat die multicast-Kommunikation zu testen, funktioniert das nur teilweise. host-ha-idg-1: netcat -u -l -p 10000
dieser host lauscht dann an udp port 10000. netstat bestätigt dies: ha-idg-1:~ # netstat -anp|grep 10000 udp 0 0 0.0.0.0:10000 0.0.0.0:* 25434/netcat
Port 10000 udp habe ich auch aufgemacht, dürfte aber eigentlich nicht notwendig sein ? Ich geht mal davon aus daß zur Adresse 0.0.0.0 auch die multicast-Adressen gehören.
Auf dem zweiten host: ha-idg-2:~ # netcat -u 239.255.1.2 10000
Tippe ich nun was und schicke das mit return ab, so erscheint auf ha-idg-1 im Terminal die zweite Eingabe, nicht die erste und auch keine folgende !?!
In der anderen Richtung wird die erste Zeichenfolge übertragen, keine weitere. Ist das richtig so ?
Danke.
Bernd