Oct 10 2024 63 mins 55
Nachdem unser aller Heimnetzwerk voll funktionsfähig ist, wollen wir nun von daheim aus die ganze Welt mit unseren Online-Diensten beglücken... oder zumindest bestimmte Dinge selbst an den Start rollen.
Shownotes
Rückbezug STP061: wir haben unser Heimnetzwerk von Schicht 1 bis 3 aufgebaut
- Schicht 3 hatte uns einen Zustellweg durchs Internet gegeben
- Schicht 4 ergänzt Sitzungsverwaltung (z.B. Flusskontrolle und Fehlerkorrektur; hierfür siehe STP005) und Ports
- Warum braucht man Ports? Gedankenexperiment:
- Annahme: Datenpakete werden nur anhand von Quelladresse und Zieladresse zugestellt
- Situation: zwei Prozesse auf demselben PC wollen mit
wikipedia.de
reden - Abschicken der Anfragen klappt eventuell noch, da gleiches Ziel
- Problem: Antwortpaket kommt -> Welcher Prozess kriegt das Paket?
- Technisch formuliert: Wie kann man über diese Netzwerkleitung mehrere unabhängige Verbindungen multiplexen?
Ports: Identifikationsnummer für offene Netzwerkverbindungen; 16 Bit groß (0-65535)
- vgl. Briefkästen/Wohnungsnummern in Mehrparteienhäusern
- Datenpakete auf Schicht 4 werden anhand der Gesamtheit aus Quelladresse, Quellport, Zieladresse, Zielport einer Verbindung zugeordnet
- damit eindeutige Endzustellung an einen Prozess möglich
- auf Server-Seite im Allgemeinen "wohlbekannte" Ports (z.B. 25 für SMTP, 80 für HTTP, 443 für HTTPS), damit Clients ein definiertes Ziel für neue Verbindungen haben
- auf Client-Seite für gewöhnlich automatisch vergebene Ports (meist zwischen 32768-65535)
- Praxisbeispiel: im Browser eine Webseite aufmachen, dann in der Konsole aktive Verbindungen auflisten mit
ss -utpn -o state connected
Wie kann ich zuhause einen Server-Prozess betreiben?
- Außenwelt muss meine IP-Adresse finden können und den entsprechenden Port erreichen können
- Problem 1: IP-Adresse wird durch den Internetanbieter bestimmt und ändert sich -> Dynamisches DNS (nicht zu verwechseln mit der Firma "DynDNS", die nur ein möglicher Anbieter ist)
- Problem 2: Router hat für gewöhnlich einen Paketfilter (Firewall), der nur ausgehende sowie bekannte Verbindungen durchlässt -> Ausnahmeregel ("Port Opening") muss konfiguriert werden; je nach Betriebssystem auch dasselbe auf dem Server selbst erforderlich
- Problem 3: IPv4 mit NAT, lokaler Rechner mit Server-Prozess hat nur eine lokale IP-Adresse -> Portweiterleitung muss konfiguriert werden (damit dann meist auch eine Ausnahmeregel in der Firewall verbunden)
Was kann ich zuhause betreiben?
- E-Mail definitiv nicht, MTAs aus Endkunden-IP-Bereichen werden von den großen Betreibern als Spam-Schleudern interpretiert und blockiert
- Videotelefonie auch eher nicht, weil da NAT-Durchdringung noch problematischer ist
- Faustregel: fast alles mit HTTP sollte gehen, sofern man nicht durch den oft dünnen Upstream von Endkunden-Internetanschlüssen begrenzt ist
- Xyrill betreibt (teils zuhause, teils auf gemieteten Servern im Rechenzentrum): Gitea, Jitsi Meet, Matrix, NextCloud, nginx (siehe STP022), Prometheus (siehe STP032)
- andere Vorschläge: Bitwarden, Kodi, Mastodon oder andere ActivityPub-Server (siehe STP057), Paperless-NGX, Pi-Hole
im Gespräch erwähnt
- Pentaradio zu Quellcode-Verwaltung mit Git: https://c3d2.de/news/pentaradio24-20210727.html
- Audio-Streaming-Software: https://www.navidrome.org/