-
-
Konfigurieren der Anwendungsauthentifizierung, Autorisierung und Überwachung
-
-
Konfigurieren von erweiterten Richtlinienausdrücken: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Zeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Ausdrücke zur Identifizierung des Protokolls in einem eingehenden IP-Paket
-
Ausdrücke für HTTP-Statuscodes und numerische HTTP-Nutzlastdaten außer Datumsangaben
-
Operationen für HTTP-, HTML- und XML-Codierung und „Sichere“ Zeichen
-
Ausdrücke zum Auswerten einer DNS-Nachricht und zur Identifizierung ihres Carrier-Protokolls
-
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 erweiterte Richtlinienausdrücke
-
-
-
-
Verhalten des Content-Length-Headers in einer Rewrite-Richtlinie
-
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)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
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.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
MQTT-Unterstützung für Rewrite
Die Rewrite-Funktion unterstützt das MQTT-Protokoll. Sie können Rewrite-Richtlinien so konfigurieren, dass sie Aktionen basierend auf den Parametern in den MQTT-Clientanforderungen und Serverantworten ausführen.
Rewrite-Aktion für MQTT
Die Rewrite-Aktion für MQTT zeigt die Änderungen an der MQTT-Anforderung oder -Antwort an, bevor sie an einen Server oder Client gesendet wurde.
Ausdruck:
add rewrite action <name> <rewrite_type> <target> <rewrite_action>
Rewrite-Typ für MQTT
Abhängig vom Typ der verwendeten Regel zum Neuschreiben von Ausdrücken werden die folgenden MQTT-Rewrite-Typen unterstützt:
replace_mqtt
insert_before_mqtt
insert_after_mqtt
delete_mqtt
insert_mqtt
Rewrite-Ziel für MQTT
In den folgenden Beispielbeispielen verwendet MQTT-Rewrite Richtlinienausdrücke, um den Teil der zu ändernden Anforderung (Ziel) und die durchzuführende Änderung (Zeichenfolgenausdruck) anzugeben:
-
Rewrite einer Client-ID im Verbindungspaket über den Aktionstyp
replace_mqtt
.add rewrite action rwact1 replace_mqtt MQTT.CONNECT.CLIENTID "\"xyz\""
-
Rewrite von Topic in der Veröffentlichungsanforderung über den Aktionstyp
replace_mqtt
.add rewrite action rwact1 replace_mqtt MQTT.PUBLISH.TOPIC "\"testing/test123\""
-
Rewrite zum Einfügen einer Eigenschaft mit dem Aktionstyp insert_mqtt.
add rewrite action rwact1 insert_mqtt MQTT.NEW_PROPERTY("prop1", "test")
-
Löschen Sie ein Thema mit dem Aktionstyp delete_mqtt.
add rewrite action rwact2 delete_mqtt MQTT.SUBSCRIBE.TOPIC_FILTERS.TOPIC(1)
Rewrite-Aktion für MQTT
Im Folgenden sind die vordefinierten Rewrite-Aktionen für MQTT aufgeführt:
MQTT.NEW_KEEPALIVE(interval)
MQTT.NEW_PACKET_IDENTIFIER(packetID)
MQTT.NEW_REASON_CODE(retCode)
MQTT.NEW_PUBLISH(topic_name, payload)
MQTT.NEW_CONNECT_USERNAME(username)
MQTT.NEW_CONNECT_WILL_MESSAGE(will_topic, will_payload, will_Qos, will_retain)
MQTT.NEW_TOPIC(topic, qos)
MQTT.NEW_TOPIC(topic)
MQTT.NEW_PROPERTY(key, value)
Beispiel für die vordefinierte Rewrite-Aktion:
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.KEEPALIVE MQTT.NEW_KEEPALIVE(90)
Beispiel für die benutzerdefinierte Rewrite-Aktion:
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.USERNAME "\"user1\""
Rewrite-Richtlinie für MQTT
Eine Rewrite-Richtlinie für MQTT besteht aus einer Regel und einer Aktion. Die Regel bestimmt den MQTT-Datenverkehr, auf den das Rewrite angewendet wird, und die Aktion bestimmt die von der NetScaler-Appliance auszuführende Aktion.
Ausdruck:
add rewrite policy <name> <rewrite_rule> <rewrite_action>
Beispiel:
add rewrite action insert_mqtt_username insert_mqtt MQTT.NEW_CONNECT_USERNAME("user1")
add rewrite policy rewrite_mqtt_username "MQTT.COMMAND.EQ(CONNECT) && MQTT.CONNECT.USERNAME.LENGTH.EQUALS(0) insert_mqtt_username
Bindungspunkte für MQTT
Sie können eine Rewrite-Richtlinie global oder an einen bestimmten virtuellen Lastausgleichsserver oder virtuellen Content Switching-Server binden. Im Folgenden sind die globalen Bindepunkte:
MQTT_REQ_DEFAULT
MQTT_REQ_OVERRIDE
MQTT_RES_DEFAULT
MQTT_RES_OVERRIDE
Ausdruck:
-
bind rewrite global <policyName> <priority> [-type MQTT_REQ_OVERRIDE | MQTT_REQ_DEFAULT | MQTT_RES_OVERRIDE | MQTT_RES_DEFAULT]
-
bind lb|cs vserver <virtualServerName> -policyName <policyName> -priority <positiveInteger> -type REQUEST|RESPONSE
Beispiel:
-
bind rewrite global pol1 10 -type MQTT_REQ_DEFAULT
-
add/bind lb vserver v1 -policyName pol1 -type reqUEST -priority 10
Konfigurieren einer Rewrite-Richtlinie für MQTT
Um eine Rewrite-Richtlinie zu konfigurieren, führen Sie die Schritte aus und geben Sie die Befehle an der Eingabeaufforderung ein:
-
Aktivieren Sie Rewrite auf der NetScaler-Appliance.
enable ns feature REWRITE
-
Fügen Sie eine Rewrite-Aktion hinzu.
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.KEEPALIVE MQTT.NEW_KEEPALIVE(10)
-
Fügen Sie eine Rewrite-Richtlinie hinzu.
add rewrite policy pol1 MQTT.COMMAND.EQ(CONNECT) rwact1
-
Konfigurieren eines virtuellen MQTT-Lastausgleichsservers.
add lb vserver v1 MQTT 1.1.1.1 1883
-
Binden Sie die Rewrite-Richtlinie global oder an einen bestimmten virtuellen Lastausgleichsserver.
bind rewrite global pol1 10 -type MQTT_REQ_DEFAULT
add/bind lb vserver v1 -policyName pol1 -type REQUEST -priority 10
Anwendungsfall 1: Ersetzen Sie den Benutzernamen in der MQTT CONNECT-Nachricht durch den Zertifikatsnamen
Der Administrator kann eine MQTT-Rewrite-Richtlinie konfigurieren, um den Benutzernamen durch den Zertifikatsnamen des Clients zu ersetzen.
Betrachten wir ein Beispiel. Die Clientanfrage hat eine MQTT CONNECT
Nachricht, die den Benutzernamen als “admin” enthält. Dieser Benutzername muss durch die Seriennummer (16-stellig) ersetzt werden, die aus dem Clientzertifikat (Zertifikatsname) extrahiert wird.
Die folgende Abbildung zeigt den Arbeitsablauf:
-
Eine Transport Control Protocol (TCP) -Anforderung wird an den Load Balancer gesendet.
-
Im Load Balancer wird der Benutzername durch den Zertifikatsnamen ersetzt.
-
Die Anfrage wird an den MQTT-Broker weitergeleitet.
-
Dieser neue Benutzername wird für die Autorisierung über die Webhook-Nutzlast verwendet.
Beispielkonfiguration:
add rewrite action mqtt_rw_unameact1 replace_mqtt MQTT.CONNECT.USERNAME CLIENT.SSL.CLIENT_CERT.SERIALNUMBER
add rewrite policy mqtt_rw_uname_pol1 "MQTT.COMMAND.EQ(CONNECT)" mqtt_rw_unameact1
bind cs vserver mqtt_frontend_cs -policyName mqtt_rw_uname_pol1 -priority 10 -gotoPriorityExpression END -type REQUEST
Anwendungsfall 2: Abonnement für ein neues THEMA bereitstellen
Der Administrator kann ein Abonnement für ein neues THEMA bereitstellen. Betrachten wir ein Beispiel. Eine Kundenanfrage hat ein Abonnement für THEMA 1. Der Administrator kann eine Rewrite-Richtlinie konfigurieren, um ein Abonnement für ein neues THEMA 2 bereitzustellen. Das Abonnement kann davor oder danach eingefügt werden.
Beispielkonfiguration:
-
add rewrite action act2 insert_before_mqtt MQTT.TOPIC_FILTERS.TOPIC(1) MQTT.NEW_TOPIC(topic2, 2)
-
add rewrite policy policy2 “MQTT.COMMAND.EQ(SUBSCRIBE) && MQTT.SUBSCRIBE. TOPIC_FILTERS.TOPIC.CONTAINS(\"test\")" act2
Teilen
Teilen
In diesem Artikel
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group 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 Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.