Hallo zusammen.
Ich habe mehr als eine Woche meine Bastelabende investiert, um die Kommunikation zwischen AREDN Knoten zu verstehen. Mein Startproblem war eigentlich ganz einfach: ich wollte einen alten TP-Link WR841 (so eine weiße 2.4GHz WLAN Seifenschale) als Switch zwischen zwei AREDN Knoten verwenden und dabei auch gleich noch einen Hotspot zu realisieren. Oder alternativ in zwei Knoten gleichzeitig mein LAN (für das AREDN Netzwerk wäre das der WAN Anschluss) einzuspeisen.
Gedacht, gemacht, geht so nicht.
Wieso geht das nicht? Hmmm. Wenn man die beiden Nanostations direkt miteinander verbindet, scheint alles in Ordnung. So bald ich den Switch dazwischen setze (also ohne die Router Funktionen im WLAN Router), dann funktioniert das nicht mehr richtig. Was heißt "funktioniert nicht richtig"?
Wenn die beiden Nanostations direkt mit einem Ethernet Kabel verbunden (ge-patch-t) sind, dann geht eine rote LED an, was so viel heißt wie "Mesh aktiv", und wenn ich mich via drittem Node auf mit den beiden verbinde, dann melden sie ordnungsgemäß "Device-to-Device" (DtD) Link ativ. So soll es sein, so funktioniert das richtig. Und so bald ich den Switch dazwischen setze funktioniert es eben nicht mehr, aber warum? Das muss doch ein Fehler des Switches sein, verflixt nochmal!
Tatsächlich ist ein Fehler der Switch Konfiguration, und das genau zu verstehen, hat leider etwas gedauert. Ich spare mir die Schilderung des Wegs zur Erkenntnis zu Gunsten der Ergebnisbeschreibung.
AREDN Knoten kommunizieren auf drei verschiedenen logischen Kanälen, wovon zwei mittels VLAN Tagging versehen sind. Davon hatte ich schon einmal gelesen, aber nichts verstanden. VLAN Tags sind eine Ergänzung eines Ethernet Frames (also keine TCP/IP Funktion, sondern eine Layer2 Eigenschaft), mit welcher man einfach Switches realisieren kann indem man z.B. den Verkehr auf jedem Port eines Switches mit einem Tag versieht. Dann weiß die zentrale Switch CPU genau, welches Paket von welchem Port (Anschluss) kam und ob es verbotene Datenpfade gibt oder besonders erlaubte. So implementiert ein Switch z.B. auch eine Durchsatzlimitierung.
Bevor die Pakete wieder den Switch verlassen müssen die Tags wieder aus den Ethernet Datenpaketen entfernt werden, denn das ist ja etwas, das der Switch eigentlich für sich eingefügt hat. Eigentlich!
Entfernt man die Tags nicht aus den Ethernet Paketen und lässt sie aus dem Switch nach draußen, dann kann man auch außerhalb des Switches noch ge-tag-gte Pakete erkennen. Bis zu ~2^12 Tags sind möglich! Pakete ohne Tag sind vier Byte kürzer, stören aber getaggte Pakete gar nicht. Zeitlich nacheinander coexistieren die auf der Ethernet Verbindung. Das ganze folgt dem IEEE Standard 802.1Q.
Unsere AREDN Knoten verwenden:
Das ganze war ziemlich langwierig im Verstehen. Hier gibt es einen Artikel, der das ganze etwas beschreibt. Und ich habe dann lange mit dem WR841 herum gemacht bevor ich dessen Eigenheiten verstanden habe.
Den Durchbruch hatte ich dann nach einiger Zeit mit dieser Seite und dem Reverse Engineering davon: Netgear Switch Configurations. So richtig ist das nirgendwo erklärt... Tatsächlich sind VLAN-konfigurierbare Switches die Lösung, die man in komplexeren Zusammenschaltungs-Situationen unbedingt braucht!
(A) Beobachtungen ohne Switch:
So, was lernt man jetzt daraus?
Damit sind wir wieder bei meiner Startaufgabe:
Möchte man zwei Knoten miteinander verlinken (einen AREDN Hub erzeugen) und lokal noch einen WLAN Hotspot versorgen, dann braucht es also folgendes:
(wird fortgesetzt...)
Ich habe mehr als eine Woche meine Bastelabende investiert, um die Kommunikation zwischen AREDN Knoten zu verstehen. Mein Startproblem war eigentlich ganz einfach: ich wollte einen alten TP-Link WR841 (so eine weiße 2.4GHz WLAN Seifenschale) als Switch zwischen zwei AREDN Knoten verwenden und dabei auch gleich noch einen Hotspot zu realisieren. Oder alternativ in zwei Knoten gleichzeitig mein LAN (für das AREDN Netzwerk wäre das der WAN Anschluss) einzuspeisen.
Gedacht, gemacht, geht so nicht.
Wieso geht das nicht? Hmmm. Wenn man die beiden Nanostations direkt miteinander verbindet, scheint alles in Ordnung. So bald ich den Switch dazwischen setze (also ohne die Router Funktionen im WLAN Router), dann funktioniert das nicht mehr richtig. Was heißt "funktioniert nicht richtig"?
Wenn die beiden Nanostations direkt mit einem Ethernet Kabel verbunden (ge-patch-t) sind, dann geht eine rote LED an, was so viel heißt wie "Mesh aktiv", und wenn ich mich via drittem Node auf mit den beiden verbinde, dann melden sie ordnungsgemäß "Device-to-Device" (DtD) Link ativ. So soll es sein, so funktioniert das richtig. Und so bald ich den Switch dazwischen setze funktioniert es eben nicht mehr, aber warum? Das muss doch ein Fehler des Switches sein, verflixt nochmal!
Tatsächlich ist ein Fehler der Switch Konfiguration, und das genau zu verstehen, hat leider etwas gedauert. Ich spare mir die Schilderung des Wegs zur Erkenntnis zu Gunsten der Ergebnisbeschreibung.
AREDN Knoten kommunizieren auf drei verschiedenen logischen Kanälen, wovon zwei mittels VLAN Tagging versehen sind. Davon hatte ich schon einmal gelesen, aber nichts verstanden. VLAN Tags sind eine Ergänzung eines Ethernet Frames (also keine TCP/IP Funktion, sondern eine Layer2 Eigenschaft), mit welcher man einfach Switches realisieren kann indem man z.B. den Verkehr auf jedem Port eines Switches mit einem Tag versieht. Dann weiß die zentrale Switch CPU genau, welches Paket von welchem Port (Anschluss) kam und ob es verbotene Datenpfade gibt oder besonders erlaubte. So implementiert ein Switch z.B. auch eine Durchsatzlimitierung.
Bevor die Pakete wieder den Switch verlassen müssen die Tags wieder aus den Ethernet Datenpaketen entfernt werden, denn das ist ja etwas, das der Switch eigentlich für sich eingefügt hat. Eigentlich!
Entfernt man die Tags nicht aus den Ethernet Paketen und lässt sie aus dem Switch nach draußen, dann kann man auch außerhalb des Switches noch ge-tag-gte Pakete erkennen. Bis zu ~2^12 Tags sind möglich! Pakete ohne Tag sind vier Byte kürzer, stören aber getaggte Pakete gar nicht. Zeitlich nacheinander coexistieren die auf der Ethernet Verbindung. Das ganze folgt dem IEEE Standard 802.1Q.
Unsere AREDN Knoten verwenden:
- ungetaggte Pakete, um sich bei einem Router im Heimnetz, HAMNET oder woanders eine IP Adresse zu besorgen und Daten zu empfangen oder zu senden.
- Pakete mit VLAN TAG 1, die in Zusammenschaltungs-Situationen (mein Bild, s. oben) so etwas wie einen Fernwartungszugriff auf genau einen Knoten erlauben.
- Pakete mit VLAN TAG 2, auf welchem die Nodes Routing Information miteinadner austauschen (DtD, s. oben).
Das ganze war ziemlich langwierig im Verstehen. Hier gibt es einen Artikel, der das ganze etwas beschreibt. Und ich habe dann lange mit dem WR841 herum gemacht bevor ich dessen Eigenheiten verstanden habe.
Den Durchbruch hatte ich dann nach einiger Zeit mit dieser Seite und dem Reverse Engineering davon: Netgear Switch Configurations. So richtig ist das nirgendwo erklärt... Tatsächlich sind VLAN-konfigurierbare Switches die Lösung, die man in komplexeren Zusammenschaltungs-Situationen unbedingt braucht!
(A) Beobachtungen ohne Switch:
- verbindet man einen AREDN Knoten direkt mit dem eigenen Heimnetz (wo bereits ein DHCP Server/Dienst aktiv ist) ohne einen Switch, der VLAN Tags behandelt, dann bleibt er stumm.
- währenddessen kann man aber beobachten, dass er Verkehr mit VLAN Tag2 versucht; dort wird nach einem OLSR Nachbarn gesucht ("HELLO" Nachrichten)-
- verbindet man einen Laptop mit dem AREDN Knoten, dann fragt der Laptop, nachdem er ein aktiven Netzanschluss erkannt hat, ob es einen DHCP Server gibt und bittet um eine Adresse; dann vergibt der AREDN Knoten als DHCP Server dem Laptop eine Adresse und man kann ihn via seiner Homepage lokal erreichen. Der Laptop bekommt dann eine Adresse aus dem LAN Adressbereich des AREDN Knoten.
- Schließt man einen AREDN Knoten mit seinen drei logischen Kanälen (untagged, VLAN Tag1 und Tag2) an einen Switch an und übersetzt den Verkehr
(a) aus dem Knoten von VLAN Tag 1 --> untagged um (d.h. AREDN-Knoten sendet mit Tag1, Switch übersetzt zu untagged), und
(b) in den Knoten von untagged --> VLAN Tag 1 um, dann
- ist der Knoten mit einem Mal mit WAN versorgt, man kann aber nicht mehr ohne weiteres auf die Verwaltungsoberfläche zugreifen.
- Wenn man jetzt einen zweiten Knoten online bringt, der sich via Mesh mit dem ersten Knoten verbindet (Laptop am zweiten Knoten wie in (A) verbunden), dann berichtet der zweite Knoten, dass er WAN via ersten Knoten erhält und man kann ganz normal auf das WAN (Internet) zugreifen.
(im Bild: DM4AB3 hängt am Switch mit VLAN Tag Übersetzung, s (1), DM4AB2 ist der zweite Knoten mit WAN Zugang)
- Währenddessen lässt sich beobachten, dass auf dem logischen Kanal mit Tag VLAN 2 OLSR Protokoll läuft und sich die beiden Knoten austauschen zur Link-Qualität, Bandbreite, ...
So, was lernt man jetzt daraus?
- schließt man einen Laptop an einen Knoten direkt an, dann kann man den Knoten konfigurieren
- schließt man ein WAN an einen Knoten direkt an, passiert nichts direkt hilfreiches: der Knoten fragt nach keiner Adresse, bleibt stumm, wird keine Daten weiterleiten
- liefert man WAN auf VLAN1 an den Knoten, dann fragt er nach einer IP-Adresse in dem Netzwerk und verhält sich danach wie ein normaler LAN Teilnehmer im lokalen Netz, und falls er Anfragen via WLAN nach Internet-Inhalten erhält, versucht er diese zu besorgen wie jeder lokale LAN Teilnehmer auch.
- Verkehr auf VLAN Tag2 ist nett zu sehen, aber nicht unbedingt relevant, außer man möchte zwei Knoten miteinander lokal verbinden!
Damit sind wir wieder bei meiner Startaufgabe:
Möchte man zwei Knoten miteinander verlinken (einen AREDN Hub erzeugen) und lokal noch einen WLAN Hotspot versorgen, dann braucht es also folgendes:
- Verkehr mit Tag1 muss zwischen beiden Knoten möglich sein (das ist der WAN Verkehr!)
- Verkehr mit Tag2 muss zwischen beiden Knoten möglich sein (damit tauschen die beiden Knoten Link-Information aus, DtD, Device-to-Device Link)
- Untagged Verkehr des einen oder anderen Knoten ist nett, damit man die Knoten konfigurieren kann; sinnvollerweise wollten sich die beiden Knoten hier nicht "sehen", sonst bekommt der angeschlossene Laptop von zwei DHCP Servern eine Adresse angeboten.
- damit der WLAN Hotspot den WAN Verkehr versteht, braucht er eine Version davon ohne Tags (=Tag1 entfernt); ausgehender Verkehr vom WLAN Accesspoint muss mit Tag1 versehen werden und beiden AREDN Knoten weiter gegeben werden, sonst wissen die nicht, dass es sich um WAN Verkehr handelt.
(wird fortgesetzt...)