EdgeRouter-X (ER-X)
110x75x22mm, 175g, max. 5W (PSU: 12VDC, 0.5A - oder 24V Passive POE; supported 9-30V), 5x 10/100/1000 RJ45 (davon 1x POE in und 1x POE passthrough)
Quick Start Guide
EdgeRouter-X-SFP (ER-X-SFP)
142x75x23mm, 215g, max. 5W (PSU: 24VDC, 2.5A; supported 9-30V); 5x 10/100/1000 RJ45, 1x 100/1000 SFP
Obwohl POE-Input offiziell nicht unterstützt wird haben die Kollegen von FF Wien herausgefunden dass man den ER-X-SFP auf jedem RJ45-Port mit POE versorgen kann und das Gerät dann auch POE auf den verbleibenden Ports weitergeben kann - Diskussion im Ubiquiti Forum #1 #2. Offiziell wird das aber nicht unterstützt und auch nicht empfohlen.
Quick Start Guide
Der EdgeRouter kann via Webinterface oder CLI konfiguriert werden. Die CLI ist via SSH oder über das Webinterface (oben rechts "CLI") erreichbar. Auf der CLI können "normale" Linux-Befehle sowie spezielle EdgeRouter-CLI-Commands verwendet werden.
CLI-Anleitung zu "Operational" und "Configuration" Mode
Firmware-Upgrade
Am Anfang sollte immer ein Firmware-Upgrade durchgeführt werden.
Über das Webinterface wird dazu unten links der "System" Screen aufgeklappt und mittels "Upgrade System Image" ein aktuelles Firmware-Image eingespielt.
Sowohl ER-X als auch ER-X-SFP haben aktuell dieselbe Firmware - Download-Link
Nach dem Upgrade wird der Edgerouter rebootet. Dabei wird meist ein "Lost connection" Fenster mit einem "Try again" Button angezeigt - der funktioniert jedoch in den meisten Fällen nicht. Daher empfiehlt es sich während dem Upgrade-Vorgang und dem anschließenden Reboot den Edgerouter zu pingen und sobald er wieder respondet das Webinterface neu zu laden ..
Hardware Offloading
Standardmäßig fährt der Edgerouter mit angezogener Handbremse und verwendet kein Hardware-Offloading. Dadurch muss die CPU alle Packerln schupfen und damit ist bei 300-350 MBit/s Schluss.
Aus diesem Grunde sollte man dringend Hardware-Offloading aktivieren.
Dazu wechselt man auf die "Config Tree" Ansicht und klappt dort "System" - "Offload" auf. Dabei wird dann rechts ein Eingabefeld für "hwnat" angezeigt wo man "enable" eingibt. Danach unten auf "Preview" klicken und im folgenden Fenster die Änderung mit "Apply" bestätigen.
Das sollte dann so aussehen:
Grundkonfiguration
Unter "System" sollte man bei "System host name" den vollen Hostnamen eintragen: <node>.<location>.ffgraz.net
"System gateway address" sollte leer bleiben.
Als Nameserver ist 10.12.0.10 einzutragen, als Backup kann zusätzlich ein beliebiger erreichbarer Nameserver verwendet werden (z.B. 8.8.8.8, 1.1.1.1, ...)
IPv6, "UNMS Connection" und "UBNT Discovery" kann man normalerweise deaktivieren.
Hier kann auch die Konfiguration des Edgerouters heruntergeladen und gesichert werden. Nach Abschluss der Konfiguration und vor bzw. nach größeren Änderungen sehr empfehlenswert.
Passwort
Unter "Users" sollte man dem "ubnt" User zumindest ein anderes Passwort vergeben. Besser wäre es natürlich auch den Account umzubenennen, ....
Netzwerkinterfaces
Die Netzwerkinterfaces werden am "Dashboard" über den "Actions" - "Config" Button konfiguriert.
Bei den IP-Adressen ist immer die CIDR-Notation - also mit Schrägstrich und der Prefixlänge - zu verwenden, z.B. 10.11.12.13/16
OLSRd
Um OLSR am Edgerouter zu verwenden muss ein zusätzlicher "Wizard" installiert werden. Dazu geht man auf "Wizards" (Button ganz rechts) und öffnet das Upload-Fenster durch Klick auf das Pluszeichen rechts neben "Feature Wizards" in der Liste links.
Als "Wizard Name" empfehle ich den Namen des Wizards: OLSRd V1
Bei "Wizard Files" - "Upload a file" lädt man das hoffentlich schon zuvor von der Github Releases Seite heruntergeladene aktuelle tar.gz File hinauf. NICHT entpacken!
Wenn alles geklappt hat sollte der OLSR-Wizard nun in der Liste auftauchen.
Nun sollte man "Setup Script (includes AutoStart)" aktivieren, bei "OLSRd IPv4" "Enable OLSR daemon", "Run OLSR daemon" und "Use OLSRd-Watchdog".
Darunter sind die Interface auszuwählen auf denen der Edgerouter OLSR sprechen soll (inkl. der jeweiligen Konfiguration).
Bei "HNA Entries" können HNA eingetragen werden. Achtung hier ist die Netzadresse mit der Prefixlänge (z.B. 10.11.12.0/29) zu verwenden, NICHT eine IP-Adresse des Edgerouters. Ansonsten startet OLSRd danach nicht mehr und je nach Netzwerkaufbau hat man sich damit erfolgreich ausgesperrt...
Bei "Plugins" empfiehlt sich zumindest die Aktivierung von "txtinfo" auf Port 2006 und für "localhost". Damit kann man dann auf der CLI z.B. über folgenden Befehl den kompletten OLSR-Status abfragen:
echo /all | nc 127.0.0.1 2006
Unter "OLSRd IPv4 Advanced Options" sollte man bei "Main IP" die Haupt-Mesh-IP des Edgerouters eintragen. Ansonsten kann es passieren dass der Router irgendeine OLSR-IP nimmt was zwar nicht tragisch aber etwas unsauber ist.
Danach "Restart OLSR-IPv4 daemon on 'Apply'." aktivieren und "Apply" drücken. Nun sollte der Edgerouter hoffentlich OLSR sprechen
Hardware-Switch / VLANs
Sobald Ports am Edgerouter "verbunden" werden sollen, also das Gerät teilweise wie ein Switch funktionieren soll, sollte man dazu den "switch0" verwenden/konfigurieren. Auch wenn verschiedene "Portgruppen" gebildet werden sollen oder einer oder mehrere weitere Switches, ggf. mit verschiedenen VLANs, angebunden werden sollen empfiehlt sich der Weg über "switch0". Wie schon unter "Wichtig" erwähnt - bitte nur "switch0" verwenden und keine weiteren Switches/Bridges definieren (außer es lässt sich aus irgend einem Grund wirklich nicht vermeiden).
Ein beliebtes Setup ist zum Beispiel ein "flaches" Funkfeuer-Mesh-Netz auf 2-3 Ports des Edgerouters wo Antennen mit OLSR-Firmware angeschlossen werden während auf anderen Ports der Edgerouter selbst OLSR sprechen soll und dort jeweils nur ein "dummer" Sender angeschlossen wird - siehe entsprechender Abschnitt
Bevor man mit der Konfiguration beginnt sollte man sich den Netzwerkaufbau überlegen. Jedes separate "Netzwerk" bekommt eine eigene VLAN-ID. Die IDs selbst sind beliebige Zahlen im Bereich 0-4094. Will man VLANs geräteübergreifend nutzen (Trunk-Ports) so müssen die IDs entsprechend abgestimmt werden und auf den betroffenen Geräten übereinstimmen (zumindest sofern Trunk-Ports genutzt werden).
VLANs können auch ohne switch0 direkt auf anderen Netzwerkinterfaces definiert werden, sind dann jedoch natürlich nur auf dem jeweiligen Port verfügbar und können nicht mehrere Ports beeinhalten (außer z.B. mittels Bridge aber das will man nicht -> switch0 verwenden).
Wichtig zu wissen: Ein Interface, das Teil eines Switches ist, kann keine IP-Adressen haben und darf auch nicht als DHCP-Client konfiguriert werden. Da standardmäßig eth1 als DHCP-Client konfiguriert ist muss das zuerst über die eth1-Netzwerkkonfiguration abgeschaltet werden sonst lässt sich eth1 nicht dem Switch hinzufügen.
Weiters ist es empfehlenswert das Management-Interface (standardmäßig eth0) nicht gleich am Anfang einem Switch hinzuzufügen sonst sperrt man sich möglicherweise wunderbar selbst aus.
Obwohl man switch0 auch ohne VLAN-Unterstützung betreiben kann ist das nicht empfehlenswert - man nimmt sich sehr viel Flexibilität und wenn man das später ändern möchte muss man einiges umstellen.
Über "Actions" - "Config" bei "switch0" konfiguriert man nun switch0. Dem Switch selbst gibt man keine IP-Adresse, dafür aktiviert man unter "Vlan" "Vlan Aware - Enabled".
Für jedes notwendige VLAN fügt man nun im Dashboard mittels "Add Interface" - "Add VLAN" ein VLAN hinzu. Bei "Interface" ist switch0 zu wählen. Fügt man z.B. ein VLAN mit der ID 5 hinzu so wird ein virtuelles Netzwerkinterface mit dem Namen "switch0.5" erzeugt wo die weitere Konfiguration vorgenommen werden kann.
Hat man alle VLANs angelegt so kann man diese den jeweiligen Ports zuordnen. Dazu konfiguriert man bei switch0 unter VLAN die betreffenden Ports in den Switch.
"pvid" ist die VLAN-ID deren Pakete "nativ" (ohne VLAN-Tag) am jeweiligen Port auftauchen sollen und gleichzeitig die VLAN-ID, mit der eingehende Pakete getagged werden - quasi ein "Accessport" auf einem gewöhnlichen VLAN-fähigen Switch. Wird kein natives VLAN benötigt so kann das Feld leergelassen werden.
Unter "vid" kann eine Liste von auf dem jeweiligen Port "getaggten" VLANs angegeben werden (vergleichbar: Trunk-Port). Diese Liste ist mit einem Komma zu trennen.
So können nun einzelne Ports Switch-VLANs zugeordnet werden.
Am Ende könnte das folgendermaßen aussehen:
Hier sind die Ports eth0, eth3 und eth4 als normale Access-Ports im VLAN mit der ID 1, d.h. der Edgerouter verhält sich auf diesen Ports wie ein normaler Switch und verwendet die IP-/Routingkonfiguration vom VLAN-Interface "switch0.1".
Am Port eth1 ist zusätzlich das VLAN 256 "getagged" verfügbar. An diesem Port ist ein Switch angeschlossen wo das VLAN 256 auf weiteren Ports verwendet wird.
Am Port eth2 ist ebenfalls ein Switch angeschlossen - dieser bekommt das VLAN 1 nicht, hat kein natives VLAN ("pvid" leer) sondern bekommt die VLANs 255-258 getagged übergeben.
OLSR für "dumme" Sender
Ein beliebter Anwendungsfall für EdgeRouter ist die Verbindung mit "dummen" Sendern für die der EdgeRouter OLSR sprechen soll. Das ermöglicht die Verwendung von Standard-Firmware auf den Sendern ohne dass hier herumgebastelt werden muss um einen Sender bzw. Link OLSR-fähig zu machen was speziell bei neueren Geräten (60GHz und Co) sehr interessant ist.
Dabei wird pro EdgeRouter-Netzwerksegment (Netzwerkport oder VLAN) nur ein Sender/Link angeschlossen. Dadurch wird verhindert dass Netzwerktraffic eines Links direkt in einem anderen Link landet und so OLSR nicht vorhanden Verbindungen sieht.
Um die Sender warten zu können (und OLSR über den Link zu kriegen) wird ein Management-Netz zwischen EdgeRouter und Sender eingezogen und per HNA announciert. In Graz haben wir dafür den IP-Bereich 10.12.210.0/23 (10.12.210.0-10.12.211.255) reserviert aus dem /30 Netze via ManMan für diese Verbindungen - pro Sender ein /30 Netz - vergeben werden.
Hier bietet es sich an die erste IP des Subnets dem EdgeRouter und die zweite (und letzte) IP-Adresse dem Sender zu geben. Empfohlen wird in ManMan das EdgeRouter-Interface nach dem Link zu benennen und das Interface des Senders "mgmt".
Am EdgeRouter muss am jeweiligen Netzwerk-Port bzw. VLAN die EdgeRouter-seitige IP konfiguriert werden. Am Sender die andere IP-Adresse, Gateway am Sender ist dann die IP-Adresse des EdgeRouters.
Danach muss dieses kleine Subnet als HNA im OLSRd am EdgeRouter eingetragen werden. Bitte beachten dass dazu die Netzwerkadresse mit der Prefixlänge als HNA einzutragen ist und nicht die IP-Adresse des EdgeRouters o.ä.
Nicht vergessen auch OLSR auf diesem Netzwerkinterface zu aktivieren (Interface-Checkbox auf der OLSRd-Wizard-Seite).
DHCP-Server
Unter "Services" - "DHCP Server" kann man den EdgeRouter als DHCP-Server für ein oder mehrere angeschlossene Netze konfigurieren.
Dazu über "Add DHCP Server" eine neue Serverkonfiguration anlegen.
Der Name kann frei vergeben werden. Beim Subnet ist die Netzadresse zusammen mit der Prefixlänge des jeweiligen Subnetzes anzugeben (z.B. "192.168.10.0/24"). Unter "Range Start" ist die erste zu vergebene IP Adresse und unter "Range Stop" die letzte zu vergebene IP-Adresse einzutragen. Werden diese Bereiche nicht eingetragen so vergibt der EdgeRouter nur statisch eingetragene DHCP-Leases. Unter "Router" wird die Gateway-IP-Adresse eingetragen - in den meisten Fällen sollte dies die IP-Adresse des EdgeRouters im jeweiligen Subnet sein. Bei DNS ist ein DNS-Server einzutragen - für Funkfeuer Graz z.B. "10.12.0.10".
Nach Speichern der neuen DHCP-Server-Konfiguration kann über "Actions" - "View Details" die Lease-Time verändert werden. Standardmäßig beträgt die Lease-Time 24 Stunden (86400 Sekunden). Unter "Static MAC/IP Mapping" können statische Mappings eingetragen werden.
LAN-Anbindung
Natürlich kann man den EdgeRouter auch an ein vorhandenes LAN anschließen. Wenn man schon ein vorhandenes Netzwerk mit Internetzugang hat ist zu beachten dass der EdgeRouter eine statische IP-Adresse und kein Gateway im LAN bekommt und der DHCP-Client nicht verwendet wird - sonst kann es sein dass die Defaultroute am Edgerouter auf den eigenen Internetzugang zeigt und Traffic aus dem Funkfeuer dorthin abbiegt. Das könnte man zwar über spezielle Routingregeln verhindern - aber einfacher ist eine statische IP-Konfiguration ohne lokalem Gateway.
Damit das lokale Netzwerk nicht für Funkfeuer erreichbar ist, ist das Einrichten von Firewallregeln stark zu empfehlen. Hierzu ist über "Firewall/NAT" - "Firewall Policies" - "Add Ruleset" ein neues Ruleset mit einer Standard-Accept-Policy anzulegen. Danach wird eine Drop-Regel für "All protocols" mit den States "Invalid" und "New" mit Destination des LAN-Netzwerks (z.B. "192.168.0.0/16") angelegt. Bei "Interfaces" wird diese Regel am LAN-Netzwerkinterface des EdgeRouters in der "out" Direction angewandt - schon können keine unerwünschten Pakete aus dem Funkfeuer mehr Richtung LAN abbiegen.
Um IPs im Funkfeuer aus dem LAN zu erreichen müssen die entsprechenden Netze auf die LAN-IP des EdgeRouters geroutet werden. Zusätzlich müssen am EdgeRouter unter "Firewall/NAT" - "NAT" entsprechende NAT-Regeln angelegt werden damit der Verkehr aus dem LAN auf eine gültige Funkfeuer-IP übersetzt wird. Das kann z.B. über eine NAT-Regel am Mesh-Interface mit Translation "Use Masquerade", "All protocols" und "Src Address" dem LAN-Netzwerk erfolgen.
Zu beachten ist dass je nach Konfiguration für jedes Funkfeuer-Interface am EdgeRouter eine eigene NAT-Regel angelegt werden muss.
Natürlich gibt es noch unzählige weitere Varianten ein lokales Netzwerk an die EdgeRouter-Lösung anzubinden und so den EdgeRouter z.B. als LAN-Gateway mit gleichzeitiger Funkfeuer-Anbindung zu verwenden. Das kann bis hin zu einem automatischen Failover zwischen einer kommerziellen Internetverbindung und Funkfeuer gehen.. und weiter.
UNMS
Über UNMS - "Ubiquiti Network Management System" - kann der EdgeRouter zentral verwaltet, überwacht und gesichert werden.
Dazu ist unter "System" - "UNMS Connection" die Funktion zu aktivieren und bei "UNMS key" der Connection-Key einzutragen - danach sollte sich der EdgeRouter beim UNMS melden und entsprechend administrierbar sein.