Citrix ADC

MQTT-Unterstützung für响应器

Die Responder-Funktion unterstützt das MQTT-Protokoll。您können响应器- richtlinen so konfigurieren, dass Sie eine Aktion baserend auf den参数in der einghendenen MQTT-Nachricht ausführen。

这是我们的行动,我们的行动,我们的行动

  • 下降
  • 重置
  • 无操作
  • Eine Responder-Aktion, um Eine neue MQTT CONNACK-Antwort einzuleiten。

Konfigurieren von Responder-Richtlinien für MQTT

那是你的回应,müssen你的回应für那是你的回答。我是响应者。Sie können die Responder-Richtlinien global oder an einen bestimmten virtuellen Lastausgleichsserver oder virtuellen内容切换-服务器绑定。

Die folgenden Bindepunkte stehen zur Verfügung,嗯Die Responder-Richtlinien global zu binden:

  • MQTT_REQ_DEFAULT
  • MQTT_REQ_OVERRIDE
  • MQTT_JUMBO_REQ_DEFAULT
  • MQTT_JUMBO_REQ_OVERRIDE

Die folgenden Bindepunkte sind verfügbar, um Die Responder-Richtlinien an einen virtuellen内容切换- oder Lastenausgleichsserver zu binden:

  • 请求
  • MQTT_JUMBO_REQ (diesel Bindepunkt wd nur für Jumbo-Pakete verwendet)

所以konfigurieren Sie den Responder So, dass er mit CLI auf eine MQTT-Anfrage antwortet

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

Konfigurieren Sie eine responder - action。

add responder action   
  • Ersetzen您actnamedurch einen Namen für Ihre neue Aktion。Der Name kann 1-127 zechenlang sein und kann Buchstaben, Zahlen, Bindestriche (-) and Unterstriche (_) enthten。
  • Ersetzen Sie füractTypeeinen Responder-Aktionstyp respondwith。

Beispiel:

添加mqtt_connack_unsup_ver response with MQTT.NEW_CONNACK(132) 

Konfigurieren Sie eine responderrichtline。Die Citrix ADC Appliance reagiert auf Die MQTT-Anforderungen, Die in dieser Responder-Richtlinie ausgewählt werden。

add responder policy    
  • Ersetzen您polnamedurch einen Namen für Ihre neue Richtlinie。
  • Ersetzen Sie füractname那是行动,那是过去的事。

Beispiel:

添加响应器策略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 Lastausgleichsserver oder virtuellen Content Switching-Server。Die Richtlinie gilt nur für Die MQTT-Anfragen, deren ziel - ip - address der VIP dieses virtuellen Servers ist。

bind lb vserver  -policyName  -priority  bind cs vserver  -policyName  -priority  
  • Ersetzen Sie fürpolicy_name那是我的坟墓,那是我的前世。
  • 葛本希für优先级die Priorität der Richtlinie an。

Beispiel:

bind lb vserver lb1 -policyName reject_lower_version -priority 5 

Anwendungsfall1: filter Sie Clients baserend auf dem Benutzernamen order der Client-ID

Der Administrator kann eine MQTT- responder richtlinie konfigurieren, um die verindung basierend auf dem Benutzernamen oder Client-ID in Der MQTT CONNECT-Nachricht abzulehnen。

Beispielkonfiguration zum Filtern von Clients basierend auf 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 .client .equals_any("filter_clients")" mqtt_connack_invalid_client bind cs vserver mqtt_frontend_cs -policyName reject_clients -priority 5 

Verwenden Sie case2: Begrenzen Sie die maximale Nachrichtenlänge von MQTT-Nachrichten, um jumpo - pakete zu verarbeiten

Der Administrator kann eine mqtt - responder richtlinie konfigurieren, um die Clientverbindung zu löschen, wenn die Länge Der Nachricht einen bestimmten Schwellenwert überschreitet, oder die erforderlichen Maßnahmen basierend auf Der Anforderung ergreifen。

嗯,巨型- pakete zu behandeln,信die responder richtlinen mit einem der folgenden Regelmuster an den Jumbo-Bind-Punkt gebunden:

  • MQTT。MESSAGE_LENGTH
  • MQTT。COMMAND
  • MQTT。FROM_CLIENT
  • MQTT。FROM_SERVER

Richtlinien, die an Jumbo-Bindepunkte 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 

在diesem Beispiel ist derdropmqttjumbomessage参数auf NO festgelegt。Daher verarbeitet die ADC-Appliance die Nachrichten mit einer Länge von mehr als 64.000字节和weniger als 1.00.000字节。Die Nachrichten mit einer Länge von mehr als 1.00.000 Bytes werden zurückgesetzt。