書き換え
-
セキュリティを向上させるために、Citrix ADCはすべての
http://linksをレスポンス本文のhttps://に書き換えることができます。 -
SSL オフロード展開では、応答内のセキュアでないリンクをセキュアリンクに変換する必要があります。書き換えオプションを使用すると、NetScaler ADCからクライアントへの送信応答にセキュリティで保護されたリンクがあることを確認するために、すべての
http://linksをhttps://に書き換えることができます。 -
Web サイトにエラーページを表示する必要がある場合は、デフォルトの 404 エラーページの代わりにカスタムエラーページを表示できます。例えば、エラーページの代わりに Web サイトのホームページまたはサイトマップを表示すると、訪問者は Web サイトから離れるのではなく、サイトにとどまります。
-
サイト内のトピックに複雑な URL がある場合、シンプルで覚えやすいURL(「クール URL」とも呼ばれます)で書き直すことができます。
-
デフォルトのページ名を Web サイトの URL に追加できます。たとえば、企業のWebサイトのデフォルトページが
http://www.abc.com/index.phpの場合、ユーザーがブラウザのアドレスバーに「abc.com」と入力すると、URLを「abc.com/index.php」に書き換えることができます。
-
リクエストの URL を変更する
-
ヘッダーの追加、変更、削除
-
本文またはヘッダー内の特定の文字列を追加、置換、または削除します。
オプションと オプションの比較
-
新しい Web サイトまたはウェブページへの HTTP リクエストのリダイレクト
-
カスタムレスポンスで応答する
-
要求レベルで接続をドロップまたはリセットする
書き換えの仕組み
-
グローバルポリシー
-
特定の仮想サーバにバインドされたポリシー
-
既定のポリシー
-
NetScaler ADCアプライアンスは、グローバルポリシーをチェックし、個々のバインドポイントでポリシーをチェックします。
-
複数のポリシーがバインドポイントにバインドされている場合、NetScaler ADCは優先順位の順序でポリシーを評価します。プライオリティが最も高いポリシーが最初に評価されます。各ポリシーを評価した後、ポリシーが TRUE と評価されると、関連付けられたアクションが実行されるポリシーに関連付けられたアクションが追加されます。一致は、ポリシールールで指定された特性が評価されるリクエストまたはレスポンスの特性と一致する場合に発生します。
-
どのポリシーでも、アクションに加えて、現在のポリシーが評価された後に評価される必要があるポリシーを指定できます。このポリシーは「式に移動」と呼ばれます。どのポリシーでも、式に移動(gotoPriorityExpr)が指定されている場合、NetScaler ADCは式に移動ポリシーを評価します。次に高い優先度を持つポリシーは無視されます。
-
すべてのポリシーが評価された後、またはポリシーの「式に移動」が「終了」に設定されている場合、NetScaler ADCはアクションのリストに従ってアクションの実行を開始します。
ポリシー評価
-
ポリシーがTRUEと評価された場合、NetScaler ADCは以下の手順に従います。
-
gotoPriorityExpression は、'NEXT'、'END'、いくつかの整数、または 'INVOCATION_LIST' に設定できます。この値によって、次のプライオリティを持つポリシーが決まります。次の表は、式の各値に対してNetScaler ADCが実行するアクションを示しています。| 式の値 | アクション | |---|--| | NEXT | 次のプライオリティを持つポリシーが評価されます。| | END | ポリシーの評価は停止します。| |
<an integer>| 指定された優先度を持つポリシーが評価されます。| | INVOCATION_LIST| Goto NEXT または END は、呼び出しリストの結果に基づいて適用されます。 |
-
ポリシーがFALSEと評価された場合、NetScaler ADCは優先順位の順に評価を続行します。
-
ポリシーがUNDEFINEDと評価された場合(エラーのために受信トラフィックで評価できない)、NetScaler ADCはUNDEFINED条件(undeFactionと呼ばれる)に割り当てられたアクションを実行し、ポリシーのさらなる評価を停止します。
書き換えアクション
| アクション | 結果 |
|---|---|
| Insert | ポリシーに指定された書き換えアクションが実行されます。 |
| NOREWRITE | リクエストまたはレスポンスは書き換えられません。NetScaler ADCは、メッセージの一部を書き換えずにトラフィックを転送します。 |
| RESET | 接続は TCP レベルで中止されます。 |
| DROP | メッセージはドロップされます。 |
-
NetScaler ADCでこの機能を有効にします。
-
書き換えアクションを定義します。
-
書き換えポリシーを定義します。
-
ポリシーをバインドポイントにバインドして、ポリシーを有効にします。
書き換えを有効にする
-
enable ns feature REWRITE
-
show ns feature
> enable ns feature REWRITE
Done
> show ns feature
Feature Acronym Status
------- ------- ------
1) Web Logging WL OFF
2) Surge Protection SP ON
.
.
.
1) Rewrite REWRITE ON
.
.
1) NetScaler Push push OFF
Done
書き換えアクションの構成
-
アクションタイプを書き換えます。
-
書き換えアクションの場所です。
-
アクションの設定タイプを書き換えます。
コマンドラインインターフェイスを使用して書き換えアクションを作成する
-
add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-search <expression>] [refineSearch <expression>] [-comment<string>] -
show rewrite action <name>
-
noreWrite-リクエストまたはレスポンスを書き換えずにユーザーに送信します。
-
RESET-ユーザーがリクエストを再送信できるように、接続をリセットしてユーザーのブラウザに通知します。
-
DROP-ユーザーに応答を送信せずに接続をドロップします。
-
Request-アクションはリクエストに適用されます。
-
Response-アクションは応答に適用されます。
-
ニュートラル-アクションはリクエストとレスポンスの両方に適用されます。
名前
型パラメータ
-
REPLACE <target> <string_builder_expr>。ターゲット文字列を文字列ビルダーの式に置き換えます。
> add rewrite action replace_http_act replace http.res.body(100) '"new_replaced_data"'
Done
> sh rewrite action replace_http_act
Name: replace_http_act
Operation: replace
Target:http.res.body(100)
Value:"new_replaced_data"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_ALL <target> <string_builder_expr1> -(search) <s>-<target>で指定されたリクエストまたはレスポンスで、で定義されている文字列のすべての出現箇所を、<pattern_to_search>で定義されている文字列を<string_builder_expr>に置き換えます。 検索オプションを使用して、置換する文字列を検索できます。
> add policy patset pat_list_2
Done
> bind policy patset pat_list_2 "www.abc.com"
Done
> bind policy patset pat_list_2 "www.def.com"
Done
> add rewrite action refineSearch_act_31 replace_all "HTTP.RES.BODY(100000)" ""https://""-search "patset("pat_list_2")" -refineSearch "EXTEND(7,0).REGEX_SELECT(re#http://#)"
Done
> sh rewrite action refineSearch_act_31
Name: refineSearch_act_31
Operation: replace_all
Target:HTTP.RES.BODY(100000)
Refine Search:EXTEND(7,0).REGEX_SELECT(re#http://#)
Value:"https://"
Search: patset("pat_list_2")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_HTTP_RES <string_builder_expr>。完全な HTTP レスポンスを文字列ビルダー式で定義された文字列に置き換えます。
> add rewrite action replace_http_res_act replace_http_res '"HTTP/1.1 200 OK\r\n\r\nSending from ADC"'
Done
> sh rewrite action replace_http_res_act
Name: replace_http_res_act
Operation: replace_http_res
Target:"HTTP/1.1 200 OK
Sending from ADC"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_SIP_RES <target>。SIP 応答全体を、<target>で指定された文字列に置き換えます。
> add rewrite action replace_sip_res_act replace_sip_res '"HTTP/1.1 200 OK\r\n\r\nSending from ADC"'
Done
> sh rewrite action replace_sip_res_act
Name: replace_sip_res_act
Operation: replace_sip_res
Target:"HTTP/1.1 200 OK
Sending from ADC"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_HTTP_HEADER <header_string> <contents_string_builder_expr>。header_stringで指定された HTTP ヘッダーと、contents_string_builder_exprで指定されたヘッダーコンテンツを挿入します。
> add rewrite action ins_cip_header insert_http_header "CIP" "CLIENT.IP.SRC"
Done
> sh rewrite action ins_cip_header
Name: ins_cip_header
Operation: insert_http_header
Target:CIP
Value:CLIENT.IP.SRC
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
DELETE_HTTP_HEADER <target>。<target>で指定された HTTP ヘッダーを削除します。
> add rewrite action del_true_client_ip_header delete_http_header "True-Client-IP"
Done
> sh rewrite action del_true_client_ip_header
Name: del_true_client_ip_header
Operation: delete_http_header
Target:True-Client-IP
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CORRUPT_HTTP_HEADER <target>。<target>で指定したすべての出現する HTTP ヘッダーのヘッダー名を破損した名前に置き換え、レシーバによって認識されないようにします。例:MY_HEADER は MHEY_ADERに変更されます。
> add rewrite action corrupt_content_length_hdr corrupt_http_header "Content-Length"
Done
> sh rewrite action corrupt_content_length_hdr
Name: corrupt_content_length_hdr
Operation: corrupt_http_header
Target:Content-Length
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_BEFORE <string_builder_expr1> <string_builder_expr1>。<string_builder_expr1>で指定された文字列を検索し、その前の<string_builder_expr2>に文字列を挿入します。
> add rewrite action insert_before_ex_act insert_before http.res.body(100) '"Add this string in the starting"'
Done
> sh rewrite action insert_before_ex_act
Name: insert_before_ex_act
Operation: insert_before
Target:http.res.body(100)
Value:"Add this string in the starting"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_BEFORE_ALL <target> <string_builder_expr1> -(search) <string_builder_expr2>。<target>で指定されたリクエストまたはレスポンスで、で指定された文字列のすべての出現箇所を検索します。 <string_builder_expr2> で指定された文字列を挿入します <string_builder_expr1> その前に。検索オプションを使用して文字列を検索できます。
> add policy patset pat
Done
> bind policy patset pat abcd
Done
> add rewrite action refineSearch_act_1 insert_before_all http.res.body(10) 'target.prefix(10) + "refineSearch_testing"' -search patset("pat") -refineSearch extend(10,10)
Done
> sh rewrite action refineSearch_act_1
Name: refineSearch_act_1
Operation: insert_before_all
Target:http.res.body(10)
Refine Search:extend(10,10)
Value:target.prefix(10) + "refineSearch_testing"
Search: patset("pat")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_AFTER <string_builder_expr1> <string_builder_expr2>。string_builder_expr1文字列の後に、string_builder_expr2で指定された文字列を挿入します。
> add rewrite action insert_after_act insert_after http.req.body(100) '"add this string after 100 bytes"'
Done
> sh rewrite action insert_after_act
Name: insert_after_act
Operation: insert_after
Target:http.req.body(100)
Value:"add this string after 100 bytes"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_AFTER_ALL <target> <string_builder_expr1> -(search) <string_builder_expr2>。<target>で指定されたリクエストまたはレスポンスで、<string_builder_expr2>で指定された文字列のすべての出現箇所を検索し、その後に<string_builder_expr1>で指定された文字列を挿入します。 検索機能を使用して文字列を検索できます。
> add rewrite action refineSearch_act_2 insert_after_all http.res.body(100) '"refineSearch_testing"' -search text("abc") -refineSearch extend(0, 10)
Done
> sh rewrite action refineSearch_act_2
Name: refineSearch_act_2
Operation: insert_after_all
Target:http.res.body(100)
Refine Search:extend(0, 10)
Value:"refineSearch_testing"
Search: text("abc")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
DELETE <target>。target で指定された文字列を削除します。
> add rewrite action delete_ex_act delete http.req.header("HDR")
Done
> sh rewrite action delete_ex_act
Name: delete_ex_act
Operation: delete
Target:http.req.header("HDR")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
DELETE_ALL <target> -(search) <string_builder_expr>。<target>で指定されたリクエストまたはレスポンスで、<string_builder_expr>で指定された文字列のすべてのオカレンスを検索して削除します。検索機能を使用して文字列を検索できます。
>add rewrite action refineSearch_act_4 delete_all "HTTP.RES.BODY(50000)" -search text("Windows Desktops") -refineSearch "EXTEND(40,40).REGEX_SELECT(re#\s`\*`<AppData>.`\*`\s`\*`<\\/AppData>#)"
Done
> show REWRITE action refineSearch_act_4
Name: refineSearch_act_4
Operation: delete_all
Target:HTTP.RES.BODY(50000)
Refine Search:EXTEND(40,40).REGEX_SELECT(re#\s`\*`<AppData>.`\*`\s`\*`</AppData>#)
Search: text("Windows Desktops")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_DIAMETER_HEADER_FIELD <target> <field value>。リクエストまたはレスポンスで、<target>で指定されたヘッダーフィールドを変更します。Diameter.req.flags.SET(<flag>)またはstringbuilderexpressionとしてのDiameter.req.flags.UNSET<flag>を使用して、フラグを設定または解除します。
> add rewrite action replace_diameter_field_ex_act replace_diameter_header_field diameter.req.flags diameter.req.flags.set(PROXIABLE)
Done
> sh rewrite action replace_diameter_field_ex_act
Name: replace_diameter_field_ex_act
Operation: replace_diameter_header_field
Target:diameter.req.flags
Value:diameter.req.flags.set(PROXIABLE)
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_DNS_HEADER_FIELD <target>。リクエストまたはレスポンスで、<target>で指定されたヘッダーフィールドを変更します。
> add rewrite action replace_dns_hdr_act replace_dns_header_field dns.req.header.flags.set(AA)
Done
> sh rewrite action replace_dns_hdr_act
Name: replace_dns_hdr_act
Operation: replace_dns_header_field
Target:dns.req.header.flags.set(AA)
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
REPLACE_DNS_ANSWER_SECTION <target>。応答の DNS 応答セクションを置き換えます。これは、A レコードと AAAA レコードにのみ適用されます。DNS.NEW_RRSET_AおよびNS.NEW_RRSET_AAAA式を使用して、新しい回答セクションを構成します。
> add rewrite action replace_dns_ans_act replace_dns_answer_section DNS.NEW_RRSET_A("1.1.1.1", 10)
Done
> sh rewrite action replace_dns_ans_act
Name: replace_dns_ans_act
Operation: replace_dns_answer_section
Target:DNS.NEW_RRSET_A("1.1.1.1", 10)
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CLIENTLESS_VPN_DECODE<target>。ターゲットによって指定されたパターンをクライアントレス VPN 形式でデコードします。
> add rewrite action cvpn_decode_act_1 clientless_vpn_decode http.req.body(100)
Done
> sh rewrite action cvpn_decode_act_1
Name: cvpn_decode_act_1
Operation: clientless_vpn_decode
Target:http.req.body(100)
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CLIENTLESS_VPN_DECODE_ALL<target>-search<expression>。検索パラメータで指定されたすべてのパターンをクライアントレス VPN 形式でデコードします。
> add rewrite action act1 clientless_vpn_decode_all http.req.body(100) -search text("abcd")
Done
> sh rewrite action act1
Name: act1
Operation: clientless_vpn_decode_all
Target:http.req.body(100)
Search: text("abcd")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CLIENTLESS_VPN_ENCODE<target>。ターゲットで指定されたパターンをクライアントレス VPN 形式でエンコードします。
> add rewrite action cvpn_encode_act_1 clientless_vpn_encode http.req.body(100)
Done
> sh rewrite action cvpn_encode_act_1
Name: cvpn_encode_act_1
Operation: clientless_vpn_encode
Target:http.req.body(100)
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CLIENTLESS_VPN_ENCODE_ALL<target>-search<expression>。指定されたすべてのパターンをクライアントレス VPN 形式でエンコードします。
> add rewrite action act2 clientless_vpn_encode_all http.req.body(100) -search text("abcd")
Done
> sh rewrite action act2
Name: act1
Operation: clientless_vpn_encode_all
Target:http.req.body(100)
Search: text("abcd")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
CORRUPT_SIP_HEADER<target>。<target>で指定したすべての SIP ヘッダーのヘッダー名を破損した名前に置き換え、受信者がそれを認識しないようにします。
> add rewrite action corrupt_sip_hdr_act corrupt_sip_header SIP_HDR
Done
> sh rewrite action corrupt_sip_hdr_act
Name: corrupt_sip_hdr_act
Operation: corrupt_sip_header
Target:SIP_HDR
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
INSERT_SIP_HEADER <header_string_builder_expr> <contents_string_builder_expr>。<header_string_builder_expr>で指定されたSIPヘッダーと、<contents_string_builder_expr>で指定されたヘッダーコンテンツを挿入します。
> add rewrite action insert_sip_hdr_act insert_sip_header SIP_HDR '"inserting_sip_header"'
Done
>sh rewrite action insert_sip_hdr_act
Name: insert_sip_hdr_act
Operation: insert_sip_header
Target:SIP_HDR
Value:"inserting_sip_header"
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
-
DELETE_SIP_HEADER<target>。<target>で指定された SIP ヘッダーを削除します。
> add rewrite action delete_sip_hdr delete_sip_header SIP_HDR
Done
> sh rewrite action delete_sip_hdr
Name: delete_sip_hdr
Operation: delete_sip_header
Target:SIP_HDR
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
ターゲットパラメータ
StringBuilderExpr
> add rewrite action insertact INSERT_HTTP_HEADER "client-IP" CLIENT.IP.SRC
Done
> show rewrite action insertact
Name: insertact
Operation: insert_http_header
Target:Client-IP
Value:CLIENT.IP.SRC
BypassSafetyCheck : NO
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
> add rewrite action client_tcp_payload_replace_all REPLACE_ALL
'client.tcp.payload(1000)' '"new-string"' -search text("old-string")
Done
> show rewrite action client_tcp_payload_replace_all
Name: client_tcp_payload_replace_all
Operation: replace_all
Target:client.tcp.payload(1000)
Value:"new-string"
Search: text("old-string")
BypassSafetyCheck : NO
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
>
リクエストまたはレスポンスの一部を検索して書き換え
-
INSERT_BEFORE_ALL
-
INSERT_AFTER_ALL
-
REPLACE_ALL
-
DELETE_ALL
-
CLIENTLESS_VPN_ENCODE_ALL
-
CLIENTLESS_VPN_DECODE_ALL
-
INSERT_HTTP_HEADER
-
INSERT_BEFORE
-
INSERT_AFTER
-
REPLACE
-
削除
-
DELETE_HTTP_HEADER
-
CORRUPT_HTTP_HEADER
-
REPLACE_HTTP_RES
-
CLIENTLESS_VPN_ENCODE
-
CLIENTLESS_VPN_DECODE
-
INSERT_SIP_HEADER
-
DELETE_SIP_HEADER
-
CORRUPT_SIP_HEADER
-
REPLACE_DIAMETER_HEADER_FIELD
-
REPLACE_DNS_ANSWER_SECTION
-
REPLACE_DNS_HEADER_FIELD
-
REPLACE_SIP_RES
-
テキスト- リテラル文字列例 ፦検索テキスト (「hello」)
-
正規表現-リクエストまたはレスポンスの複数の文字列を照合するために使用されるパターン例 ፦検索正規表現 (re~\^hello*~)
-
XPATH-XML を検索する XPATH 式。 例 ፦-search xpath(xp%/a/b%)
-
JSON-JSON を検索するための XPATH 式。 例 ፦検索xpath_json (xp%/a/b%) HTML-HTML を検索する XPATH 式例 ፦検索 xpath_html (xp%/html/body%) パッチセット-これはパッチセットエンティティにバインドされたすべてのパターンを検索します。 例:-search patset("patset1")
-
Datset-データセットエンティティにバインドされたすべてのパターンを検索します。 例 ፦-search dataset("dataset1")
-
AVP- 直径/Radiusメッセージの例 ፦検索 avp (999) で複数の AVP を照合するために使用される AVP 番号
検索結果を絞り込む
> add rewrite action test_refine_search replace_all http.res.body(10) '”testing_refine_search”' -search text("abc") -refineSearch extend(1,1)
And the HTTP response body is abcxxxx456.
testing_refine_searchxxx456です。
> add policy patset pat
Done
> bind policy patset pat abcd
Done
> add rewrite action refineSearch_act_1 insert_before_all http.res.body(10) 'target.prefix(10) + "refineSearch_testing"' -search patset("pat") -refineSearch extend(10,10)
Done
> sh rewrite action refineSearch_act_1
Name: refineSearch_act_1
Operation: insert_before_all
Target:http.res.body(10)
Refine Search:extend(10,10)
Value:target.prefix(10) + "refineSearch_testing"
Search: patset("pat")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
> add rewrite action refineSearch_act_2 insert_after_all http.res.body(100) '"refineSearch_testing"' -search text("abc") -refineSearch extend(0, 10)
Done
> sh rewrite action refineSearch_act_2
Name: refineSearch_act_2
Operation: insert_after_all
Target:http.res.body(100)
Refine Search:extend(0, 10)
Value:"refineSearch_testing"
Search: text("abc")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
> add policy patset pat_list_2
Done
> bind policy patset pat_list_2 "www.abc.com"
Done
> bind policy patset pat_list_2 "www.def.com"
Done
> add rewrite action refineSearch_act_31 replace_all "HTTP.RES.BODY(100000)" ""https://"" -search "patset("pat_list_2")" -refineSearch "EXTEND(7,0).REGEX_SELECT(re#http://#)"
Done
> sh rewrite action refineSearch_act_31
Name: refineSearch_act_31
Operation: replace_all
Target:HTTP.RES.BODY(100000)
Refine Search:EXTEND(7,0).REGEX_SELECT(re#http://#)
Value:"https://"
Search: patset("pat_list_2")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
>add rewrite action refineSearch_act_4 delete_all "HTTP.RES.BODY(50000)" -search text("Windows Desktops") -refineSearch "EXTEND(40,40).REGEX_SELECT(re#\s*<AppData>.\*\s\*<\\/AppData>#)"
> show REWRITE action refineSearch_act_4
Name: refineSearch_act_4
Operation: delete_all
Target:HTTP.RES.BODY(50000)
Refine Search:EXTEND(40,40).REGEX_SELECT(re#\s*<AppData>.\*\s\*</AppData>#)
Search: text("Windows Desktops")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
>
> add rewrite action act1 clientless_vpn_decode_all http.req.body(100) -search text("abcd")
Done
> sh rewrite action act1
Name: act1
Operation: clientless_vpn_decode_all
Target:http.req.body(100)
Search: text("abcd")
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
>
コマンドラインインターフェイスを使用して既存の書き換えアクションを変更する
-
set rewrite action <name> [-target <expression>] [-stringBuilderExpr <expression>] [-search <expression>] [-refineSearch <expression>] [-comment <string>]
-
show rewrite action <name>
> set rewrite action insertact -target "Client-IP"
Done
> show rewrite action insertact
Name: insertact
Operation: insert_http_header Target:Client-IP
Value:CLIENT.IP.SRC
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
コマンドラインインターフェイスを使用して書き換えアクションを削除する
rm rewrite action <name>
> rm rewrite action insertact
Done
構成ユーティリティを使用して書き換えアクションを構成する
ダイアログボックスを使用して式を追加します
-
-
HTTP HTTP プロトコル。HTTP プロトコルに関連するリクエストの側面を調べる場合は、これを選択します。
-
SYS。保護されたウェブサイト。リクエストの受信者に関連するリクエストの側面を調べる場合は、これを選択します。
-
CLIENT. 要求を送信したコンピュータ。リクエストの送信者の側面を調べる場合は、これを選択します。
-
-
式が終了するまで、前のリストボックスの右側に表示されるリストボックスから用語を選択するか、値の入力を求めるテキストボックスに文字列または数値を入力します。 PI 式の言語およびレスポンダーポリシーの式の作成の詳細については、「ポリシーと式」を参照してください。
TCP ペイロードを書き換え
-
CLIENT.TCP.PAYLOAD. クライアント要求の TCP ペイロードを書き換えるため。たとえば、CLIENT.TCP.PAYLOAD (10000) .AFTER_STR ("string1") などです。
-
SERVER.TCP.PAYLOAD. サーバー応答の TCP ペイロードを書き換えるため。たとえば、SERVER.TCP.PAYLOAD(1000).B64DECODE.BETWEEN("string1","string2")など。
ダイアログボックスを使用して書き換えアクションを評価する
-
「書き換えアクション」(Rewrite Action)-評価する書き換えアクションがまだ選択されていない場合は、ドロップダウンリストから選択します。書き換えアクションを選択すると、「詳細」セクションに、選択した書き換えアクションの詳細が表示されます。 「新規」(New)-「新規作成」(New) を選択して「書き換えアクションを作成」(Create Rewrite Action) ダイアログボックスを開 「変更」(Modify)-「修正」(Modify) を選択して「書き換えアクションを設定」(Configure) ダイアログボックスを開き、選択した書き換え フロータイプ:選択した書き換えアクションを HTTP リクエストデータまたは HTTP 応答データのどちらでテストするかを指定します。デフォルトは です。応答データでテストする場合は、 を選択します。 HTTP 要求/応答データ*:書き換えアクションエバリュエーターがテストに使用する HTTP データを提供するスペースを提供します。データをウィンドウに直接貼り付けるか、 をクリックしてサンプル HTTP ヘッダーを挿入できます。 行末を表示-サンプル HTTP データの各行の末尾に UNIX スタイルの行末文字(\ n)を表示するかどうかを指定します。 :HTTP リクエスト/レスポンスデータウィンドウにサンプル HTTP データを挿入します。GET または POST データを選択できます。 :ローカルブラウズウィンドウが開き、ローカルまたはネットワークロケーションのサンプル HTTP データを含むファイルを選択できます。 : ウィンドウから現在のサンプル HTTP データを消去します。
-
すべてのアクションが希望する効果があると判断するまで、書き換えアクションを評価し続けます。
-
書き換えアクションを削除するには、削除する書き換えアクションを選択し、「 削除 」をクリックし、プロンプトが表示されたら、「 **OK」**をクリックして選択を確定します。
書き換えポリシーの構成
-
<add rewrite policy <name> <expression> <action> [<undefaction>] -
<show rewrite policy <name>
> add rewrite policyNew "HTTP.RES.IS_VALID" insertact NOREWRITE
Done
> show rewrite policyNew
Name: policyNew
Rule: HTTP.RES.IS_VALID
RewriteAction: insertact
UndefAction: NOREWRITE
Hits: 0
Undef Hits: 0
Done
> add rewrite policy client_tcp_payload_policy CLIENT.IP.SRC.EQ(172.168.12.232) client_tcp_payload_replace_all
Done
> show rewrite policy client_tcp_payload_policy
Name: client_tcp_payload_policy
Rule: CLIENT.IP.SRC.EQ(172.168.12.232)
RewriteAction: client_tcp_payload_replace_all
UndefAction: Use Global
LogAction: Use Global
Hits: 0
Undef Hits: 0
Done
>
-
<set rewrite policy <name> -rule <expression> -action <action> [<undefaction>] -
<show rewrite policy <name>
> set rewrite policyNew -rule "HTTP.RES.IS_VALID" -action insertaction
Done
> show rewrite policyNew
Name: policyNew
Rule: HTTP.RES.IS_VALID
RewriteAction: insertaction
UndefAction: NOREWRITE
Hits: 0
Undef Hits: 0
Done
rm rewrite policy <name>
> rm rewrite policyNew
Done
-
[AppExpert]>[Rewrite]>[Policies] の順に移動します。
-
詳細ウィンドウで、次のいずれかの操作を行います。
-
手順 2 ~ 4 を繰り返して、必要な数の書き換えアクションを作成または変更します。
-
[閉じる] をクリックします。書き換えポリシーを削除するには、削除する書き換えポリシーを選択し、「 削除 」をクリックし、プロンプトが表示されたら、「 **OK」**をクリックして選択を確定します。
書き換えポリシーのバインド
-
bind rewrite global <policyName> <priority> [<gotoPriorityExpression>] [-type <type>] [-invoke (<labelType> <labelName>)] -
show rewrite global
>bind rewrite global policyNew 10
Done
> show rewrite global
1) Global bindpoint: RES_DEFAULT
Number of bound policies: 1
2) Global bindpoint: REQ_OVERRIDE
Number of bound policies: 1
Done
-
bind lb vserver <name>@ (<serviceName>@ [-weight <positive_integer>]) | <serviceGroupName>@ | (-policyName <string>@ [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )] [-invoke (<labelType> <labelName>)] ) -
show lb vserver <name>
> bind lb vserver lbvip -policyName ns_cmp_msapp -priority 50
Done
>
> show lb vserver lbvip
lbvip (8.7.6.6:80) - HTTP Type: ADDRESS
State: DOWN
Last state change was at Wed Jul 15 05:54:24 2009 (+226 ms)
Time since last state change: 28 days, 01:57:26.350
Effective State: DOWN
Client Idle Timeout: 180 sec
Down state flush: ENABLED
Disable Primary Vserver On Down : DISABLED
Port Rewrite : DISABLED
No. of Bound Services : 0 (Total) 0 (Active)
Configured Method: LEASTCONNECTION
Mode: IP
Persistence: NONE
Vserver IP and Port insertion: OFF
Push: DISABLED Push VServer:
Push Multi Clients: NO
Push Label Rule: none
1) Policy : ns_cmp_msapp Priority:50
2) Policy : cf-pol Priority:1 Inherited
Done
-
AppExpert >書き換え > ポリシーに移動します。
-
-
バインドポイントにバインドするポリシーをクリックします。ポリシーは、バインドポイントにバインドされた書き換えポリシーのリストに挿入されます。
-
[閉じる] をクリックします。ポリシーが正常に構成されたことを示すメッセージがステータスバーに表示されます。
-
この仮想サーバにバインドするポリシーの名前の横にあるチェックボックスをオンにします。
-
[OK] をクリックします。ポリシーが正常に構成されたことを示すメッセージがステータスバーに表示されます。
書き換えポリシーラベルの設定
add rewrite policylabel <labelName> <transform>
add rewrite policy label polLabelHTTPResponses http_res
set rewrite policy <name> <transform>
rm rewrite policy<name>
rm rewrite policy polLabelHTTPResponses
-
AppExpert > 書き換え > ポリシーラベルに移動します。
-
詳細ウィンドウで、次のいずれかの操作を行います。
-
ポリシーラベルにバインドされているリストからポリシーを追加または削除します。