LanCache – Der Cache-Server für dein Netzwerk! (V3)

Ich habe schon zwei Anleitungen erstellt, wie du einen LAN-Cache-Server installieren kannst, um deiner LAN-Party ein wenig das Internet zu beschleunigen.
Nun habe ich Version 3 am Start.
Das Einrichten ist noch etwas einfacher geworden.
Alles was du wissen musst, gibts hier im Video:




Vorraussetzungen:
– CPU: Minimum 4×2,0Ghz (um so mehr Nutzer, um so mehr Last liegt an!)
– RAM: Minimum 4GB (mehr ist besser)
– GPU: Nicht unbedingt
– HDD: Minimum 200GB (2TB sind ehr besser) → SSDs empfohlen!
– Netzwerk: Minimum 1Gbit/s
– System: Liniux Debian / Ubuntu ohne Desktop ist ausreichend
– Vollen Root-Zugang (SSH ausreichend)
– Eine freie IPv4-Adresse
– Kein IPv6 für den DHCP-Server (LanCache unterstützt kein IPv6!)

Weitere Hardwareanforderungen von LanCache direkt, findest du HIER.

Wie du ein Linux-Server aufsetzt, zeig ich hier nicht. Das solltes du vor Beginn dieser Anleitung bereits umgesetzt haben.
Weise dem Server ein feste IP-Adresse zu! Sollte sich die IP-Adresse ändern, muss diese Änderung auf jedem Client am Ende aktualisiert werden.


Los gehts!

1. Logge dich auf deinem Linux-Server ein.

2. Update den Server auf die neusten Paketversionen

# apt update && apt upgrade -y

3. Installiere Docker und alle notwendigen Pakete

# sudo apt install curl git -y
# sudo curl -sSL https://get.docker.com/ | sh

4. Überprüfe die Funktionalität von Docker

# sudo systemctl status docker

5. Nun installieren wir Docker Compose. Dazu laden wir die neuste Version herunter, schieben die nach /usr/local/bin/ und machen die Datei ausführbar. Die aktuellen Versionen findest du HIER.

# sudo curl -L https://github.com/docker/compose/releases/download/2.10.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

6. Wir wechseln in ein Verzeichnis, wo die Konfigurationsdaten liegen sollen

# cd /opt/

7. Wir laden uns nun das aktuelle Repo von GitHub herunter

# git clone https://github.com/lancachenet/docker-compose
# mv docker-compose/ lancache

8. Wir wechseln nun in das Verzeichnis

# cd /opt/lancache

9. Nun können wir die Konfiguration von LanCache anpassen. Dazu öffnen wir die .env-Datei

# nano .env

LANCACHE_IP = Füge hier die IP-Adresse des Systems ein, auf dem LanCache laufen soll. Wenn du mehrere nutzen willst, kannst du diese mit einem Leerzeichen dazwischen eingeben.
DNS_BIND_IP = Füge hier ebenfalls die IP-Adresse des LanCache-Systems ein.
UPSTREAM_DNS = Füge hier ein DNS-Server ein, an den alle anderen Anfragen gesickt werden. Nutze z.B. ein Pi-Hole, AdGuard Home, Quad9, CloudFlare, Google, ….
CACHE_ROOT = Gebe hier einen Pfad an, wo die Cache-Daten abgelegt werden sollen. Am besten der Mountpfad zu den großen Festplatten.
CACHE_DISK_SIZE = Du kannst hier ein Speicherlimit eingeben. Ist dies Voll, werden alte Cache-Daten gelöscht.
CACHE_INDEX_SIZ = Lass es bei 500m oder Rechne 250m pro zur Verfügung gestellten Terrabyte Cache-Speicherplatz
CACHE_MAX_AGE = Du kannst hier ein Datum angeben, an dem die Daten im Cache ablaufen soll, sofern der Speicher nicht bis dahin voll gelaufen ist.
TZ = Gebe hier deine Zeitzone an (Beispiel: Europe/Berlin).

10. Jetzt können wir den Docker-Container starten

# sudo docker-compose up -d

11. Richte nun in deinem DHCP-Server die IP-Adresse des LanCache-Servers als DNS-IP ein, damit diese an alle Teilnehmer verteilt wird.
Möchtest du dein Cache-Server nur kurz testen, hinterlege ein manuellen DNS-Server in deinem System, mit der IP des Cache-Servers.

12. Starte Steam neu und leere ggf. den Download-Cache, um sicher zu gehen, das jetzt auf jeden Fall dein Cache-Server angesteuert wird.

FERTIG


Tipps zum Schluss:

Prüfe, ob der LanCache-Server funktioniert:

ipconfig /flushdns
nslookup steam.cache.lancache.net
nslookup lancache.steamcontent.com

→ Als Antwort solltest du die IP des LanCache-Servers erhalten

Fülle deinen Cache vorab:
Mit dem Tool Steam LanCache Prefill, kannst du einfach Spiele in deinen Cache laden lassen.
Das Tool findest du HIER.
Du musst die Anwendung nur per Terminal starten und dich mit deinem Steam-Account anmelden.
Mit dem “Anonymous”-Account gehts nicht.

Bandbreitenmaximierung:
Verwende SSDs für schnelleren Speicherzugriff.
Verwende viel RAM im Server, damit viele Daten dort ausgelagert werden können und noch schneller abrufbar sind.
Nutze mehrere Netzwerkkarten im Server und bündele diese. So kannst du noch mehr Daten transferieren.
Falls dein Switch ein 10GBit/s Port hat, besorge dir eine passende Netzwerkkarte.

Gut & Günstig:
Die Verwendung von 2 „guten“ HDD-Festplatten, welche zu einem RAID0 verbunden sind, reicht an Geschwindigkeit für eine 1Gbit/s Verbindung vollkommen aus.
So hast du viel Speicher, für wenig Geld, um dein Netzwerk zu befüttern.
Es wird aber auch empfohlen, nicht am RAM zu sparen. Mehr ist dort besser.

Werbefrei und flott:
Falls du auch ein Pi-Hole installiert hast, kannst du es weiterhin nutzen und dein Netzwerk Werbefrei halten.
Die Route sollte wie folgt aufgebaut werden:
Variante 1: Dein PC -> Cache-Server -> Pi-Hole -> Router -> Internet
Variante 2: Dein PC -> Pi-Hole -> Cache-Server -> Router -> Internet
Variante 3: Dein PC -> Router -> Pi-Hole -> Cache-Server -> Internet (Empfohlen da geringsten Konfigurationsaufwand)
Ein Tutorial zur Installation eines Pi-Holes findest du HIER.

Hardware statt Software:
Um ein Effizienten Cache-Server zu haben und vor allem die Festplatte voll ausreizen zu können, nutze keine Virtuellen Maschinen.
Diese bremsen das System aus, da die Zugriffszeiten auf Daten durch die Virtualisierung verlangsamt werden.
Dies merkt man sehr schnell, wenn mehr als drei oder vier Personen gleichzeitig die Daten „downloaden“.

VMware VS. VirtualBox:
Beides sind gute Programme um Betriebssysteme zu virtualisieren. Den besten Datendurchsatz haben wir allerdings mit VirtualBox und dem standard Festplattenformat erzielt.

Festplattenformatierungen ohne Komprimierung / Deduplizierung
Du kannst gerne Formate wie BTRFS oder ZFS für deine Festplatten nutzen, aktiviere aber keine Komprimierung oder Deduplizierung, um die maximale Performance der Platten nutzen zu können.

Noch mehr zum Cachen:
Es gibt noch weitere Projekte, welche die Daten anderer Plattformen cachen.
Mit dem Projekt Cache-Domains, können folgende Dienste noch in den Cache geschoben werden, um dein Netzwerk zu beschleunigen:
Apple, ArenaNET, DayBreak, Epic Games, Hirez, Nexusmods, Neverwinter, Nintendo, Renegade, Rockstar Games, Sony (Playstation), Teso (The Elder Scrols Online), Twitch, Warframe, Wargaming und Xbox Live.
Mehr Infos dazu gibts HIER.

Kann der Cache auf für HTTPS-Downloads genutzt werden?
Nein! Das ist so erst einmal nicht möglich.
Dazu müsste man die SSL-Verbindung aufbrechen, was wiederum bei herkömmlichen OS-Installationen zu einer verweigerung des Verbindungsaufbau führt (Beispiel: Im Browser eine Seite mit nicht gültigem Zertifikat aufrufen -> “Diese Verbindung ist nicht sicher”).
In Firmen kann man das umsetzen, da dort der Administration in der Regel volle Kontrolle über alle Systeme (z.B. via Active Directory) hat.
Auf LAN-Partys hat der Admin kein Zugriff auf die Systeme der Gäste.
HTTPS-Anfragen werden daher nur durch den Cache-Server geschleust, aber nicht angefasst.

Mach ein Pre-Load!
Lade die “wichtigsten” Spiele und aktuelle Systemupdates bereits im Vorfeld herunter, damit diese Daten schon auf dem Cache-Server liegen.
Dadurch werden nicht alle Dinge erst am Tag der LAN-Party über das Internet geladen.
Das schont die Leitung etwas.

Stell notwendige Daten bereit:
Installiere vielleicht zusätzlich auf den Cache-Server noch ein kleinen Webserver oder ein Netzwerk-Ordner, welcher die “üblichen Daten” wie verschiedene Clients oder Windows-ISOs bereit hält.
Denn wir kennen alle den, der auf der LAN erst mal sein Windows neu aufsetzen muss.
Ein paar Linux-ISOs wären auch nicht verkehrt 😉

Priorisiere Traffic:
Hast du einen schlauen Router, versuche den Traffic zu priorisieren.
HTTP und HTTPS-Traffic kann etwas nach unten gestuft werden, um eine bessere Latenz für Online-Spiele bereitstellen zu können.
Ebenfalls können Dienste wie Voice-over-IP (VOIP) wie z.B. TeamSpeak priorisiert werden, um keine Aussetzer dort zu haben.
Protokolle wie z.B. Torrent & Co. könnten ganz nach unten gestuft werden.

Halte dein System im Auge:
Installiere Monitoring-Tools wie netdata, CheckMK oder Ähnliches, um immer ein Auge auf die Auslastung des Systems werfen zu können.
LanCache bringt leider nichts dergleichen mit.


Mehr Infos zu LanCache gibts HIER auf der Entwicker-Seite.


3 Kommentare

  1. Pingback:OpenWrt - Ein Raspberry Pi als Reiserouter - Hoerli.NET

  2. jemand schon Erfahrungen in einem Unifi Netzwerk gemacht damit? Hätte den CacheServer im Default VLAN und die Clients aber in einem anderen. Trotz Firewall deaktiviert geht der Traffic leider nicht über den Cacheserver. Pingen von Device (VLAN2) zu Server(VLAN1) geht. DNS Server ist bei unifi der cache server angegeben und secondary 8.8.8.8. im env file habe ich nur 8.8.8.8 angegeben, darüber die ip des cacheservers wie auch im video dargestellt.

    • Hi!
      Ich habe zwar nichts von Ubiquity, aber der Cache-Server sollte auch in solch einem Netz funktionieren.
      Sofern die VLANs und Firewall-Regeln korrekt angelegt sind, sehe ich da kein Hindernis.
      Da ich keine Hardware da habe, kann ich dir aber dabei auch nicht helfen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.