Mit Protective ReRoute die TCP-Netzwerkresilienz optimieren

Protective ReRoute (PRR) ist eine hostbasierte Methode, um Pakete in einem Multipath-Netzwerk um Fehler herum zu leiten. PRR wird im globalen Netzwerk von Google eingesetzt und arbeitet mit bestehenden Resilienzmechanismen zusammen, um die Netzwerkverfügbarkeit für alle Nutzer zu verbessern.

PRR-Modus auswählen

Google Cloud bietet PRR in zwei Modi: Hypervisor-Modus und Gastmodus.

Rate positiver Antworten im Hypervisormodus

PRR im Hypervisor-Modus schützt standardmäßig den Großteil des Traffics, hat aber die folgenden Einschränkungen:

  • Wenn eine Instanz einen großen Traffic-Fan-Out hat, z. B. wenn eine Instanz gleichzeitig aktiv Pakete an Tausende von regionenübergreifenden Instanzen sendet, sind nicht alle Pakete geschützt.

  • Der PRR im Hypervisor-Modus schützt wichtige Segmente des Netzwerkpfads, ist aber nicht vollständig End-to-End.

  • Im Hypervisor-Modus reagiert PRR innerhalb weniger Sekunden.

PRR im Gastmodus

Der PRR im Gastmodus kann für kritische Anwendungen verwendet werden, die besonders empfindlich auf kurzzeitige Netzwerkereignisse reagieren, große Fanout-Muster aufweisen, sehr empfindlich auf Paketverlust reagieren oder die schnellstmögliche Netzwerk-Wiederherstellungszeit (auf RTT-Zeitskala) erfordern.

Alle Google Cloud Kunden erhalten automatisch den PRR im Hypervisor-Modus. Es sind keine Konfigurationsmaßnahmen erforderlich.

PRR für den Gastmodus konfigurieren

Sie sollten den Gastmodus für Anwendungen verwenden, die sehr empfindlich auf Paketverlust reagieren, große Fan-Out-Muster erfordern oder die schnellstmögliche Netzwerkwiederherstellung benötigen.

So konfigurieren Sie die PRR für den Gastmodus:

  1. Prüfen Sie die Version des Linux-Kernels. Verwenden Sie den folgenden Befehl, um zu bestätigen, dass das Betriebssystem der Instanz Version 4.20 oder höher verwendet:

    uname -r
    
  2. Prüfen Sie, ob IPv6-Flow-Labels automatisch generiert werden. Prüfen Sie mit dem folgenden Befehl, ob die Einstellung /proc/sys/net/ipv6/auto_flowlabels aktiviert ist. Diese sysctl-Einstellung ist oft standardmäßig aktiviert.

    cat /proc/sys/net/ipv6/auto_flowlabels
    

    Wenn der Wert nicht 1 ist, aktivieren Sie ihn in Ihrer Systemkonfiguration.

  3. Verwenden Sie den gVNIC-Netzwerkschnittstellentreiber für die vollständige PRR-Unterstützung. Zum Schutz von IPv4- und IPv6-Traffic muss Ihre Instanz eine gVNIC-Netzwerkschnittstelle verwenden. Wenn die Instanz die VirtIO-Netzwerkschnittstelle verwendet, schützt PRR nur IPv6-Traffic.

Nächste Schritte