Ich habe 3 Dienste in Docker-Compose definiert. Einer von ihnen sendet ein Multicast, das von den anderen 2 Diensten empfangen werden sollte, aber nur einer von ihnen empfängt es. Die 2 Empfänger befinden sich in unterschiedlichen Netzwerken und der Sender ist Teil beider Netzwerke.Multicast wird nicht an alle Docker-Container gesendet
Docker-compose.yml:
services:
sender:
networks:
- network_a
- network_b
receiver1:
networks:
- network_a
depends_on:
- sender
receiver2:
networks:
- network_b
depends_on:
- sender
networks:
network_a:
ipam:
driver: default
config:
- subnet: 172.20.1.0/24
gateway: 172.20.1.1
network_b:
ipam:
driver: default
config:
- subnet: 172.20.2.0/24
gateway: 172.20.2.1
receiver1 erhält die Multicast aber Empfänger2 nicht.
Wenn ich network_a aus Sendernetzwerkfeld entfernen, empfängt Receiver2 die Nachricht. Irgendwie funktioniert Multicast nicht in mehreren Netzwerken.
Weiß jemand, warum das passiert?
siehe hier: https://github.com/docker/docker/issues/23659 Zitat von dort: "Wenn Sie keine lokale Schnittstellenadresse an den Multicast-Sender-Socket binden, wird Linux (afaik) Wählen Sie Ihre Standardrouten-Schnittstellenadresse. " – CFrei
@CFrei Vielen Dank, Sie hatten Recht, das war der Weg zur Lösung. – timeFly