05.11.2023 –, Vortragsraum
Zu freier Internet-Infrastruktur gehören neben freien Servern und freier Software auch freie Netzwerke. Seit 30 Jahren betreibt der Wissenschaftsladen Dortmund spendenfinanziert freie Infrastruktur (als AS31371). Inspiriert vom Freifunk, den wir in Dortmund unterstützen, haben wir ein Konzept entwickelt, das die horizontale Vernetzung kleiner, freier Subnetze flexibel, offen und über die Grenzen Autonomer System hinweg ermöglicht. Die wesentlichen Begriffe des Routings werden erklärt und am konkreten Beispiel unseres "Intermesh" erfahrbar gemacht (im CLI von bird - bring your Laptop:).
(Vorab Besinnliches:-)
- "Geht nicht" gibt's nicht. (Baumarkt)
- "Gibt's nicht" gibt's nicht. (Biologie)
- "Versucht das Unmögliche,
um das Mögliche zu erreichen." (Bakunin)
(Vorab Inhaltliches:-) Wer sich für das heutige Thema interessiert, sollte sich am Samstag auch den Vortrag Ein autonomes Netzwerk mit tinc und eigenem DNS gönnen.
Apropos tinc: Die Graphik oben rechts auf dieser Seite ist ein Schnappschuss der tinc-Instanzen des hier vorgestellten Intermesh. Dabei stehen die Knoten für Router und die Kanten für tinc-Kontrollverbindungen ("meta-connection"). Die drei Instanzen werden durch unterschiedliche Kantenfarben markiert: grün durchgezogene Linie = LAN, blau gestrichelte Linie = WLAN, schwarz gepunktete Linie = WAN. Die tincd-Prozesse werden im switch mode betrieben, sodass normale Routingprotokolle auf den von tinc zur Verfügung gestellten virtuellen Layer-2-Netzwerkschnittstellen benutzt werden können - in unserem Fall OSPF und babel. Auf der Ebene der IGP-Kopplung entspricht jeder tinc-Instanz (grün, blau, schwarz) eine IGP-Instanz (ospf1, ospf2, ospf3).
Routing ist keine Raketenwissenschaft, aber Lesen reicht nicht für ein solides Verständnis - man muss es auch machen. In der behüteten Einzelzelle hinter der F!Box ist es nicht wirklich spannend, sich dem Thema praktisch zu nähern. Deshalb ist es wichtig, dass es offene Zusammenhänge gibt, in denen man lernen und mitarbyten kann. Dahingehende Kooperationen wären ein schönes Ergebnis des Workshops:-)
Es folgt eine strukturierte Stichwortliste zu den möglichen Inhalten des Workshops. Die müssen (und können;) wir nicht alle "schaffen", aber schau mal drüber und überlege, welche Themen Dir wichtig sind, egal ob Grundlagen oder Fortgeschrittenes. Dann können wir am Anfang des Workshops 'ne Liste mit den Themen erstellen, über die wir sprechen werden. Erfahrungsberichte und Problemanalysen aus Freifunk-Communities oder anderen netzaktiven Zusammenhängen wären auch ein spannender Input.
- Routing
- Motivation
- "Das Internet kommt doch aus der Dose/Luft -
warum sollte ich mich mit Routing beschäftigen?"- asymmetrische und hierarchische Verhältnisse
im Internet und in der Gesellschaft ... - vs. Infrastruktur entlang horizontaler sozialer
Zusammenhänge - die Idee des "verteilten Systems" ist ein Kern des Internet
- asymmetrische und hierarchische Verhältnisse
- (Internet-)Produktionsmittel in die Hände der Bevölkerung
- freie Infrastruktur für eine freie Gesellschaft
- Lernen durch DIY mit praktisch nutzbaren Ergebnissen
- operative Basis für Kooperationen
- "Das Internet kommt doch aus der Dose/Luft -
- Grundlagen
- Layer 2 vs. 3
- Forwarding vs. Routing (FIB vs. RIB)
- Nachbarschaft
- Routen
- Metrik(en)
- Schleifen
- Routing-Prokolle
- interior vs. exterior (IGP vs. EGP)
- distance vector vs. link state (DV vs. LS)
- Schleifenverhinderung
- Spannbäume
- (interior) Mesh-Routing, Praxis im Freifunk
- (exterior) Mesh-Routing, Praxis im Internet
- Motivation
- Multi-Exit-Routing
- das "Fußgängerzonenproblem" im Freifunk
- die bisherige "Lösung" dieses Problems und ...
- deren Skalierungsprobleme
- Techniken für Multi-Mesh- und Multi-Exit-Lösungen
- kein NAT (jedenfalls nicht ohne zusätzliche Anstrengung)
- alle Meshes verwenden eine gemeinsame Metrik
- ggf. konsistentes Umrechnen zwischen der internen
Metrik eines Meshes und der gemeinsamen Metrik (dem
"Goldstandard";)
- ggf. konsistentes Umrechnen zwischen der internen
- wegen sich ändernder Topologien und Metrikwerte in einem
Mesh braucht man host routes- innerhalb des Meshes
- zwischen benachbarten Meshes
- darüber hinaus Adressbereiche aggregieren
- geht nicht mit Layer 2 Adressen
=> kein größeres Intermesh mit Mesh-übergreifendem
Layer 2 Routing (B.A.T.M.A.N.) - auch erforderlich zum AS eines Internet-Upstreams =
konventioneller Provider
- geht nicht mit Layer 2 Adressen
- benachbarte Meshes erhalten keine Information über die eigene
Topologie ...- sondern nur die Metrik zu einem Ziel ...
- in Form externer Routen, denn ...
- das erspart dem Nachbarn nutzlose Routinginformationen und ...
- das Neuberechnen von Spannbäumen bei externen
Topologieänderungen - => global (Mesh-übergreifend) kein LS-, sondern DV-Routing
- Handauflegen I
- login auf einem Intermesh-Router
- birdc
- show protocols
- show ospf neighbors
- show route ...
- bird.conf
- Veranschaulichung der Konzepte durch "Erforschen" des Intermesh
- Ein real ex. Intermesh (gekoppelte IGPs)
- Mesh-VPN (tinc) als Basis
- Routing-Suite: bird
- Routingtabellen und Protokollinstanzen
- Protokolle und Routenattribute
- Filtersprache
- Struktur einer IGP-Kopplung
- die Grenzen zwischen den IGP-instanzen verlaufen in den
Routern, nicht zwischen ihnen- Routen lassen sich beim Übergang von einer Instanz zur
anderen flexibel und effizient modifizieren - zentrale RIB für alle Instanzen ermöglicht guten Überblick
- Routen lassen sich beim Übergang von einer Instanz zur
- interne vs. externe Routen
- kein Topologie-Export zwischen den
IGP-Instanzen, an denen ein Router teilnimmt
- kein Topologie-Export zwischen den
- notwendige gemeinsame Konfiguration vs. individuelle
Konfiguration der beteiligten Router
- die Grenzen zwischen den IGP-instanzen verlaufen in den
- dynamische Metriken für WLAN-Gewaber und consumer uplinks
- Messung dank babel ...
- und Verwendung (unmöglich, aber trotzdem:) durch OSPF
- Schleifenvermeidung
- (unmöglich, aber trotzdem:) DV Routing mit OSPF ...
- dank des 32bit opaque tag im OSPF
- ermöglicht die "Heilung" einfacher Partitionierungen
eines Meshes (bei BGP verboten;)- dadurch einfache default-Konfiguration der Router
mit drei IGP-Instanzen (LAN, WLAN, WAN)
- dadurch einfache default-Konfiguration der Router
- verteiltes DHCP für die clients
- (unmöglich, aber trotzdem:) mit ISC-dhcpd und ...
- dank OSPF (als Datenbank zZ vergebener IP-Adressen)
- Routen-Aggregation (unmöglich, aber trotzdem:) mit bird, zwecks ...
- Integration in autonome Systeme (AS31371, AS35675)
- AS35675 = produktiver Freifunk Dortmund + FF@home
- verteilte Dienste, Serverbetrieb
- NTP, Wiki, Syncthing, Monitoring
- Probleme, Entwicklungsmöglichkeiten, TODOs
- Handauflegen II - bei Interesse im Anschluss an den Workshop
- Aufbau einer lokalen Routingdomäne (eine IGP-Instanz) und ...
- deren Anschluss ans Internet via Intermesh
- Überlegungen zu weiterer Zusammenarbeit
Zum Warmlesen und als Verdauungshilfe:
- https://wiki.ffdo.de/Technik/Routing/Routing-Grundlagen
- https://wiki.ffdo.de/Technik/Routing/Linkliste
- https://wiki.ffdo.de/Technik/Routing/Matrix-Routing-Protokolle
- http://url.free.de/ffdo/Technik/Routing/IGP-Kopplung-Roadmap
- https://bird.network.cz/?get_doc&f=bird.html&v=20
- https://www.tinc-vpn.org/documentation-1.1/
(Das "Profilbild" als Vektorgraphik: http://projekte.free.de/anarchismus-und-internet/data/zentral-dezentral-verteilt.svg)
Diese zuerst 1964 veröffentlichte Graphik ist sicher ergiebiger als ein Avatar des Referenten. Erst recht, wenn man das Bild zum Anlass nimmt, sich etwas näher mit dieser Ursuppe des Internet zu beschäftigen, zB: