summaryrefslogtreecommitdiff
path: root/_posts/2022-11-20-eine-kleine-netzwerk-reise.md
diff options
context:
space:
mode:
authoruvok cheetah2022-11-20 13:43:00 +0100
committeruvok cheetah2022-11-20 13:43:00 +0100
commit8b99f6f7857957fd932f3ecfb5ce6f89fabd6af7 (patch)
treef283a109458d01808c8ddae341a180ae9dbcc0fb /_posts/2022-11-20-eine-kleine-netzwerk-reise.md
parente8bd29530a9f0f96fd11536c0053bf851cb58290 (diff)
Add networking post
Diffstat (limited to '_posts/2022-11-20-eine-kleine-netzwerk-reise.md')
-rw-r--r--_posts/2022-11-20-eine-kleine-netzwerk-reise.md227
1 files changed, 227 insertions, 0 deletions
diff --git a/_posts/2022-11-20-eine-kleine-netzwerk-reise.md b/_posts/2022-11-20-eine-kleine-netzwerk-reise.md
new file mode 100644
index 0000000..1bd389b
--- /dev/null
+++ b/_posts/2022-11-20-eine-kleine-netzwerk-reise.md
@@ -0,0 +1,227 @@
+---
+layout: post
+title: Eine kleine Netzwerk-Reise
+date: 2022-11-20 12:36 +0100
+lang: de
+category: tech
+---
+
+Der "Ottonormalverbraucher" hat vermutlich nur das Plastikkästchen seines
+Internetanbieters zu hause hängen. Dieser Artikel soll nur ein Writeup meines
+Netzwerkaufbaus werden. Es geht um persönliche Erfahrungen, weniger um eine
+Anleitung. Produktnamen nenne ich hier nur der Vollständigkeit halber.
+
+So fing auch meine Netzwerk-Reise an, eine "FritzBox" des Herstellers "AVM",
+sowohl für WLAN als auch für das LAN. Es tut, was es soll, was will man mehr?
+
+## Lange Leitung
+
+Ein Problem, dass ich recht früh nach Einzug hatte: Die TAE-Dose zum Anschluss
+des Internets ist im Flur. Da hing auch dementsprechend der Router. Der
+auserkorene Platz für meinen PC im Wohnzimmer liegt aber im anderen Eck der
+Wohnung.
+
+Nun, ich glaube, anfangs habe ich noch mit WLAN hantiert. Unter Linux eh so ein
+hit-or-miss, je nachdem, welchen WLAN-Adapter man benutzt. Es lief nie
+zufriedenstellend.
+
+Die nächste Idee war "Power-LAN", also LAN über die Steckdose. Ich hab mich
+glaub ich mehrere Wochen damit herumgeschlagen. Am Ende war das aber mit mehr
+Fluchen verbunden. Die Konnektivität brach sporadisch einfach mal zusammen.
+Kein Ping ging mehr durch, es half nur ein Reset des Power-LAN-Adapters, meist
+verbunden mit Aus- und Einstecken, und damit verbunden der Neustart des PCs.
+
+Finale Lösung war, mir ein 50m-LAN-Kabel zu kaufen, dazu Kabelkanal, und das
+Kabel dann halt schön an der Wand entlang Wohnzimmer-Flur zu verlegen. Das
+liegt heute noch so, teilweise noch vor den Schränken entlang, die zu dem
+Zeitpunkt halt schon eingerichtet waren. Schön ist anders, aber es
+funktioniert. Nachteil ist halt, dass das Kabel unter der Wohnzimmertür
+entlang verläuft, und beim Öffnen/Schließen der Tür mitgezogen wird. (Ich wohn
+zur Miete. Ich werd nicht die Wand aufreißen oder große Löcher für das Kabel
+reinbohren...).
+
+## Separates VoIP?
+
+Irgendwann dachte ich mir mal, es wäre interessant, die Telefonie separat zu
+Regeln. Das Kästchen, das VoIP übernimmt, war aber mehr schlecht als recht
+einzurichten (umständlich), und irgendwie gab es immer wieder Probleme, dass
+Rufe nicht ein- oder ausgingen. Keine Ahnung, vielleicht ist da was mit den
+Firewall-Regeln der FritzBox kollidiert, es war mir am Ende zu müßig.
+
+## Mehr WLAN!
+
+Das nächste Problem war, dass ich irgendwann zunehmend Probleme mit dem WLAN
+der FritzBox hatte, vorwiegend Verbindungsabbrüche mit dem Smartphone.
+
+Ich hab mir dann den Rat von Bekannten zu Herzen genommen und mit einen Access
+Point der Firma Ubiquity geholt.
+
+Das mit der separaten Controller-Software habe ich anfangs noch auf meinem
+Haupt-PC laufen lassen. Wird ja eh nur zur Konfigurations-Änderung gebraucht.
+Das Monitoring ist mir recht egal. Bis heute bekomme ich da Warnungen über tlw.
+schlechte "WiFi-Experience". Joa, Wohnung ist halt so geformt, wie sie geformt
+ist.
+
+## Einschub: Werbeblocker
+
+Ich glaub, einen Raspberry Pi mit PiHole hatte ich schon relativ früh laufen.
+Bei einem sporadischen Stromausfall war halt nur meist das Dateisystem der
+SD-Karte hinüber. Das hat mich sehr geärgert. Aber wenn er lief, wurde Werbung
+halt blockiert.
+
+## (Virtuelles) HomeOffice
+
+Was zuerst kam, weiß ich nicht mehr.
+
+1) Es ging ins HomeOffice. Ich wollte den HomeOffice-PC allerdings nicht in
+meinem "Privat-LAN" laufen lassen.
+
+2) Ich hab mir einen kleinen (Mini-?)PC zugelegt, auf den ich Proxmox
+geklöppelt habe. Eine der ersten Anwendungen, die ich virtualisiert habe, war
+PiHole.
+
+Mit der Kombi aus beidem, und einem Paar "Smart Switches", konnte ich das
+Problem lösen. Mit VLANs hatte ich bisher nicht viel zu tun. Die Einrichtung
+war daher etwas müßig. Aber mit den Switches konnte ich meinen Home-Office-PC
+in ein separates Netzwerk-Segment verbannen. Gleichzeitig war es ein Problem,
+dass die FritzBox nur ein Netz verwalten kann. (Na gut, zwei, wenn man das
+"Gast-LAN" mitzählt).
+
+Nach einiger Recherche bin ich dann zu OPNsense gekommen. Das wurde auch in
+Proxmox geworfen, die Netzwerkinterfaces aus Proxmox eingeleitet (die
+Einrichtung von VLANs in Proxmox war mit einigem Gerätsel verbunden. Die
+Verbindung zur FB war ein separates VLAN), und anschließend in Proxmox.
+Irgendwann lief es dann.
+
+## Mehr WLAN!
+
+Zu der Zeit habe ich mir dann auch einen Saugroboter zugelegt, nachdem ich von
+Valetudo gehört habe. (Die "Cloud" läuft auf dem Saugroboter selbst). Obwohl
+streng genommen nicht notwendig, habe ich also ein separates WLAN für "IoT"
+eingerichtet. Der Saugroboter ist momentan auch mein einziges "IoT"-Gerät,
+sonst halte ich mich von dem Teufelszeug ;) fern.
+
+Die APs von Ubiquity unterstützen das glücklicherweise. Hat sich also als gute
+Wahl erwiesen.
+
+## WPA Enterprise. Because I can.
+
+Irgendwann dachte ich mal, "WPA Personal" mit "pre-shared key" (also
+"Passwort", was üblicherweise im privaten Umfeld eingesetzt wird) ist zu
+langweilig. OPNsense bietet dankenswerterweise auch einen Radius-Server. In
+dem werden, vereinfacht gesagt, die berechtigten Geräte angelegt.
+
+Das hat eine ganze Weile gut funktioniert. Bei WPA Enterprise hat jedoch
+mindestens der Access Point (bzw. der Radius-Server) ein TLS-Zertifikat.
+Android schien mit extrem zickig zu sein, was selbst signierte Zertifikate
+angeht. Jedes mal, wenn ich die WLAN-Konfiguration aus Android entfernt habe,
+hat es das Zertifikat des Radius-Servers mit gelöscht.
+
+Da es mir zu umständlich war, das Zertifikat jedes mal neu zu installieren, bin
+ich zu Zertifikaten von Let's Encrypt gewechselt, indem ich OPNsense unter
+einer Domain ins öffentliche Internet gestellt hab, damit ich mir per ACME
+Zertifikate holen kann.
+
+Irgendwann hat Let's Encrypt dann das "Root Certificate" umgestellt. Das gab
+dann nochmal extreme Problem, ich bekam Meldungen, das "Zertifikat ist
+abgelaufen". Gemeint war iirc das Intermediate-Zertifikat. Da ich keinen Weg
+wusste, das zu lösen, bin ich wieder zurück zu WPA Personal.
+
+## OPNsense - Unbound hat ja auch Blocklisten!
+
+Zwischenzeitlich hab ich meinen PiHole-Container auch wieder abgeschaltet. Ich
+hab gesehen, dass Unbound in OPNsense Blocklisten unterstützt.
+
+Was mich allerdings geärgert hat, dass statische DHCP-Leases anscheinend nicht
+aufgelöst werden, wenn das betreffende Gerät offline war.
+
+## Drop the DNS?
+
+Die Probleme gingen vor ca. einem Monat los. "Bestimmte Webseiten laden nicht
+mehr. Oder arschlahm". Ich konnte mir lange nicht erklären, woran es lag.
+
+DNS? Aber Tests mit dig auf der Kommandozeile verliefen erfolgreich.
+
+Ich hab da viel gefrickelt, geflucht und rebootet. Im Endeffekt war es aber
+ziemlich sicher ein DNS-Problem. Aber die genaue Ursache ist mir bis heute
+nicht klar. Ich vermute, da wurde was gedroppt. Es scheint sich jedenfalls auf
+"irgendwas mit IPv6" zu beziehen. (Oder AAAA Queries).
+
+Bei bestimmten Seiten blieb bei einem HTTPS-Testaufruf via curl der Verkehr bei
+"TLS Client Hello" stecken.
+
+Vor ein paar Wochen hab ich erst wieder meinen PiHole-Container gestartet und
+das wieder als DNS-Server eingerichtet, da Unbound auf OPNsense auch immer ewig
+zum Starten brauchte, eben durch die Blocklisten. Das hat aber anscheinend auch
+nur kurzzeitig geholfen.
+
+## OpenWRT to the rescue
+
+Da ich mit OPNsense so langsam die Nase voll habe, hab ich dann mal OpenWRT in
+Proxmox installiert und OPNsense abgeschaltet. Danach waren die Probleme
+verschwunden.
+
+Die Einstellungen/Firewall habe ich bis heute aber noch nicht vollständig
+migriert.
+
+## Es geht doch nix über separate Hardware
+
+Ich hab mir schon vor längerer Zeit mal einen Ubiquity EdgeRouter X zugelegt.
+Nach einigem Herumspielen damit habe ich allerdings befunden, dass ich mit dem
+User Interface nicht klarkomme. IIRC gab das Interface außerdem in bestimmten
+Bereichen (Firewall?) nur IPv4 her, kein IPv6.
+
+Letztes Wochenende habe ich mit nochmal ein Herz gefasst, OpenWRT darauf
+gepackt, und das virtualisierte OpenWRT ersetzt. Grund war, dass ein iperf-Test
+mittendrin immer abgebrochen ist. Ich vermute mal, die unterliegende Hardware
+des ThinkCentre kam mit dem Paketansturm nicht klar.
+
+## PiHole: D...N...S.... ist... so... langsam
+
+Mit dem Setup dachte ich glücklich werden zu können.
+
+Mein PiHole hat zusätzlich einen Unbound laufen, der die ganzen Queries dann
+rekursiv ausführt.
+
+Bestimmte DNS-Queries brauchten aber tlw. bis zu drei Sekunden. Das hat mich
+als nächstes verrückt gemacht. Das habe ich auch nur herausgefunden, nachdem
+ich auf die Idee gekommen bin, in PiHole mal was anderes als Upstream-DNS-
+Server einzustellen.
+
+Was genau die Ursache ist - werden die DNS-Pakete vielleicht gedroppt? Kommt
+die OpenWRT-Firewall mit dem Connection Tracking nicht klar? Oder dauert das
+eigentliche Parsen der DNS-Replies so lange? - habe ich noch nicht untersucht.
+
+Ich bin dann glücklicherweise auf "Stubby" gestoßen. Das ist ein kleines Stück
+Software, dass auf "normale" DNS-Queries lauscht, und diese dann als
+DNS-over-TLS (DoT) an konfigurierte Server weiterleitet. Und diese Software
+wird sogar für OpenWRT paketiert! Genial!
+
+Also habe ich Stubby installiert, den DoT-Server des Digitalcourage e.V. als
+Upstream eingerichtet, Stubby als Upstream in PiHole eingestellt, und fertig
+ist die Kiste! DNS-Queries dauern jetzt evtl. minimal länger durch die
+Krypto-Operationen, aber ich habe ein Setup, dass ich für zuverlässig halte.
+
+
+## Endstand
+
+- FritzBox läuft im Prinzip nur als Modem und Telefonieserver, und bespielt den
+ EdgeRouter mit OpenWRT.
+- EdgeRouter mit OpenWRT als "Hauptrouter" für mein Heimnetz. Bedient mein
+ "privates LAN", als Router für diverse VLAN-WLANs, und soll zukünftig evtl.
+ noch als Wireguard-Endpoint laufen. Dort läuft auch Stubby als DoT-"Proxy".
+- Ubiquity WLAN-Access-Point. Ist im Prinzip "nur ein Access Point"
+- ThinkCentre mit Proxmox. Hostet diverse VMs, unter anderem das Pi-Hole.
+- Zwei "Smart" Switches, die VLAN-Tagging unterstützen, und dafür sorgen, dass
+ der Verkehr zwischen Wohnzimmer und Flur läuft. Naja - streng genommen nur
+ noch einer. Den zweiten Switch im Flur hat der EdgeRouter ersetzt.
+
+## Verbleibende Ärgerlichkeiten
+
+Nun, ein Problem bleibt noch. Eigentlich wollte ich den Zugriff auf den
+Adressbereich der FritzBox komplett blockieren, sodass keines der Netze mit der
+Konfiguration herumspielen kann - mit der Ausnahme meines "privaten LAN".
+Leider macht OpenWRT das nicht so einfach, man kann keine Regel nach Prinzip
+"blockiere alle Source-Zonen AUSSER einen bestimmten" erstellen, und die
+Ausnahme-Regel wird *hinter* die allgemeine Regel gestellt. Keine Ahnung, wie
+ich das fixen muss. Ist aber relativ unwichtig.