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

Game-Lag-Whitepaper › L4 Internetleitung

Geteilte Provider-IP (CGNAT) Carrier-grade NAT

Ursachen-ID isp-cgnat · Hauptzuständig Client-Entwicklung (Entwicklungsteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), Netzwerk-Infrastruktur (Infrastrukturteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

In Mobilfunknetzen und bei manchen Providern teilen sich viele Kunden eine IP-Adresse, und die Mappings von Idle-Verbindungen werden schon nach kurzer Zeit gelöscht.

Warum Gerät des Providers verwaltet die Session-Tabelle für sehr viele Kunden → Folge Begrenzte Session-Tabelle, kurzes Idle-Timeout → Auf dem Bildschirm Verbindungsabbruch nach Inaktivität, False Positives, bei denen alle Spieler mit derselben IP gemeinsam gesperrt werden

Symptome
Verbindungsabbruch, Kein Login / Endlos-Laden
Faktoren
Paketverlust
Wer ist betroffen
Bestimmte Region oder Provider
Wann
Nach Inaktivität
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), Netzwerk-Infrastruktur (Infrastrukturteam)
Aufgaben Entwicklungsteam
Client: Heartbeats in höchstens halb so langen Abständen wie das kürzeste Idle-Timeout senden (im Mobilfunknetz teils nur etwa 30 s), und zwar vom Client aus (das CGNAT-Mapping des Providers wird nur durch ausgehende Pakete zuverlässig erneuert), bei Abbruch automatischer Reconnect. Server: auf Heartbeats antworten und Verbindungen von sich aus aufräumen, wenn eine Zeit lang keiner kommt, Spieler per Session-Token als denselben Spieler weiterführen, auch wenn sich Adresse und Port durch ein neues Mapping ändern, IP-basierte Sperren mit Vorsicht einsetzen, da sich viele eine IP teilen können (zusammen mit Konto- und Gerätemerkmalen bewerten).
Aufgaben Infrastrukturteam
Limits für Verbindungen pro IP und neue Verbindungen pro Sekunde in Firewalls und DDoS-Schutz an geteilte Provider-IPs anpassen (für Adressbereiche von Mobilfunkanbietern Schwellen anheben oder Ausnahmen definieren).
Größenordnungen
Im Mobilfunknetz liegt das UDP-Idle-Timeout teils bei nur etwa 30 s.
Im Graphen
Verbindungen brechen gleichzeitig ab · Verbindungsabbrüche (Heartbeat-Timeout), Idle-Zeit vor dem Abbruch (nach Provider)
Wo nachsehen
Im Verbindungslog die Zahl gleichzeitig über eine IP verbundener Konten und den Provider (ASN) ansehen, die Idle-Zeit von Verbindungen, die nach Inaktivität abbrachen, pro Provider sammeln. Beim Spieler die Internetadresse (WAN) in der Router-Oberfläche prüfen
Spricht dafür
In Adressbereichen von Mobilfunkanbietern hängen mehrere Konten an einer IP, und die Idle-Zeit vor dem Abbruch häuft sich bei kurzen Werten um 30–60 s. Die WAN-Adresse des Routers liegt in 100.64.0.0/10 (gemeinsamer Adressbereich für Provider-NAT) oder weicht von der Adresse ab, die der Server sieht
Spricht dagegen
Häuft sich unabhängig vom Provider bei Spielern mit eigenem Router zu Hause: „Ablauf des NAT-Mappings“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig

Quellen

  1. A Multi-perspective Analysis of Carrier-Grade NAT Deployment (IMC 2016) ACM
    Gemessene Haltedauer von UDP-Mappings in NATs: 10–200 s, 74 % höchstens 1 Minute, Median bei CGN: Mobilfunknetz 65 s, Festnetz 35 s
  2. RFC 6888: Common Requirements for Carrier-Grade NATs (CGNs) IETF
    CGNs müssen Limits für externe Ports pro Kunde und für die Rate neu angelegter Mappings unterstützen
  3. RFC 6269: Issues with IP Address Sharing IETF
    Teilen sich viele eine Adresse, trifft eine IP-basierte Sperre (Penalty Box) auch andere Kunden mit derselben Adresse
  4. RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space IETF
    100.64.0.0/10 ist der gemeinsame Adressbereich zwischen dem NAT-Gerät des Providers (CGN) und dem Router des Kunden

Verwandte Ursachen

Gleiche Schicht: L4 Internetleitung

Ursachen aus anderen Schichten mit demselben Symptom (Verbindungsabbruch)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen