diff options
author | uvok cheetah | 2022-11-20 13:43:00 +0100 |
---|---|---|
committer | uvok cheetah | 2022-11-20 13:43:00 +0100 |
commit | 8b99f6f7857957fd932f3ecfb5ce6f89fabd6af7 (patch) | |
tree | f283a109458d01808c8ddae341a180ae9dbcc0fb /_posts/2022-11-20-eine-kleine-netzwerk-reise.md | |
parent | e8bd29530a9f0f96fd11536c0053bf851cb58290 (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.md | 227 |
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. |