Hardware/Router/EdgeRouter X-SFP: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Zur Navigation springen Zur Suche springen
(→‎Initiales Flashen von OpenWRT: serielle Konsole mit aktuellem Bootloader nicht mehr zwingend notwendig)
 
(20 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 14: Zeile 14:
|switch=Ja
|switch=Ja
|wifi=Nein
|wifi=Nein
|firmware=Original, [https://downloads.openwrt.org/releases/19.07.3/targets/ramips/mt7621/openwrt-19.07.3-ramips-mt7621-ubnt-erx-sfp-initramfs-kernel.bin OpenWRT 19.07.3]
|firmware=Original, OpenWrt 21.02.1]
|flashmethod=Web
|flashmethod=Web
|flashguide=[https://dl.ubnt.com/guides/edgemax/EdgeOS_UG.pdf Beschreibung Original-FW]
|flashguide=[https://dl.ubnt.com/guides/edgemax/EdgeOS_UG.pdf Beschreibung Original-FW]
Zeile 24: Zeile 24:
== Allgemeines zum Gerät ==
== Allgemeines zum Gerät ==


Die [https://de.wikipedia.org/wiki/Small_Form-factor_Pluggable SFP]-Version des [[Hardware/EdgeRouter_X|EdgeRouter X]] bietet auf allen fünf Gigabit-Ethernet-Ports [[Hardware/PoE#passive_PoE|passive PoE]]. Das ermöglicht den Betrieb aktiver Antennen ohne zusätzliche Spannungsversorgung. Das mitgelieferte Netzteil mit Hohlstecker liefert 24V 2,5A, der Router benötigt etwa. 80mA. Entgegen der Produktbeschreibung kann er auch über passive PoE am ersten Ethernet-Port versorgt werden.
Die [https://de.wikipedia.org/wiki/Small_Form-factor_Pluggable SFP]-Version des [[Hardware/Router/EdgeRouter_X|EdgeRouter X]] bietet auf allen fünf Gigabit-Ethernet-Ports [[Hardware/PoE#passive_PoE|passive PoE]]. Das ermöglicht den Betrieb aktiver Antennen ohne zusätzliche Spannungsversorgung. Das mitgelieferte Netzteil mit Hohlstecker liefert 24V 2,5A, der Router benötigt etwa. 80mA. Entgegen der Produktbeschreibung kann er auch über passive PoE am ersten Ethernet-Port versorgt werden.
Für Einsatz im Freien gibt es die [[Hardware/EdgePoint_R6|EdgePoint R6]] Variante.
Achtung: Der Router akzeptiert auch wirklich '''NUR 24V passiv''' über PoE-In ([https://dl.ubnt.com/datasheets/edgemax/EdgeRouter_X_DS.pdf Quelle1] bzw. [https://dl.ubnt.com/qsg/ER-X-SFP/ER-X-SFP_DE.html Quelle2])


== Betrieb mit Original-Firmware==
== Betrieb mit Original-Firmware==
Zeile 57: Zeile 57:
* Manchmal "verschwinden" Interfaces, ersichtlich an schwarzem Symbol oben in der Mitte auf der Weboberfläche, dies kann behoben werden, indem bei der Config das Interface manuell wieder hinzugefügt wird. VLANs und Bridges müssen ebenso wieder konfiguriert werden.
* Manchmal "verschwinden" Interfaces, ersichtlich an schwarzem Symbol oben in der Mitte auf der Weboberfläche, dies kann behoben werden, indem bei der Config das Interface manuell wieder hinzugefügt wird. VLANs und Bridges müssen ebenso wieder konfiguriert werden.


== Betrieb mit OpenWRT ==
== Betrieb mit OpenWrt ==


Der Router kann alternativ zur Original-(Ubiquiti-)-Firmware mit [https://openwrt.org/toh/ubiquiti/ubiquiti_edgerouter_x_er-x_ka OpenWRT] betrieben werden. Ein paar Unterschiede, die die Entscheidung erleichtern können:
Der Router kann alternativ zur Original-(Ubiquiti-)-Firmware mit [https://openwrt.org/toh/ubiquiti/ubiquiti_edgerouter_x_er-x_ka OpenWrt] betrieben werden. Ein paar Unterschiede, die die Entscheidung erleichtern können:


* Die Original-FW hat einen Wizard für OLSR, das fehlt in OpenWRT bisher
* Die Original-FW hat einen Wizard für OLSR, das fehlt in OpenWrt bisher
* Man kann mit der Original-FW PoE ein- und ausschalten, das funktioniert in OpenWRT bisher nur über die Kommandozeile
* Man kann mit der Original-FW PoE ein- und ausschalten, das funktioniert in OpenWrt bisher nur über die Kommandozeile
* Mit OpenWRT sind sämliche OpenWRT-Pakete nutzbar
* Mit OpenWrt sind sämliche OpenWrt-Pakete nutzbar
* OpenWRT ist im Gegensatz zur Original-FW open source, das heißt, die Community kann laufend Verbesserungen vornehmen (und tut das auch)
* OpenWrt ist im Gegensatz zur Original-FW open source, das heißt, die Community kann laufend Verbesserungen vornehmen (und tut das auch)
* Der EdgeRouter X(-SFP) wird offiziell von OpenWRT unterstützt, das heißt, es gibt laufend fertige Firmware zum Download
* Der EdgeRouter X(-SFP) wird offiziell von OpenWrt unterstützt, das heißt, es gibt laufend fertige Firmware zum Download
* [[Projekte/v642/IPv4_Support|4-in-6]] funktioniert momentan mit der Original-FW nicht brauchbar, das Kernel-Modul verpackt die IPv4-Pakete doppelt und fehlerhaft. Wer 4-in-6 nutzen möchte, ist mit OpenWRT besser beraten, oder verwendet zusätzlich OLSRv1 für IPv4 mit der Original-FW.
* [[Projekte/v642/IPv4_Support|4-in-6]] funktioniert momentan mit der Original-FW nicht brauchbar, das Kernel-Modul verpackt die IPv4-Pakete doppelt und fehlerhaft. Wer 4-in-6 nutzen möchte, ist mit OpenWrt besser beraten, oder verwendet zusätzlich OLSRv1 für IPv4 mit der Original-FW.
* Das initiale Flashen mit OpenWRT ist etwas umständlich, es muss dazu das Gehäuse geöffnet werden. Sobald OpenWRT installiert ist, können neue Versionen per Web-Interface eingespielt werden.


=== Initiales Flashen von OpenWRT ===
=== Initiales Flashen von OpenWrt ===


Damit es möglich ist bei Problemen mit der Firmware ein [https://help.ui.com/hc/en-us/articles/360018189493|Manual TFTP Recovery] durchführen zu können, ist es Empfehlenswert EdgeOS 2.0.6 zu flashen und dann den Bootloader zu aktualisieren, siehe [https://help.ui.com/hc/en-us/articles/360009932554-EdgeRouter-How-to-Update-the-Bootloader|How to Update the Bootloader]
Damit es möglich ist bei Problemen mit der Firmware ein [https://help.ubnt.com/hc/en-us/articles/360019289113 TFTP Recovery] durchführen zu können, ist es Empfehlenswert EdgeOS 2.0.6 zu flashen und dann den Bootloader zu aktualisieren, siehe [https://help.ui.com/hc/en-us/articles/360009932554-EdgeRouter-How-to-Update-the-Bootloader How to Update the Bootloader]


Anschließend kann ganz normal z.B. folgende Firmware installiert werden, die klein genug ist, dass es mit EdgeOS funktioniert:
Anschließend kann ganz normal z.B. folgende Firmware installiert werden, die klein genug ist, dass es mit EdgeOS funktioniert: [http://openwrt.jaru.eu.org/openwrt-18.06/targets/ramips/mt7621/openwrt-18.06-snapshot-r7911-f65330d27d-ramips-mt7621-ubnt-erx-sfp-initramfs-factory.tar OpenWrt 18.06 initramfs-factory]
http://openwrt.jaru.eu.org/openwrt-18.06/targets/ramips/mt7621/openwrt-18.06-snapshot-r7911-f65330d27d-ramips-mt7621-ubnt-erx-sfp-initramfs-factory.tar


Unter Linux kann das automatisiert mit einem bash Skript erledigt werden: https://github.com/damadmai/edgemax_openwrt
Unter Linux kann das automatisiert mit einem bash Skript erledigt werden: https://github.com/damadmai/edgemax_openwrt


Sobald OpenWRT installiert ist, kann via Web-Interface auf eine aktuelle OpenWRT Firmware aktualisiert werden.  
=== Upgrade von OpenWrt (bei bereist installiertem OpenWrt) ===
 
Einfach über CLI oder Web-Interface (LuCI) das neue Sysupgrade-Image flashen.
 
=== Recovery ===


Der Weg zurück zu EdgeOS kann über TFTP Recovery gegangen werden, alternativ ist es auch möglich die serielle Konsole dafür zu verwenden.
Der Weg zurück zu EdgeOS kann über TFTP Recovery gegangen werden, alternativ ist es auch möglich die serielle Konsole dafür zu verwenden.


Siehe https://an.undulating.space/post/181228-erx_install_openwrt_recover_edgeos/ bzw. https://community.ubnt.com/t5/EdgeMAX/ERX-ERX-SFP-System-Recovery/td-p/2056921
Siehe https://an.undulating.space/post/181228-erx_install_openwrt_recover_edgeos/ bzw. https://community.ubnt.com/t5/EdgeMAX/ERX-ERX-SFP-System-Recovery/td-p/2056921 bzw. [https://help.ui.com/hc/en-us/articles/360018189493 Manual TFTP Recovery]
 
Dateien aus dem Google Share der Anleitung sind auch hier abgelegt: https://drive.google.com/drive/folders/1nmuKZSkGEOAzZfp5xE0bEZ4WBxLaqUxd


# Gummi-Stöpsel aus dem SFP-Port entfernen
# Gummi-Stöpsel aus dem SFP-Port entfernen
# Die zwei Schräubchen auf der Rückseite rausdrehen, Gerät öffnen
# Die zwei Schräubchen auf der Rückseite rausdrehen, Gerät öffnen
# TFTP-Server mit OpenWRT-Image (initramfs) vorbereiten. Das Initramfs entweder selbst kompilieren oder mich (David) anschreiben. Werde ich in Zukunft irgendwo raufladen.
# TFTP-Server mit OpenWrt-Image (initramfs) vorbereiten. Das Initramfs entweder selbst kompilieren oder mich (David) anschreiben. Werde ich in Zukunft irgendwo raufladen.
# Serial-Header identifizieren, das ist der mit den vier Pins, die nach oben wegstehen. Von der Vorderseite (mit den Ports) aus gezählt, sind das +3,3 V, TX, RX, GND.
# Serial-Header identifizieren, das ist der mit den vier Pins, die nach oben wegstehen. Von der Vorderseite (mit den Ports) aus gezählt, sind das +3,3 V, TX, RX, GND.
# USB-TTY-Konverter verbinden (die +3,3 V werden '''nicht''' verbunden), gibt's auch im Automaten im MetaLab. Serielle Konsole öffnen.
# USB-TTY-Konverter verbinden (die +3,3 V werden '''nicht''' verbunden), gibt's auch im Automaten im MetaLab. Serielle Konsole öffnen.
# ER-X booten und beim Erscheinen des Boot-Menüs die entsprechende Option wählen und IP-Konfig eingeben
# ER-X booten und beim Erscheinen des Boot-Menüs die entsprechende Option wählen und IP-Konfig eingeben
# Sobald OpenWRT gestartet ist, kann man sich via 192.168.1.1 (nicht über die IP, die oben eingegeben wurde!) einloggen. Anschliessend das Sysupgrade-Image wie gewohnt flashen (CLI oder Web-Interface (Luci)).
# Sobald OpenWrt gestartet ist, kann man sich via 192.168.1.1 (nicht über die IP, die oben eingegeben wurde!) einloggen. Anschliessend das Sysupgrade-Image wie gewohnt flashen (CLI oder Web-Interface (Luci)).
 
== NAT performance benchmark der unterschiedlichen Betriebssyteme ==
 
https://an.undulating.space/post/180927-er_alternate_firmware_benchmarks/
 
== Experimental /dev/crypto Support unter OpenWRT ==
 
OpenWrt SNAPSHOT r18523-8c501bf9fe + https://github.com/vschagen/mtk-eip93
 
Neue sha1.h und sha2.h Headers aus der Kernel Version 5.14+ nötig. Ein einfaches kopieren der Headerfiles ist aber ausreichend. Build Anleitung / Fertige Images folgen.
 
root@OpenWrt:~# openssl engine -t -c
(dynamic) Dynamic engine loading support
    [ unavailable ]
(devcrypto) /dev/crypto engine
[DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-CTR, AES-192-CTR, AES-256-CTR, AES-128-ECB, AES-192-ECB, AES-256-ECB]
    [ available ]
 
root@OpenWrt:~# openssl engine -pre DUMP_INFO devcrypto
(devcrypto) /dev/crypto engine
Information about ciphers supported by the /dev/crypto engine:
Cipher DES-CBC, NID=31, /dev/crypto info: id=1, driver=cbc(des-eip93) (hw accelerated)
Cipher DES-EDE3-CBC, NID=44, /dev/crypto info: id=2, driver=cbc(des3_ede-eip93) (hw accelerated)
Cipher BF-CBC, NID=91, /dev/crypto info: id=3, CIOCGSESSION (session open call) failed
Cipher CAST5-CBC, NID=108, /dev/crypto info: id=4, CIOCGSESSION (session open call) failed
Cipher AES-128-CBC, NID=419, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher AES-192-CBC, NID=423, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher AES-256-CBC, NID=427, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher RC4, NID=5, /dev/crypto info: id=12, CIOCGSESSION (session open call) failed
Cipher AES-128-CTR, NID=904, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-192-CTR, NID=905, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-256-CTR, NID=906, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-128-ECB, NID=418, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)
Cipher AES-192-ECB, NID=422, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)
Cipher AES-256-ECB, NID=426, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)
Information about digests supported by the /dev/crypto engine:
Digest MD5, NID=4, /dev/crypto info: id=13, driver=md5-generic (software), CIOCCPHASH capable
Digest SHA1, NID=64, /dev/crypto info: id=14, driver=sha1-generic (software), CIOCCPHASH capable
Digest RIPEMD160, NID=117, /dev/crypto info: id=102, driver=unknown. CIOCGSESSION (session open) failed
Digest SHA224, NID=675, /dev/crypto info: id=103, driver=sha224-generic (software), CIOCCPHASH capable
Digest SHA256, NID=672, /dev/crypto info: id=104, driver=sha256-generic (software), CIOCCPHASH capable
Digest SHA384, NID=673, /dev/crypto info: id=105, driver=sha384-generic (software), CIOCCPHASH capable
Digest SHA512, NID=674, /dev/crypto info: id=106, driver=sha512-generic (software), CIOCCPHASH capable
 
Hier das Snippet für /etc/ssl/openssl.cnf :
 
[default]
openssl_conf=openssl_def
[openssl_def]
# this is the main library configuration section
engines=engine_section
[engine_section]
# this is the engine configuration section, where the engines are listed
devcrypto=devcrypto_section
[devcrypto_section]
# this is the section where the devcrypto engine commands are used
CIPHERS=ALL
DIGESTS=ALL


Für den SFP-Port gibt es einen Patch: https://dev.opennet-initiative.de/browser/on_firmware/patches/edgerouterx-sfp.patch
Außerdem muss man die Files /etc/strongswan.d/charon/aes.conf & /etc/strongswan.d/charon/sha* entfernen um das OpenSSL Plugin zu forcen.


=== Upgrade von OpenWRT (bei bestehendem OpenWRT) ===


Einfach über CLI oder Web-Interface (LuCI) das neue Sysupgrade-Image flashen.
IPSec Performance :
 
MSS 1398 (max MTU, 1438)
 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval          Transfer    Bitrate        Retr
[  5]  0.00-300.02 sec  6.61 GBytes  189 Mbits/sec  13342            sender
[  5]  0.00-300.00 sec  6.60 GBytes  189 Mbits/sec                  receiver
=> ~17000 packets/sec
 
MSS 536 (eq. MTU 576)  
 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval          Transfer    Bitrate        Retr
[  5]  0.00-300.01 sec  3.01 GBytes  86.2 Mbits/sec  24328            sender
[  5]  0.00-300.00 sec  3.01 GBytes  86.1 Mbits/sec                  receiver
=> ~19500 packets/sec
 
MSS 90 (eq. MTU 130)
 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval          Transfer    Bitrate        Retr
[  5]  0.00-300.02 sec  576 MBytes  16.1 Mbits/sec  115389            sender
[  5]  0.00-300.00 sec  573 MBytes  16.0 Mbits/sec                  receiver
=> ~16100 packets/sec
 
Testgerät Gegenseite : Fortigate 100D (via Innonet FTTH)
 
 
IPSec Parameter :
 
 
Auth : Shared PSK
 
Phase 1 : AES128-SHA256 DH14


== NAT performance benchmark der unterschiedlichen Betriebssyteme ==
Phase 2 : AES128-SHA256 (ohne PFS)


https://an.undulating.space/post/180927-er_alternate_firmware_benchmarks/
Strongswan forced auf OpenSSL Plugin


== aktueller Bootloader mit TFTP Recovery ==
Routed VPN via xfrm Interface


[https://help.ubnt.com/hc/en-us/articles/360009932554-EdgeRouter-How-to-Update-Bootloader Bootloader Update]
[https://help.ubnt.com/hc/en-us/articles/360019289113 TFTP Recovery Anleitung]


Vielleicht als Alternative zu OpenVPN brauchbar, und ab der Version 2.6/3 von OpenVPN auch für Data Channel Offload verwendbar.
== Bezugsquellen ==
== Bezugsquellen ==


Zeile 114: Zeile 209:
* [https://www.amazon.de/s/&field-keywords=edgerouter+x-sfp Amazon]
* [https://www.amazon.de/s/&field-keywords=edgerouter+x-sfp Amazon]
* [https://geizhals.at/ubiquiti-edgerouter-er-x-sfp-a1271802.html Geizhals]
* [https://geizhals.at/ubiquiti-edgerouter-er-x-sfp-a1271802.html Geizhals]
Und hier noch zwei "Geheimtipp"-Shops, die nicht zwangsweise über Geizhals auffindbar sind, aber wo der momentan (Stand 2022) schlecht verfügbare Router kurzfristig verfügbar sein kann:
* [https://www.senetic.at/product/ER-X-SFP Senetic]
* [https://www.varia-store.com/de/produkt/395822-er-x-sfp-eu-edgerouter-6-ports.html Varia]

Aktuelle Version vom 2. Juni 2024, 12:17 Uhr

Ubiquiti EdgeRouter X-SFP
Edgerouter-x-sfp.jpg
Name

EdgeRouter X-SFP

Hersteller

Ubiquiti

Veraltet

Nein

Outdoor

Nein

Antenne

Nein

Funkfeuer
v642

Ja

System
CPU

MediaTek MT7621AT, 880 MHz

RAM

256 MB

Flash

256 MB NAND

PoE

passiv, 5 Ports, Gbit, schaltbar

Netzwerk
LAN-Ports

5

Switch

Ja

WLAN

Nein

Firmware
Firmware

Original, OpenWrt 21.02.1]

Flashmethode

Web

Flashanleitung

Beschreibung Original-FW

Konfiguration

Setup0xFF-Wizard, manuelle Konfiguration

Router



Allgemeines zum Gerät

Die SFP-Version des EdgeRouter X bietet auf allen fünf Gigabit-Ethernet-Ports passive PoE. Das ermöglicht den Betrieb aktiver Antennen ohne zusätzliche Spannungsversorgung. Das mitgelieferte Netzteil mit Hohlstecker liefert 24V 2,5A, der Router benötigt etwa. 80mA. Entgegen der Produktbeschreibung kann er auch über passive PoE am ersten Ethernet-Port versorgt werden. Achtung: Der Router akzeptiert auch wirklich NUR 24V passiv über PoE-In (Quelle1 bzw. Quelle2)

Betrieb mit Original-Firmware

Hier eine Übersicht, des derzeit üblichen Setups. Mit diesem Gerät können ein/mehrere Antennen mittels am Router laufenden OLSR daemon (Wizard ermöglicht eine simple Installation und Verwaltung per GUI) im Bridgemodus laufend verwendet werden. Hierbei muss keine Custom Firmware aufgespielt werden, und es kann weiterhin das gewohnte Upgrade vom Hersteller aufgespielt werden.

Initiales Konfigurieren

Schritte zur Konfiguration der Original-Firmware
  • Aktuellstes Firmware Upgrade einspielen und danach auf Werkseinstellungen reseten (Hardware Reset mit Reset-Taster am Router! Bei Software Reset per CLI/GUI wird nur die Startup-Config zurück gesetzt. Ab EdgeOS 2.0.6 mit aktuellem Bootloader muss man den Reset Knopf rechtzeitig (nachdem eth4 nach schnellem und dann langsamen Blinken aus geht) loslassen, damit der Reset durchgeführt wird, ansonsten geht der Router in den TFTP flash Modus.)
  • Bootloaderupdate prüfen. Nur auf ER-X / ER-X-SFP aktualisieren (NICHT EdgePoint EP-R6!!!) - könnte in einer aktuellen Firmware-Version bereits enthalten sein. Nach dem ersten Reboot mit der neuen Firmware-Version ggf. noch ein zweites Mal rebooten, um das Bootloader-Update wirksam zu machen. Der CLI-Command "show system boot-image" gibt Auskunft über den Zustand.
  • Firmwareupdate auf aktuelle EdgeOS-Version
  • Einfache Methode - (falls es Probleme gibt, bitte bei @pocki melden)
    • Setup0xFF - Wizard installieren
    • Notwendige Daten eintragen, Apply klicken & warten bis alles automatisch konfiguriert ist.
  • ...oder manueller Methode - Schritte zur Konfiguration der Original-Firmware (bzw. Google Docs)
    • Anlegen Bridge-Interface mit public 0xFF-IPv4-Adresse
    • Anlegen Management-VLAN 1100 mit interner 10-er IP, NAT/masquerade (evtl. Portforwarding)
    • Installation OLSRd-Wizard (v1 für IPV4, v2 für IPv6)

Links zu Wizards (OLSR,...)

Known Issues

  • In der VLAN-Config scheinen die ID des Eintrags und die VLAN-ID übereinstimmen zu müssen. Außerdem scheint es einen Reboot für das Übernehmen der VLAN zu brauchen.
  • Manchmal "verschwinden" Interfaces, ersichtlich an schwarzem Symbol oben in der Mitte auf der Weboberfläche, dies kann behoben werden, indem bei der Config das Interface manuell wieder hinzugefügt wird. VLANs und Bridges müssen ebenso wieder konfiguriert werden.

Betrieb mit OpenWrt

Der Router kann alternativ zur Original-(Ubiquiti-)-Firmware mit OpenWrt betrieben werden. Ein paar Unterschiede, die die Entscheidung erleichtern können:

  • Die Original-FW hat einen Wizard für OLSR, das fehlt in OpenWrt bisher
  • Man kann mit der Original-FW PoE ein- und ausschalten, das funktioniert in OpenWrt bisher nur über die Kommandozeile
  • Mit OpenWrt sind sämliche OpenWrt-Pakete nutzbar
  • OpenWrt ist im Gegensatz zur Original-FW open source, das heißt, die Community kann laufend Verbesserungen vornehmen (und tut das auch)
  • Der EdgeRouter X(-SFP) wird offiziell von OpenWrt unterstützt, das heißt, es gibt laufend fertige Firmware zum Download
  • 4-in-6 funktioniert momentan mit der Original-FW nicht brauchbar, das Kernel-Modul verpackt die IPv4-Pakete doppelt und fehlerhaft. Wer 4-in-6 nutzen möchte, ist mit OpenWrt besser beraten, oder verwendet zusätzlich OLSRv1 für IPv4 mit der Original-FW.

Initiales Flashen von OpenWrt

Damit es möglich ist bei Problemen mit der Firmware ein TFTP Recovery durchführen zu können, ist es Empfehlenswert EdgeOS 2.0.6 zu flashen und dann den Bootloader zu aktualisieren, siehe How to Update the Bootloader

Anschließend kann ganz normal z.B. folgende Firmware installiert werden, die klein genug ist, dass es mit EdgeOS funktioniert: OpenWrt 18.06 initramfs-factory

Unter Linux kann das automatisiert mit einem bash Skript erledigt werden: https://github.com/damadmai/edgemax_openwrt

Upgrade von OpenWrt (bei bereist installiertem OpenWrt)

Einfach über CLI oder Web-Interface (LuCI) das neue Sysupgrade-Image flashen.

Recovery

Der Weg zurück zu EdgeOS kann über TFTP Recovery gegangen werden, alternativ ist es auch möglich die serielle Konsole dafür zu verwenden.

Siehe https://an.undulating.space/post/181228-erx_install_openwrt_recover_edgeos/ bzw. https://community.ubnt.com/t5/EdgeMAX/ERX-ERX-SFP-System-Recovery/td-p/2056921 bzw. Manual TFTP Recovery

  1. Gummi-Stöpsel aus dem SFP-Port entfernen
  2. Die zwei Schräubchen auf der Rückseite rausdrehen, Gerät öffnen
  3. TFTP-Server mit OpenWrt-Image (initramfs) vorbereiten. Das Initramfs entweder selbst kompilieren oder mich (David) anschreiben. Werde ich in Zukunft irgendwo raufladen.
  4. Serial-Header identifizieren, das ist der mit den vier Pins, die nach oben wegstehen. Von der Vorderseite (mit den Ports) aus gezählt, sind das +3,3 V, TX, RX, GND.
  5. USB-TTY-Konverter verbinden (die +3,3 V werden nicht verbunden), gibt's auch im Automaten im MetaLab. Serielle Konsole öffnen.
  6. ER-X booten und beim Erscheinen des Boot-Menüs die entsprechende Option wählen und IP-Konfig eingeben
  7. Sobald OpenWrt gestartet ist, kann man sich via 192.168.1.1 (nicht über die IP, die oben eingegeben wurde!) einloggen. Anschliessend das Sysupgrade-Image wie gewohnt flashen (CLI oder Web-Interface (Luci)).

NAT performance benchmark der unterschiedlichen Betriebssyteme

https://an.undulating.space/post/180927-er_alternate_firmware_benchmarks/

Experimental /dev/crypto Support unter OpenWRT

OpenWrt SNAPSHOT r18523-8c501bf9fe + https://github.com/vschagen/mtk-eip93

Neue sha1.h und sha2.h Headers aus der Kernel Version 5.14+ nötig. Ein einfaches kopieren der Headerfiles ist aber ausreichend. Build Anleitung / Fertige Images folgen.

root@OpenWrt:~# openssl engine -t -c
(dynamic) Dynamic engine loading support
    [ unavailable ]
(devcrypto) /dev/crypto engine
[DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-CTR, AES-192-CTR, AES-256-CTR, AES-128-ECB, AES-192-ECB, AES-256-ECB]
    [ available ]
root@OpenWrt:~# openssl engine -pre DUMP_INFO devcrypto
(devcrypto) /dev/crypto engine
Information about ciphers supported by the /dev/crypto engine:
Cipher DES-CBC, NID=31, /dev/crypto info: id=1, driver=cbc(des-eip93) (hw accelerated)
Cipher DES-EDE3-CBC, NID=44, /dev/crypto info: id=2, driver=cbc(des3_ede-eip93) (hw accelerated)
Cipher BF-CBC, NID=91, /dev/crypto info: id=3, CIOCGSESSION (session open call) failed
Cipher CAST5-CBC, NID=108, /dev/crypto info: id=4, CIOCGSESSION (session open call) failed
Cipher AES-128-CBC, NID=419, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher AES-192-CBC, NID=423, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher AES-256-CBC, NID=427, /dev/crypto info: id=11, driver=cbc(aes-eip93) (hw accelerated)
Cipher RC4, NID=5, /dev/crypto info: id=12, CIOCGSESSION (session open call) failed
Cipher AES-128-CTR, NID=904, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-192-CTR, NID=905, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-256-CTR, NID=906, /dev/crypto info: id=21, driver=ctr(aes-eip93) (hw accelerated)
Cipher AES-128-ECB, NID=418, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)
Cipher AES-192-ECB, NID=422, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)
Cipher AES-256-ECB, NID=426, /dev/crypto info: id=23, driver=ecb(aes-eip93) (hw accelerated)

Information about digests supported by the /dev/crypto engine:
Digest MD5, NID=4, /dev/crypto info: id=13, driver=md5-generic (software), CIOCCPHASH capable
Digest SHA1, NID=64, /dev/crypto info: id=14, driver=sha1-generic (software), CIOCCPHASH capable
Digest RIPEMD160, NID=117, /dev/crypto info: id=102, driver=unknown. CIOCGSESSION (session open) failed
Digest SHA224, NID=675, /dev/crypto info: id=103, driver=sha224-generic (software), CIOCCPHASH capable
Digest SHA256, NID=672, /dev/crypto info: id=104, driver=sha256-generic (software), CIOCCPHASH capable
Digest SHA384, NID=673, /dev/crypto info: id=105, driver=sha384-generic (software), CIOCCPHASH capable
Digest SHA512, NID=674, /dev/crypto info: id=106, driver=sha512-generic (software), CIOCCPHASH capable

Hier das Snippet für /etc/ssl/openssl.cnf :

[default]
openssl_conf=openssl_def

[openssl_def]
# this is the main library configuration section
engines=engine_section

[engine_section]
# this is the engine configuration section, where the engines are listed
devcrypto=devcrypto_section

[devcrypto_section]
# this is the section where the devcrypto engine commands are used
CIPHERS=ALL
DIGESTS=ALL

Außerdem muss man die Files /etc/strongswan.d/charon/aes.conf & /etc/strongswan.d/charon/sha* entfernen um das OpenSSL Plugin zu forcen.


IPSec Performance :

MSS 1398 (max MTU, 1438)

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-300.02 sec  6.61 GBytes   189 Mbits/sec  13342             sender
[  5]   0.00-300.00 sec  6.60 GBytes   189 Mbits/sec                  receiver
=> ~17000 packets/sec

MSS 536 (eq. MTU 576)

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-300.01 sec  3.01 GBytes  86.2 Mbits/sec  24328             sender
[  5]   0.00-300.00 sec  3.01 GBytes  86.1 Mbits/sec                  receiver
=> ~19500 packets/sec

MSS 90 (eq. MTU 130)

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-300.02 sec   576 MBytes  16.1 Mbits/sec  115389             sender
[  5]   0.00-300.00 sec   573 MBytes  16.0 Mbits/sec                  receiver
=> ~16100 packets/sec

Testgerät Gegenseite : Fortigate 100D (via Innonet FTTH)


IPSec Parameter :


Auth : Shared PSK

Phase 1 : AES128-SHA256 DH14

Phase 2 : AES128-SHA256 (ohne PFS)

Strongswan forced auf OpenSSL Plugin

Routed VPN via xfrm Interface


Vielleicht als Alternative zu OpenVPN brauchbar, und ab der Version 2.6/3 von OpenVPN auch für Data Channel Offload verwendbar.

Bezugsquellen

  • Vereinsmitglied Alexander B (alexander@biringer.eu) / wenn ihr lieb fragt, wird dieser vermutlich auch gleich vorkonfiguriert? :)
  • Amazon
  • Geizhals

Und hier noch zwei "Geheimtipp"-Shops, die nicht zwangsweise über Geizhals auffindbar sind, aber wo der momentan (Stand 2022) schlecht verfügbare Router kurzfristig verfügbar sein kann: