-
Bereitstellen einer Citrix ADC VPX-Instanz
-
Installieren einer Citrix ADC VPX Instanz auf einem Bare-Metal-Server
-
Installieren einer Citrix ADC VPX-Instanz auf Citrix Hypervisor
-
Installieren einer Citrix ADC VPX Instanz in VMware Cloud auf AWS
-
Installieren einer Citrix ADC VPX Instanz auf Microsoft Hyper-V-Servern
-
Installieren einer Citrix ADC VPX-Instanz auf der Linux-KVM-Plattform
-
Bereitstellen der virtuellen Citrix ADC Appliance mit OpenStack
-
Bereitstellen der Citrix ADC Virtual Appliance mit Virtual Machine Manager
-
Konfigurieren virtueller Citrix ADC Appliances für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Bereitstellen der virtuellen Citrix ADC Appliance mit dem Virsh-Programm
-
Bereitstellen der virtuellen Citrix ADC Appliance mit SR-IOV auf OpenStack
-
Bereitstellen einer Citrix ADC VPX-Instanz auf AWS
-
Bereitstellen einer eigenständigen Citrix ADC VPX-Instanz in AWS
-
Bereitstellen eines hochverfügbaren VPX-Paars mit elastischen IP-Adressen in verschiedenen AWS-Zonen
-
Bereitstellen eines hochverfügbaren VPX-Paars mit privaten IP-Adressen in verschiedenen AWS-Zonen
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung von Enhanced Networking mit AWS ENA
-
Bereitstellen einer Citrix ADC VPX Instanz in Microsoft Azure
-
Netzwerkarchitektur für Citrix ADC VPX-Instanzen in Microsoft Azure
-
Konfigurieren mehrerer IP-Adressen für eine eigenständige Citrix ADC VPX-Instanz
-
Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten
-
Konfigurieren einer Citrix ADC VPX-Instanz für beschleunigte Azure-Netzwerke
-
Konfigurieren von HA-INC-Knoten mit der Citrix Hochverfügbarkeitsvorlage mit Azure ILB
-
Konfigurieren von GSLB auf einem Hochverfügbarkeits-Setup mit aktivem Standby-Modus
-
Konfigurieren von Adresspools (IIP) für eine Citrix Gateway Appliance
-
Zusätzliche PowerShell -Skripts für die Azure-Bereitstellung
-
Bereitstellen einer Citrix ADC VPX-Instanz auf der Google Cloud Platform
-
Automatisieren der Bereitstellung und Konfiguration von Citrix ADC
-
Upgrade und Downgrade einer Citrix ADC Appliance
-
Lösungen für Telekommunikationsdienstleister
-
Lastausgleich Control-Ebenenverkehr, der auf Durchmesser-, SIP- und SMPP-Protokollen basiert
-
Authentifizierung, Autorisierung und Auditing des Anwendungsdatenverkehrs
-
Funktionsweise von Authentifizierung, Autorisierung und Auditing
-
Grundkomponenten der Authentifizierungs-, Autorisierungs- und Überwachungskonfiguration
-
On-Premises Citrix Gateway als Identitätsanbieter für Citrix Cloud
-
Konfigurationsunterstützung für das Cookie-Attribut SameSite
-
Authentifizierung, Autorisierung und Auditing-Konfiguration für häufig verwendete Protokolle
-
Beheben von Problemen mit Authentifizierung und Autorisierung
-
-
-
-
Konfigurieren des erweiterten Richtlinienausdrucks: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Uhrzeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream Analytics-Funktionen
-
Zusammenfassende Beispiele für Standard-Syntaxausdrücke und -richtlinien
-
Tutorialbeispiele für Standard-Syntaxrichtlinien für das Umschreiben
-
Migration von Apache mod_rewrite Regeln auf die Standardsyntax
-
-
-
-
-
Verwalten eines virtuellen Cache-Umleitungsservers
-
Statistiken zum virtuellen Server zur Cache-Umleitung anzeigen
-
Aktivieren oder Deaktivieren eines virtuellen Cache-Umleitungsservers
-
Direkter Richtlinientreffer in den Cache anstelle des Ursprungs
-
Verwalten von Clientverbindungen für einen virtuellen Server
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
-
Ziel-IP-Adresse einer Anforderung in Ursprungs-IP-Adresse übersetzen
-
-
-
Konfigurieren von Citrix ADC als nicht validierenden, sicherheitsbezogene Stub-Resolver
-
Jumbo-Frames-Unterstützung für DNS, um Antworten großer Größen zu verarbeiten
-
Konfigurieren der negativen Zwischenspeicherung von DNS-Einträgen
-
-
GSLB-Entitäten einzeln konfigurieren
-
Anwendungsfall: Bereitstellung einer Domainnamen-basierten Autoscale-Dienstgruppe
-
Anwendungsfall: Bereitstellung einer IP-adressbasierten Autoscale-Service-Gruppe
-
-
Verwalten des Client-Datenverkehrs
-
Konfigurieren von virtuellen Servern ohne Sitzungsaufwand für den Lastenausgleich
-
IP-Adresse und Port eines virtuellen Servers in den Request-Header einfügen
-
Verwenden einer angegebenen Quell-IP für die Backend-Kommunikation
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Verwalten des Client-Datenverkehrs auf der Grundlage der Datenverkehrsrate
-
Verwenden eines Quellports aus einem angegebenen Portbereich für die Backend-Kommunikation
-
Konfigurieren der Quell-IP-Persistenz für die Backend-Kommunikation
-
Verwenden von lokalen IPv6-Link-Adressen auf Serverseite eines Lastausgleichs-Setups
-
-
Erweiterte Lastenausgleichseinstellungen
-
Schützen von Anwendungen auf geschützten Servern vor Überlastung des Datenverkehrs
-
Bereinigung von virtuellen Server- und Dienstverbindungen aktivieren
-
Aktivieren oder Deaktivieren der Persistenzsitzung auf TROFS-Diensten
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
Verwalten der Clientverbindung für mehrere Clientanforderungen
-
Standortdetails von der Benutzer-IP-Adresse mit der Geolocation-Datenbank abrufen
-
Verwenden der Quell-IP-Adresse des Clients für die Verbindung zum Server
-
Festlegen eines Grenzwerts für die Anzahl der Clientverbindungen
-
Festlegen eines Grenzwerts für die Anzahl der Anforderungen pro Verbindung zum Server
-
Festlegen eines Schwellenwerts für die an einen Dienst gebundenen Monitore
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Festlegen eines Zeitüberschreitungswertes für Serververbindungen im Leerlauf
-
Festlegen eines Grenzwerts für die Bandbreitenauslastung durch Clients
-
Konfigurieren des Lastenausgleichs für häufig verwendete Protokolle
-
Anwendungsfall 3: Konfigurieren des Lastausgleichs im Direktserverrückgabemodus
-
Anwendungsfall 4: Konfigurieren von LINUX-Servern im DSR-Modus
-
Anwendungsfall 5: Konfigurieren des DSR-Modus bei Verwendung von TOS
-
Anwendungsfall 6: Konfigurieren des Lastausgleichs im DSR-Modus für IPv6-Netzwerke über das TOS-Feld
-
Anwendungsfall 7: Konfigurieren des Lastausgleichs im DSR-Modus mit IP over IP
-
Anwendungsfall 8: Lastausgleich im Einarmmodus konfigurieren
-
Anwendungsfall 9: Konfigurieren des Lastausgleichs im Inline-Modus
-
Anwendungsfall 10: Lastausgleich von Intrusion Detection Systemservern
-
Anwendungsfall 11: Isolieren des Netzwerkverkehrs mit Listening-Richtlinien
-
Anwendungsfall 12: Konfigurieren von XenDesktop für den Lastenausgleich
-
Anwendungsfall 13: Konfigurieren von XenApp für den Lastenausgleich
-
Anwendungsfall 14: ShareFile Assistent für den Lastenausgleich von Citrix ShareFile
-
SSL-Offload und Beschleunigung
-
Unterstützung für Intel Coleto SSL-Chip-basierte Plattformen
-
Unterstützung für Gemalto SafeNet Network Hardwaresicherheitsmodul
-
-
-
-
Konfigurieren eines CloudBridge Connector-Tunnels zwischen zwei Rechenzentren
-
Konfigurieren von CloudBridge Connector zwischen Datacenter und AWS Cloud
-
Konfigurieren eines CloudBridge-Connector-Tunnels zwischen einem Datacenter und Azure Cloud
-
Konfigurieren des CloudBridge Connector-Tunnels zwischen Datacenter und SoftLayer Enterprise Cloud
-
-
Punkte, die für ein Hochverfügbarkeits-Setup berücksichtigt werden müssen
-
Synchronisieren von Konfigurationsdateien in einem Hochverfügbarkeitssetup
-
Beschränken des Hochverfügbarkeitssynchronisierungsverkehrs auf ein VLAN
-
Konfigurieren von Hochverfügbarkeitsknoten in verschiedenen Subnetzen
-
Beschränken von Failovers durch Routenmonitore im Nicht-INC-Modus
-
Verwalten von Heartbeat-Nachrichten mit hoher Verfügbarkeit auf einer Citrix ADC Appliance
-
Entfernen und Ersetzen eines Citrix ADC in einem Hochverfügbarkeit-Setup
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已动态机器翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.
Este artigo foi traduzido automaticamente.
这篇文章已经过机器翻译.放弃
Translation failed!
Code-Auflistung für mqtt.lua
Die nachstehende Code-Auflistung, mqtt.lua, enthält den Code zum Implementieren des MQTT-Protokolls auf Citrix ADC unter Verwendung von Protokollerweiterungen. Der Code hat nur die TCP-Clientdaten-Callback-Funktion definiert - client.on_data (). Für Serverdaten wird keine Callback-Funktion hinzugefügt, und der Server zum Client nimmt den schnellen nativen Pfad. Bei Clientdaten analysiert der Code die CONNECT MQTT Protokollmeldung und extrahiert die ClientID. Es verwendet dann den ClientID für user_token Wert, der verwendet wird, um den gesamten Clientdatenverkehr für die Verbindung basierend auf der ClientID zu laden, indem die LB-Methode für den LB-vserver als USER_TOKEN festgelegt wird. Es verwendet die ClientID auch für user_session Wert, der für die LB-Persistenz verwendet werden kann, indem Persistenztyp für den LB-vserver als USERSESSION festgelegt wird. Der Code verwendet die ns.send (), um LB zu tun und die Anfangsdaten zu senden. Es verwendet die ns.pipe () API, um den Rest des Clientdatenverkehrs direkt an die Serververbindung zu senden, wobei Aufrufe an den Extension-Callback-Handler umgangen werden.
--[[
MQTT event handler for TCP client data
ctxt - TCP client side App processing context.
data - TCP Data stream received.
- parse the client ID from the connect message - the first message should be connect
- send the data to LB with ClientID as user token and session
- pipe the subsequent data to LB directly. This way the subsequent MQTT traffic will
bypass the tcp client on_data handler
- if a parse error is seen, throw an error so the connection is reset
--]]
function client.on_data(ctxt, payload)
local data = payload.data
local data_len = data:len()
local offset = 1
local byte = nil
local utf8_str_len = 0
local msg_type = 0
local multiplier = 1
local max_multiplier = 128 * 128 * 128
local rem_length = 0
local clientID = nil
-- check if MQTT fixed header is present (fixed header length is atleast 2 bytes)
if (data_len < 2) then
goto need_more_data
end
byte = data:byte(offset)
offset = offset + 1
-- check for connect packet - type value 1
msg_type = bit32.rshift(byte, 4)
if (msg_type ~= 1) then
error("Missing MQTT Connect packet.")
end
-- parse the remaining length
repeat
if (multiplier > max_multiplier) then
error("MQTT CONNECT packet parse error - invalid Remaining Length.")
end
if (data_len < offset) then
goto need_more_data
end
byte = data:byte(offset)
offset = offset + 1
rem_length = rem_length + (bit32.band(byte, 0x7F) * multiplier)
multiplier = multiplier * 128
until (bit32.band(byte, 0x80) == 0)
-- protocol name
-- check if protocol name length is present
if (data_len < offset + 1) then
goto need_more_data
end
-- protocol name length MSB
byte = data:byte(offset)
offset = offset + 1
utf8_str_len = byte * 256
-- length LSB
byte = data:byte(offset)
offset = offset + 1
utf8_str_len = utf8_str_len + byte
-- skip the variable header for connect message
-- the four required fields (protocol name, protocol level, connect flags, keep alive)
offset = offset + utf8_str_len + 4
-- parse the client ID
--
-- check if client ID len is present
if (data_len < offset + 1) then
goto need_more_data
end
-- client ID length MSB
byte = data:byte(offset)
offset = offset + 1
utf8_str_len = byte * 256
-- length LSB
byte = data:byte(offset)
offset = offset + 1
utf8_str_len = utf8_str_len + byte
if (data_len < (offset + utf8_str_len - 1)) then
goto need_more_data
end
clientID = data:sub(offset, offset + utf8_str_len - 1)
-- send the data so far to lb, user_token is set to do LB based on clientID
-- user_session is set to clientID as well (it will be used to persist session)
ns.send(ctxt.output, "DATA", {data = data,
user_token = clientID,
user_session = clientID})
-- pipe the subsequent traffic to the lb - to bypass the extension handler
ns.pipe(ctxt.input, ctxt.output)
goto parse_done
::need_more_data::
ctxt:hold(data)
::parse_done::
return
end
Teilen
Teilen
In diesem Artikel
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.