Citrix ADC Ingress Controller

TCP-Anwendungsfälle

In diesem Thema werden verschiedene TCP-Anwendungsfälle behandelt, die Sie auf dem Ingress Citrix ADC mithilfe der Anmerkungen im Citrix Ingress Controller konfigurieren können.

In der folgenden Tabelle sind die TCP-Anwendungsfälle mit Beispielanmerkungen aufgeführt:

Anwendungsfall Beispiel für eine Anmerkung
Lässt TCP-Verbindungen im Leerlauf stumm fallen ingress.citrix.com/frontend-tcpprofile: '{"apache":{"DropHalfClosedConnOnTimeout" : "ENABLE", "DropEstConnOnTimeout":"ENABLE"}}'
Verzögerte TCP-Verbindungsbestätigungen ingress.citrix.com/frontend-tcpprofile: '{"apache":{"delayack" : "150"}}'
Clientseitige MPTCP-Sitzungsverwaltung ingress.citrix.com/frontend-tcpprofile: '{"apache":{"mptcp": "ENABLED", "mptcpSessionTimeout":"7200"}}'
TCP-Optimierung Nicht zutreffend
TCP gegen Spoofing-Angriffe verteidigen ingress.citrix.com/frontend_tcpprofile: '{"rstwindowattenuate" : "enabled", "spoofSynDrop":"enabled"}

Lässt TCP-Verbindungen im Leerlauf stumm fallen

In einem Netzwerk wird eine große Anzahl von TCP-Verbindungen im Leerlauf, und der Ingress Citrix ADC sendet RST-Pakete, um sie zu schließen. Die über die Kanäle gesendeten Pakete aktivieren diese Kanäle unnötig, was zu einer Flut von Nachrichten führt, die wiederum dazu führen, dass der Ingress Citrix ADC eine Flut von Nachrichten zur Ablehnung von Diensten generiert.

Mithilfe der dropestconnontimeout Parameter drophalfclosedconnontimeout und in TCP-Profilen können Sie halbgeschlossene TCP-Verbindungen bei Zeitüberschreitung im Leerlauf stillschweigend löschen oder TCP-hergestellte Verbindungen bei einem Leerlauf-Timeout löschen. Standardmäßig sind diese Parameter im Ingress Citrix ADC deaktiviert. Wenn Sie beide aktivieren, führt weder eine halb geschlossene Verbindung noch eine hergestellte Verbindung dazu, dass ein RST-Paket an den Client gesendet wird, wenn die Verbindung abläuft. Der Citrix ADC löscht einfach die Verbindung.

Mithilfe der Anmerkungen für TCP-Profile können Sie drophalfclosedconnontimeout und dropestconnontimeout auf dem Ingress Citrix ADC aktivieren oder deaktivieren. Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um diese Parameter zu aktivieren:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"drophalfclosedconnontimeout" : "enable", "dropestconnontimeout":"enable"}}'

Verzögerte TCP-Verbindungsbestätigungen

Um zu vermeiden, dass mehrere ACK-Pakete gesendet werden, unterstützt Ingress Citrix ADC den verzögerten TCP-Bestätigungsmechanismus. Es sendet eine verzögerte ACK mit einem Standard-Timeout von 100 ms. Ingress Citrix ADC sammelt Datenpakete und sendet ACK nur, wenn es zwei Datenpakete in Fortsetzung empfängt oder wenn der Timer abläuft. Die minimale Verzögerung, die Sie für das TCP-bereitgestellte ACK festlegen können, beträgt 10 ms und das Maximum beträgt 300 ms. Standardmäßig ist die Verzögerung auf 100 ms eingestellt.

Mithilfe der Anmerkungen für TCP-Profile können Sie den verzögerten ACK-Parameter verwalten. Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um diese Parameter zu aktivieren:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"delayack" : "150"}}'

Clientseitige MPTCP-Sitzungsverwaltung

Sie führen die TCP-Konfiguration auf dem Ingress Citrix ADC für MPTCP-Verbindungen zwischen dem Client und Ingress Citrix ADC durch. MPTCP-Verbindungen werden zwischen Citrix ADC und der Back-End-Kommunikation nicht unterstützt. Sowohl der Client als auch die Ingress Citrix ADC Appliance müssen dieselbe MPTCP-Version unterstützen.

Sie können MPTCP aktivieren und das Zeitlimit für die MPTCP-Sitzung (mptcpsessiontimeout) mithilfe von TCP-Profilen im Ingress Citrix ADC in Sekunden festlegen. Wenn der mptcpsessiontimeout Wert nicht festgelegt ist, werden die MPTCP-Sitzungen nach dem Timeout des Client-Leerlaufs geleert. Der minimale Timeout-Wert, den Sie festlegen können, ist 0 und das Maximum ist 86400. Standardmäßig ist der Timeout-Wert auf 0 festgelegt.

Mithilfe der Anmerkungen für TCP-Profile können Sie MPTCP aktivieren und den mptcpsessiontimeout Parameterwert im Ingress Citrix ADC festlegen. Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um MPTCP zu aktivieren und den mptcpsessiontimeout Parameterwert im Ingress Citrix ADC auf 7200 festzulegen:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"mptcp" : "ENABLED", "mptcpSessionTimeout":"7200"}}'

TCP-Optimierung

Die meisten relevanten TCP-Optimierungsfunktionen des Ingress Citrix ADC werden über ein entsprechendes TCP-Profil bereitgestellt. Mithilfe der Anmerkungen für TCP-Profile können Sie die folgenden TCP-Optimierungsfunktionen auf dem Ingress Citrix ADC aktivieren:

  • Selective acknowledgment (SACK): TCP-SACK behebt das Problem des Verlusts mehrerer Pakete, wodurch die Gesamtdurchsatzkapazität reduziert wird. Bei selektiver Bestätigung kann der Empfänger den Sender über alle Segmente informieren, die erfolgreich empfangen wurden, sodass der Sender nur die verlorenen Segmente erneut übertragen kann. Diese Technik hilft T1, den Gesamtdurchsatz zu verbessern und die Verbindungslatenz zu reduzieren.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um SACK auf dem Ingress Citrix ADC zu aktivieren:

     ingress.citrix.com/frontend_tcpprofile: '{"sack" : "enabled"}
    
  • Forward acknowledgment (FACK): Um eine TCP-Überlastung zu vermeiden, indem explizit die Gesamtzahl der im Netzwerk ausstehenden Datenbytes gemessen wird und dem Absender (entweder T1 oder ein Client) hilft, die Datenmenge zu kontrollieren, die während der Zeitüberschreitungen der erneuten Übertragung in das Netzwerk eingespeist wird.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um FACK auf dem Ingress Citrix ADC zu aktivieren:

     ingress.citrix.com/frontend_tcpprofile: '{"fack" : "enabled"}
    
  • Window Scaling (WS): Mit der TCP-Fensterskalierung kann die TCP-Empfangsfenstergröße über 65535 Byte hinaus erhöht werden. Es hilft, die TCP-Leistung insgesamt zu verbessern, insbesondere in Netzwerken mit hoher Bandbreite und langer Verzögerung. Es hilft bei der Reduzierung der Latenz und der Verbesserung der Reaktionszeit über TCP.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um WS auf dem Ingress Citrix ADC zu aktivieren:

     ingress.citrix.com/frontend_tcpprofile: '{"ws" : "enabled", "wsval" : "9"}
    

    Wo wsval ist der Faktor, der zur Berechnung der neuen Fenstergröße verwendet wird. Das Argument ist nur erforderlich, wenn die Fensterskalierung aktiviert ist. Der Mindestwert, den Sie festlegen können, ist 0 und das Maximum ist 14. Standardmäßig ist der Wert auf 4 festgelegt.

  • Maximum Segment Size (MSS): MSS eines einzelnen TCP-Segments. Dieser Wert hängt von der MTU-Einstellung auf Zwischenroutern und Endclients ab. Ein Wert von 1460 entspricht einer MTU von 1500.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um MSS auf dem Ingress Citrix ADC zu aktivieren:

     ingress.citrix.com/frontend_tcpprofile: '{"mss" : "1460", "maxPktPerMss" : "512"}
    

    Wobei:

    • mss ist das für die TCP-Verbindung zu verwendende MSS. Der Mindestwert, den Sie festlegen können, ist 0 und das Maximum ist 9176.
    • maxPktPerMss ist die maximal zulässige Anzahl von TCP-Paketen pro maximaler Segmentgröße (MSS). Der Mindestwert, den Sie festlegen können, ist 0 und das Maximum ist 1460.
  • Keep-Alive (KA): Sendet regelmäßige TCP-Keep-Alive (KA) -Prüfpunkte, um zu überprüfen, ob der Peer noch aktiv ist.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um TCP-Keep-Alive (KA) auf dem Ingress Citrix ADC zu aktivieren:

     ingress.citrix.com/frontend_tcpprofile: '{"ka" : "enabled", "kaprobeupdatelastactivity":"enabled", "KAconnIdleTime": "900",  "kamaxprobes" : "3",  "kaprobeinterval" : "75"}
    

    Wobei:

    • ka wird verwendet, um regelmäßige TCP-Keep-Alive (KA) -Prüfpunkte zu senden, um zu überprüfen, ob der Peer noch aktiv ist. Mögliche Werte: ENABLED, DISABLED. Standardwert: DISABLED.
    • kaprobeupdatelastactivity aktualisiert die letzte Aktivität für die Verbindung, nachdem Keep-Alive (KA) -Prüfungen empfangen wurden. Mögliche Werte: ENABLED, DISABLED. Standardwert: ENABLED.
    • KAconnIdleTime ist die Dauer (in Sekunden) für die Verbindung im Leerlauf, bevor ein Keep-Alive (KA) -Sonde gesendet wird. Der Mindestwert, den Sie festlegen können, ist 1 und der Höchstwert ist 4095.
    • kaprobeinterval ist die interne Zeit (in Sekunden) vor dem nächsten Keep-Alive (KA) -Prüfung, wenn der Peer nicht antwortet. Der Mindestwert, den Sie festlegen können, ist 1 und der Höchstwert ist 4095.
  • bufferSize: Geben Sie die TCP-Puffergröße in Byte an. Der Mindestwert, den Sie festlegen können, ist 8190 und das Maximum ist 20971520. Standardmäßig ist der Wert auf 8190 festgelegt.

    Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils zur Angabe der TCP-Puffergröße:

     ingress.citrix.com/frontend_tcpprofile: '{"bufferSize" : "8190"}
    
  • MPTCP: Aktivieren Sie MPTCP und legen Sie die optionale MPTCP-Konfiguration fest. Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, um MPTCP zu aktivieren und die optionalen MPTCP-Konfigurationen zu verwenden:

     ingress.citrix.com/frontend_tcpprofile: '{"mptcp" : "enabled", "mptcpDropDataOnPreEstSF":"enabled", "mptcpFastOpen": "enabled", "mptcpSessionTimeout":"7200"}
    
  • flavor: Stellen Sie den TCP-Congestion Control-Algorithmus ein. Gültige Werte sind Default, BIC, CUBIC, Westwood und Nile. Standardmäßig ist der Wert auf Default festgelegt. Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils zum Festlegen des TCP-Überlastungskontrollalgorithmus:

     ingress.citrix.com/frontend_tcpprofile: '{"flavor" : "westwood"}
    
  • Dynamic receive buffering: Aktiviert oder deaktiviert die dynamische Empfangspufferung. Wenn diese Option aktiviert ist, kann der Empfangspuffer basierend auf Speicher- und Netzwerkbedingungen dynamisch angepasst werden. Mögliche Werte: ENABLED, DISABLED und der Standardwert: DISABLED.

    Hinweis:

    Das Argument Puffergröße muss festgelegt werden, damit dynamische Anpassungen stattfinden können.

     ingress.citrix.com/frontend_tcpprofile: '{"dynamicReceiveBuffering" : "enabled"}
    

Schützen Sie TCP vor Spoofing-Angriffen

Sie können den Ingress Citrix ADC aktivieren, um TCP mithilfe der rstWindowAttenuation in TCP-Profile vor Spoof-Angriffen zu schützen. Standardmäßig ist der rstWindowAttenuation Parameter deaktiviert. Dieser Parameter ist aktiviert, um den Ingress Citrix ADC vor Spoofing zu schützen. Wenn Sie aktivieren, antwortet es mit Korrekturbestätigung (ACK) auf eine ungültige Sequenznummer. Mögliche Werte sind Enabled oder Disabled.

Im Folgenden finden Sie eine Beispielanmerkung des TCP-Profils, die rstWindowAttenuation auf dem Ingress Citrix ADC aktiviert werden soll:

ingress.citrix.com/frontend_tcpprofile: '{"rstwindowattenuate" : "enabled", "spoofSynDrop":"enabled"}
TCP-Anwendungsfälle