ADC
Danke für das Feedback

Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)

MQTT-Unterstützung für Responder

Die Responder-Funktion unterstützt das MQTT-Protokoll. Sie können Responder-Richtlinien so konfigurieren, dass auf der Grundlage der Parameter in der eingehenden MQTT-Nachricht eine Aktion ausgeführt wird.

Die Aktion reagiert mit einem der folgenden Befehle auf eine neue Verbindung:

  • DROP
  • RESET
  • NOOP
  • Eine Responder-Aktion, um eine neue MQTT CONNACK-Antwort zu initiieren.

Konfiguration von Responder-Richtlinien für MQTT

Nachdem Sie die Responder-Funktion aktiviert haben, müssen Sie eine oder mehrere Aktionen für die Bearbeitung von MQTT-Anfragen konfigurieren. Konfigurieren Sie dann eine Responder-Richtlinie. Sie können die Responder-Richtlinien global oder an einen bestimmten virtuellen Load-Balancing-Server oder einen virtuellen Content Switching-Server binden.

Die folgenden Bindungspunkte sind verfügbar, um die Responder-Richtlinien global zu binden:

  • MQTT_REQ_DEFAULT
  • MQTT_REQ_OVERRIDE
  • MQTT_JUMBO_REQ_DEFAULT
  • MQTT_JUMBO_REQ_OVERRIDE

Die folgenden Bindungspunkte sind verfügbar, um die Responder-Richtlinien an einen virtuellen Content Switching- oder Load-Balancing-Server zu binden:

  • REQUEST
  • MQTT_JUMBO_REQ (dieser Bindpunkt wird nur für Jumbo-Pakete verwendet)

So konfigurieren Sie den Responder so, dass er mithilfe der CLI auf eine MQTT-Anforderung reagiert

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

Konfigurieren Sie eine Responder-Aktion.

add responder action <actName> <actType>
  • Für actname, ersetzen Sie Ihre neue Aktion durch einen Namen. Der Name kann 1—127 Zeichen lang sein und Buchstaben, Zahlen, Bindestriche (-) und Unterstriche (_) enthalten.
  • Ersetzen Sie den actTypeAktionstyp Respondwith durch einen Responder-Aktionstyp.

Beispiel:

add responder action mqtt_connack_unsup_ver respondwith MQTT.NEW_CONNACK(132)

Konfigurieren Sie eine Responder-Richtlinie. Die NetScaler-Appliance reagiert auf die MQTT-Anfragen, die durch diese Responder-Richtlinie ausgewählt werden.

add responder policy <polName> <rule> <actname>
  • Für polname, ersetzen Sie einen Namen für Ihre neue Richtlinie.
  • actnameErsetzen Sie ihn durch den Namen der Aktion, die Sie erstellt haben.

Beispiel:

add responder policy reject_lower_version "MQTT.HEADER.COMMAND.EQ(CONNECT) && MQTT.VERSION.LT(3)" mqtt_connack_unsup_ver

Binden Sie die Responder-Richtlinie an einen bestimmten virtuellen Load-Balancing-Server oder einen virtuellen Content Switching-Server. Die Richtlinie gilt nur für MQTT-Anfragen, deren Ziel-IP-Adresse die VIP dieses virtuellen Servers ist.

bind lb vserver <name> -policyName <policy_name> -priority <priority> bind cs vserver <name> -policyName <policy_name> -priority <priority>
  • Ersetzen Sie ihn durch den Namen der Richtlinie, die Sie erstellt haben. policy_name
  • Geben Sie für prioritydie Priorität der Richtlinie an.

Beispiel:

bind lb vserver lb1 -policyName reject_lower_version -priority 50 bind cs vserver mqtt_frontend_cs -policyName reject_lower_version -priority 5

Anwendungsfall 1: Filtern Sie Clients anhand des Benutzernamens oder der Client-ID

Der Administrator kann eine MQTT-Responder-Richtlinie konfigurieren, um die Verbindung basierend auf dem Benutzernamen oder der Client-ID in der MQTT CONNECT-Nachricht abzulehnen.

Beispielkonfiguration für das Filtern von Clients anhand der Client-ID

add policy patset filter_clients bind policy patset filter_clients client1 add responder action mqtt_connack_invalid_client respondwith MQTT.NEW_CONNACK(2) add responder policy reject_clients "MQTT.HEADER.COMMAND.EQ(CONNECT) && mqtt.connect.clientid.equals_any("filter_clients")" mqtt_connack_invalid_client bind cs vserver mqtt_frontend_cs -policyName reject_clients -priority 5

Anwendungsfall 2: Beschränken Sie die maximale Nachrichtenlänge von MQTT-Nachrichten, um Jumbo-Pakete zu verarbeiten

Der Administrator kann eine MQTT-Responder-Richtlinie konfigurieren, um die Client-Verbindung zu unterbrechen, wenn die Länge der Nachricht einen bestimmten Schwellenwert überschreitet, oder je nach Anforderung die erforderlichen Maßnahmen ergreifen.

Um Jumbo-Pakete zu verarbeiten, sind die Responder-Richtlinien mit einem der folgenden Regelmuster an den Jumbo-Bindpunkt gebunden:

  • MQTT.MESSAGE_LENGTH
  • MQTT.COMMAND
  • MQTT.FROM_CLIENT
  • MQTT.FROM_SERVER

Richtlinien, die an Jumbo-Bind-Punkte gebunden sind, werden nur für Jumbo-Pakete ausgewertet.

Beispielkonfiguration zur Begrenzung der maximalen Nachrichtenlänge von MQTT-Nachrichten

set lb parameter -dropmqttjumbomessage no add responder policy drop_large_message MQTT.MESSAGE_LENGTH.GT(100000) reset bind cs vserver mqtt_frontend_cs -policyName drop_large_message -priority 10

In diesem Beispiel ist der Parameter dropmqttjumbomessage auf NEIN gesetzt. Daher verarbeitet die ADC-Appliance die Nachrichten mit einer Länge von mehr als 64.000 Byte und weniger als 1.00.000 Byte. Die Nachrichten mit einer Länge von mehr als 1.00.000 Byte werden zurückgesetzt.

Die offizielle Version dieses Inhalts ist auf Englisch. Für den einfachen Einstieg wird Teil des Inhalts der Cloud Software Group Dokumentation maschinell übersetzt. Cloud Software Group hat keine Kontrolle über maschinell übersetzte Inhalte, die Fehler, Ungenauigkeiten oder eine ungeeignete Sprache enthalten können. Es wird keine Garantie, weder ausdrücklich noch stillschweigend, für die Genauigkeit, Zuverlässigkeit, Eignung oder Richtigkeit von Übersetzungen aus dem englischen Original in eine andere Sprache oder für die Konformität Ihres Cloud Software Group Produkts oder Ihres Diensts mit maschinell übersetzten Inhalten gegeben, und jegliche Garantie, die im Rahmen der anwendbaren Endbenutzer-Lizenzvereinbarung oder der Vertragsbedingungen oder einer anderen Vereinbarung mit Cloud Software Group gegeben wird, dass das Produkt oder den Dienst mit der Dokumentation übereinstimmt, gilt nicht in dem Umfang, in dem diese Dokumentation maschinell übersetzt wurde. Cloud Software Group kann nicht für Schäden oder Probleme verantwortlich gemacht werden, die durch die Verwendung maschinell übersetzter Inhalte entstehen können.