Hallo,
tut mir leid, dass ich mich so spät melde, aber mir kam ständig irgendwas dazwischen. Ich lese alles, was du mir gegeben hast später, verzeih, ich finde aber, dass es besser ist dich nicht mehr zu foltern. Soll also etwas obsolet sein, was ich dir weiter schreiben werde, bitte um Verständniss.
Im Endeffekt ist diese Links-Rechtserkennung zimlich einfach. Aber von Anfang an. Verbinde die Raspis in die Kette mit RJ45(LAN) und einem USB to RJ45 Adapter (USB) und zwar vollgendermassen: immer von USB auf LAN. Somit ist LAN - links und USB - rechts. Die IPs werden statisch vergeben, irgenwelche in deinem Netzwerkbereich (Netzwerk) z.B. A hat dann LAN 192.168.0.1 (...1) und USB 192.168.0.2 (...2) und B LAN ...3, USB ...4. Die Interfaces werden verbunden z.B. IP-Forwarding, Brücke oder sonstwas. In Firewall blockerst du ein Port z.B. 2000. Jetzt lässt du dein Netzwerk mappen (nmap) auf dem Port, dass du blockierst z.B. auf LAN. Da die Weiterleitung der Anfragen blockert ist, bekommst du nur eine IP und zwar, die von deinem direkten Nachbar links. Erledigt. Das gleiche kannst du auch rechts machen, natürlich. Ab jetzt kennt dein Raspi seine Nachbarn links und recht und kann sich automatisch anpassen. Ab jetzt setzt beinahe nur deine Vorstellungskraft und sein Sollbuch, was du damit machst. Deine Raspis können jetzt ihre IPs automatisch verändern, ihre Nachbarn zu Veränderung ihrer IPs bewegen und was du nur willst. All das kannst du mit OS-Werkzeugen erreichen und etwas Skript-Programmierung (oder mit der Sprache, die du bevorzugst). Es wird ab hier sozusagen langweilig. Du kannst sogar eine kleine DB aufbauen, die jeweilige IPs festhält. Wenn sich ein Raspi bewegt hat, ergo seine IPs verändern sich, aktualisiert er die DB und per Multicast und TCP gibt er die Datei weiter. Du kannst eine Sicherheit auf Basis von HASH oder einfach einer Versionnummer in der DB selbst, einbauen. Wenn du willst. Wie gesagt, nachdem sie sich und ihre Nachbarn erkennen können, gibt es hier kaum noch Grenzen dessen, was du damit machen kannst. Wenn du unbedingt immer feste IPs für deine Anwendung brauchst, baust du zwischen App und Interface ein static NAT. Sonst kommt keine unaufgefordete Verbindung zustande, solltest du dynamic NAT benutzen, beachte das.
So, ich glaube ich konnte dir die Vorstellung davon vermitteln, wie dein Problem zu lösen wäre. Allerdings muss ich auch schreiben, dass ich so etwas noch nie versucht habe (IP in DaisyChain), daher sind das meine theoretische Überlegung und könntest es auch sein, dass es nicht funktioniert. Mein Kung-Fu würde darunter leiden, aber ich kann meine Idee aus praktischer Erfahrung nicht bestätigen/untermauern. Einzelheit können wir später noch besprechen. Alle nötige Werkzeuge sind schon in Unix integriert oder bekommst du einfach installiert. Du kannst sie natürlich selbst auswählen, das alles oben sind nur Vorschläge, vielleicht kennst du welche, die besser passen würden. Genau wie IPs usw. Ich weiss es nicht, wie deine App mit der Aussenwelt kommuniziert, daher macht es keinen Sinn hier noch weiter zu vermuten. Es könnte sein das sie eine BlackBox ist und du keinen Zugriff auf das Quellcode hast. OK, sollte es laufen, kommt auf dich ziemlich viel Frickelei, wenn du alle Möglichkeiten decken willst, die mit der Veräderung im Netz eines Raspis entstehen werden, aber sonst wüsste ich wirklich nicht, wie du deine Aufgabe meistern sollst, ohne sündhaft teure Geräte. Ich glaube, das wäre alles für Jetzt.