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 によるリライトのサポート
リライト機能は MQTT プロトコルをサポートしています。MQTT クライアント要求とサーバー応答のパラメータに基づいてアクションを実行するように、書き換えポリシーを設定できます。
MQTT の書き換えアクション
MQTT の rewrite アクションは、MQTT リクエストまたはレスポンスをサーバーまたはクライアントに送信する前に MQTT リクエストまたはレスポンスに加えられた変更を示します。
表現:
add rewrite action <name> <rewrite_type> <target> <rewrite_action>
MQTT の書き換えタイプ
使用するリライト式ルールのタイプに応じて、次の MQTT リライトタイプがサポートされます。
replace_mqtt
insert_before_mqtt
insert_after_mqtt
delete_mqtt
insert_mqtt
MQTT の書き換えターゲット
次の例では、MQTT 書き換え機能がポリシー式を使用して、変更するリクエストの部分(ターゲット)と実行する変更(文字列式)を示します。
-
replace_mqtt
アクションタイプを使用して、接続パケット内のクライアント ID を書き換えます。add rewrite action rwact1 replace_mqtt MQTT.CONNECT.CLIENTID "\"xyz\""
-
replace_mqtt
アクションタイプを使用して、パブリッシュリクエスト内のトピックを書き換えます。add rewrite action rwact1 replace_mqtt MQTT.PUBLISH.TOPIC "\"testing/test123\""
-
insert_mqtt アクションタイプを使用してプロパティを挿入するように書き直します。
add rewrite action rwact1 insert_mqtt MQTT.NEW_PROPERTY("prop1", "test")
-
delete_mqtt アクションタイプを使用してトピックを削除します。
add rewrite action rwact2 delete_mqtt MQTT.SUBSCRIBE.TOPIC_FILTERS.TOPIC(1)
MQTT の書き換えアクション
MQTT の事前定義済み書き換えアクションは次のとおりです。
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)
定義済みの書き換えアクションの例:
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.KEEPALIVE MQTT.NEW_KEEPALIVE(90)
ユーザー定義の書き換えアクションの例:
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.USERNAME "\"user1\""
MQTT の書き換えポリシー
MQTT の書き換えポリシーは、ルールとアクションで構成されます。ルールは書き換えが適用されるMQTTトラフィックを決定し、アクションはNetScaler ADCアプライアンスが実行するアクションを決定します。
表現:
add rewrite policy <name> <rewrite_rule> <rewrite_action>
例:
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
MQTT のバインドポイント
書き換えポリシーは、グローバルにバインドすることも、特定の負荷分散仮想サーバーまたはコンテンツスイッチング仮想サーバーにバインドすることもできます。 グローバルバインドポイントは次のとおりです。
MQTT_REQ_DEFAULT
MQTT_REQ_OVERRIDE
MQTT_RES_DEFAULT
MQTT_RES_OVERRIDE
表現:
-
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
例:
-
bind rewrite global pol1 10 -type MQTT_REQ_DEFAULT
-
add/bind lb vserver v1 -policyName pol1 -type reqUEST -priority 10
MQTT の書き換えポリシーを設定する
書き換えポリシーを構成するには、手順に従い、コマンドプロンプトでコマンドを入力します。
-
NetScaler ADCアプライアンスで書き換え機能を有効にします。
enable ns feature REWRITE
-
書き換えアクションを追加します。
add rewrite action rwact1 replace_mqtt MQTT.CONNECT.KEEPALIVE MQTT.NEW_KEEPALIVE(10)
-
書き換えポリシーを追加します。
add rewrite policy pol1 MQTT.COMMAND.EQ(CONNECT) rwact1
-
MQTT 負荷分散仮想サーバーを構成します。
add lb vserver v1 MQTT 1.1.1.1 1883
-
書き換えポリシーをグローバルにバインドするか、特定の負荷分散仮想サーバーにバインドします。
bind rewrite global pol1 10 -type MQTT_REQ_DEFAULT
add/bind lb vserver v1 -policyName pol1 -type REQUEST -priority 10
ユースケース 1: MQTT CONNECT メッセージ内のユーザー名を証明書名に置き換えます
管理者は MQTT 書き換えポリシーを設定して、ユーザー名をクライアントの証明書名に置き換えることができます。
例を考えてみましょう。クライアント要求には、ユーザー名が「admin」というMQTT CONNECT
メッセージが含まれています。このユーザー名は、クライアント証明書 (証明書名) から抽出されたシリアル番号 (16 桁) に置き換える必要があります。
次の図に、このワークフローを示します。
-
トランスポート制御プロトコル (TCP) 要求がロードバランサーに送信されます。
-
ロードバランサーでは、ユーザー名は証明書名に置き換えられます。
-
リクエストは MQTT ブローカーに転送されます。
-
この新しいユーザー名は、Webhook ペイロードによる認証に使用されます。
サンプル構成:
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
ユースケース 2: 新しい TOPIC へのサブスクリプションを提供する
管理者は新しい TOPIC へのサブスクリプションを提供できます。例を考えてみましょう。クライアント要求に TOPIC 1 へのサブスクリプションがあります。管理者は、新しい TOPIC 2 へのサブスクリプションを提供する書き換えポリシーを構成できます。サブスクリプションは前または後に挿入できます。
サンプル構成:
-
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
共有
共有
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.