Mobiles Subnetz

ohne zentralen Server

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Mobiles Subnetz
Hi,

weiß jemand von euch, ob es eine Möglichkeit gibt, mit mobilen Geräten ein P2P-Netz ohne zentralen Server aufzubauen? Die Idee dahinter ist, dass mehrere Geräte miteinander kommunizieren können, ohne dass man einen Server braucht, der die Verbindung erst mal aufbaut.

Meine erste Idee war folgende:

  • die Geräte tauschen zum aufbauen des Netzwerks ihre aktuelle IP aus und kommunizieren darüber (multicasting).
  • sobald ein Gerät eine neue IP bekommt, funkt es die gespeicherten IPs der anderen an und wenn ein Gerät erreicht werden kann, teilt das ihm die (geänderten) IPs der anderen Teilnehmer mit

Aber: wenn inzwischen alle Geräte eine neue IP haben (weil z.B. alle über Nacht ihr Handy ausschalten), dann kann das Netz nicht aufgebaut werden, oder? Gibt es da eine Möglichkeit?


Kannst du generell vergessen, alle Mobilprovider machen NAT, d.h. du kriegst keine sinnvollen direkten Verbindungen zustande. Es gibt Moeglichkeiten, die einen zentralen Server nutzen um um das NAT rumzukommen. Multicast ist bei eigentlich allen Providern kaputt und wird bestenfalls im IPTV-VLAN verwendet. Multicast in WLANs kann manchmal sinnvoll funktionieren.

Die grosse Hoffnung fuer so Dinge waere IPv6, aber das kann auch noch kaum ein Provider. Es gibt mobileIPv6, was auch theoretisch das IP-Wechsel-Problem loesen wuerde, aber implementiert ist das vermutlich auch nirgends. Die (IPv6-)Addresse des Gegenueber ohne zentralen Server zu finden geht zB mit sowas wie verteilten Hashtabellen (DHT), das ist aber auch ein bischen viel Gefrickel, je nach Anwendungsfall. Irgendeinen Einstiegspunkt ins Netz braucht man aber immer, meistens sind das von vorherigen Verbindungen bekannte Peers, die hoffentlich noch online sind, oder halt pseudo-feste zentrale Server.


Ja, das hab ich mir schon fast gedacht. Aber dass es dann doch so unmöglich ist…

Für den ersten Aufbau des Netzwerkes hätte ich mir vorgestellt, dass man z.B. einen QR-Code eines Teilnehmers scannen kann, in dem seine aktuelle IP und ein Schlüssel drin stehen.

Wie machen es denn die Messenger oder Skype co.? Kommunizieren die überhaupt direkt oder geht das immer über nen Server?


Im Allgemeinen kommunizieren die nur direkt, wenn mindestens eine Partei eine nicht-geNATtete oeffentliche IP hat. Skype hat noch lustig wirre Tricks um durch NAT durchzubohren, Google das mal, das ist recht witzig. Moderne, insbesondere mobile Messenger verwenden Google Cloud Messaging, was darauf basiert, dass Google ueberall[tm] bei Providern im lokalen Netz einen Server stehen hat, der die Nachrichten direkt weiterreicht.

Ja, das ist alles schrecklich und diese Schweinereien sind ein dicker, fetter Grund warum man unbedingt besser frueher als spaeter IPv6 will. Ohne NAT.


Meinst du sowas wie Wi-Fi Direct?

https://de.wikipedia.org/wiki/Wi-Fi_Direct


Eine Alternative könnte die Verwendung von dynamischen DNS darstellen. Das ist zwar strenggenommen auch nicht ohne Server, aber man benötigt dafür keinen individuellen Server.


Ja, aber ob DynDNS taugt kommt sehr auf den Anwendungsfall an. Typische Idioten-Provider ignorieren TTLs unter einer bestimmten Schwelle (oder auch generell), wodurch haeufig wechselnde Verbindungen mobiler Geraete damit nicht funktionieren wuerden.


Nicht nur Provider, auch Android 4.0 und früher hat Probleme mit TTL. Aber man könnte ja mithilfe einer Resolver-Bibliothek wie c-ares auch eigenständig die DNS-Abfrage beim Zielserver durchführen.


Weiss nicht, ob man aus irgendeinem Mobilnetz oder WLAN mit Anmeldeportal einfach so DNS raus sprechen kann, ueblicherweise wird da entweder DNS gefiltert oder der lokale Proxy transparent dazwischengeklemmt.