ich versuche jetzt schon eine ganze Weile ein virtuelles Netzwerk aufzubauen.
Hintergrund:
Ich habe eine Applikation, die ein IEC61850 Protokoll spricht. Dies beinhaltet zwei Kommunikationprotokolle:
- MMS, TCP/IP basiert
- GOOSE, Layer 2
Die Applikation kann entweder als Server oder als Client agieren. Als Server kann sie sowohl GOOSE als auch MMS senden und empfangen, als Client nur MMS.
Ich möchte diese Applikation auf meinem Rechner testen, indem ich drei Instanzen, 2 Server und 1 Client, über ein virtuelles lokales Netzwerk kommunizieren lasse. Jede Applikation soll ihre eigene NIC/IP bekommen.
Nachdem ich etwas recherchiert habe, habe ich folgenden Ansatz probiert:
Code: Alles auswählen
sudo ip link add eth10 type dummy
sudo ip link add eth11 type dummy
sudo ip link add eth12 type dummy
sudo ip link add br0 type bridge
sudo ip link set dev eth10 master br0
sudo ip link set dev eth11 master br0
sudo ip link set dev eth12 master br0
sudo ip addr add 192.168.42.42/24 dev eth10
sudo ip addr add 192.168.42.43/24 dev eth11
sudo ip addr add 192.168.42.44/24 dev eth12
sudo ip link set dev eth10 up
sudo ip link set dev eth11 up
sudo ip link set dev eth12 up
sudo ip link set dev br0 up
Client: eth10
Server1: eth11
Server2: eth12
Leider funktioniert das nur Teilweise und was ich per Wireshark beobachte verwirrt mich etwas. Ich habe für jedes Interface eine Wireshark Aufzeichnung laufen und zusätzlich noch eine für "localhost".
Die MMS Zugriffe vom Client auf die Server funktionieren. Allerdings sind die Zugriffe in Wireshark nur auf "localhost" sichtbar und die Quell- und Ziel-IP sind immer identisch.
Die GOOSE Kommunikation funktioniert gar nicht und ich sehe die Pakete nur auf der Schnittstelle, die dem Sender zugeordnet ist. Beim Empfänger kommt nichts an.
Ich hoffe das ist alles halbwegs verständlich. Vermutlich ist mein Problem etwas exotisch, aber vielleicht kann mir ja trotzdem jemand weiter helfen. Ich vermute, dass an der Art wie ich das Netzwerk erstelle irgendwas nicht passt. Vielleicht hat ja auch jemand eine andere Idee, wie ich mein Testsetup aufsetzen kann.