Der Versuch das aktuelle TrackMania zu starten führte auf meinem Rechner unter Linux reproduzierbar zu folgendem Fehler:
Verbindung Verloren
Ein Ubisoft-Dienst ist im Moment nicht verfügbar. Du kannst es später erneut versuchen oder in den Offline-Modus wechseln.
Zum Glück hatte jemand auf Reddit schon sehr viel Zeit darauf verwendet, dass Problem zu debuggen.
Das Problem entsteht, wenn IPv4-Pakete auf dem Weg zu den Ubisoft-Servern fragmentiert werden.
Es lässt sich lösen, indem man dem Linux Kernel auf für IPv4 die maximale Paketgröße auf dem Weg zum Empfänger ermitteln lässt, so dass es nicht zu Fragementierung kommt.
Dies geschieht über die Option net.ipv4.tcp_mtu_probing
, welche dafür auf den Wert 1
zu setzen ist.
Zum Testen lässt sich die Option per sudo sysctl net.ipv4.tcp_mtu_probing=1
temporär aktivieren.
Mit dem nächsten Reboot, oder einem sudo sysctl net.ipv4.tcp_mtu_probing=0
ist das normale Verhalten wiederhergestellt.
Um das Verhalten permanent zu aktivieren muss die Option in die Sysctl-Konfiguration eingetragen werden.
Am besten in eine eigene Datei in /etc/sysctl/conf.d/
.
Also, /etc/sysctl.d/50-enable-ipv4-mtu-probing.conf
anlegen und folgendes reinschreiben:
sysctl net.ipv4.tcp_mtu_probing=1
Bei IPv6 gibt es übrigens keine Fragementierung. Hier ist das zur Problemlösung aktivierte Verhalten der Standard. Würde Ubisoft also nicht auf einem veralteten Protokoll hängen, so gäbe es das Problem gar nicht.