한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game-Lag-Whitepaper › L7 Server-OS (Kernel)

Volle conntrack-Tabelle auf dem Server conntrack table full

Ursachen-ID so-conntrack · Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Die Linux-Firewall erfasst jede Verbindung in der Tabelle für Connection Tracking (conntrack). Erreicht diese Tabelle ihr Limit, werden neue Pakete verworfen.

Warum Mehr Tracking-Einträge durch Verbindungsansturm und häufige kurze Verbindungen → Folge Tabelle voll, neue Verbindungen und einzelne Pakete werden verworfen → Auf dem Bildschirm Kein Login, Teleportieren durch unerklärlichen Paketverlust

Symptome
Kein Login / Endlos-Laden, Teleportieren
Faktoren
Paketverlust
Wer ist betroffen
Ganzer Server
Wann
Direkt nach Login oder Wartung, Bei großem Andrang
Zuständigkeit
Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Server: kurze Verbindungen reduzieren (Verbindungen für Aufrufe zwischen Servern wiederverwenden). Client: bei gescheitertem oder abgebrochenem Verbindungsaufbau die Abstände für neue Versuche schrittweise vergrößern und zufällig streuen.
Aufgaben Infrastrukturteam
Tabellengröße (nf_conntrack_max) erhöhen, Spielports vom Tracking ausnehmen (NOTRACK in der raw-Tabelle), Alarm auf die Auslastung.
Größenordnungen
Das Standardlimit liegt je nach Speicherausstattung des Servers bei etwa 60.000 bis 260.000 Einträgen. Bei einem Überlauf erscheint im Kernel-Log „nf_conntrack: table full, dropping packet“.
Im Graphen
Plateau am Limit · conntrack-Einträge (nf_conntrack_count)
Wo nachsehen
net.netfilter.nf_conntrack_count (aktuelle Einträge) aus sysctl im selben Graphen wie nf_conntrack_max darstellen, in dmesg nach „nf_conntrack: table full, dropping packet“ suchen
Spricht dafür
nf_conntrack_count bildet an max ein Plateau, ab diesem Zeitpunkt erscheint table full im Kernel-Log
Spricht dagegen
Einträge weit unter max: diese Ursache scheidet aus. Das Connection-Tracking-Limit der AWS-Instanz selbst über conntrack_allowance_exceeded prüfen (siehe „Überschrittenes PPS-Limit in der Cloud“)
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. Netfilter Conntrack Sysfs variables Linux kernel
    Standardwert von nf_conntrack_max entspricht der Zahl der Hash-Buckets (nf_conntrack_buckets), die sich nach der Speichergröße richtet
  2. net/netfilter/nf_conntrack_core.c (Linux v6.12) Linux kernel
    Standardgröße 65.536 bei über 1 GB Speicher, 262.144 bei über 4 GB (64 Bit), bei voller Tabelle wird „nf_conntrack: table full, dropping packet“ protokolliert und das Paket verworfen
  3. iptables-extensions(8) — Linux manual page netfilter
    Mit CT --notrack in der raw-Tabelle vom Connection Tracking ausnehmen

Verwandte Ursachen

Gleiche Schicht: L7 Server-OS (Kernel)

Ursachen aus anderen Schichten mit demselben Symptom (Kein Login / Endlos-Laden)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen