BIG-IP - iRules



 ◆ F5 - iRulesとは

 iRulesは
TCLベースのスクリプトであり、Virtual Serverに関連づけることでGUIやCLIの設定では
 制御できないような
複雑なトラフィック処理を実現できます。iRulesは細かい要件に基づいたPool
 選択時によく使用されます。また、条件に合致したパケットの送信元アドレス変換、リダイレクト、
 フォワード、ドロップなどを行えます。iRuleの処理は以下の3つの要素に分類することができます。

 1. 処理を開始するためのトリガー(iRuleの発動
イベント
 ↓
 2. 取得したデータ情報に基づいた条件(iRuleでの
コンディション
 ↓
 3. トラフィックの処理(iRuleによる実行
アクション


 これら3つの要素は以下のようにiRule上で定義します。実際のiRule上のワードは後に紹介します。


    


 ※ 1つのiRuleは64Kbyte以内のサイズにする必要があるため、サイズが大きい場合はイベントごとにiRuleを分離させます。


 ◆ iRule - 処理を開始するためのトリガー(iRuleの発動イベント

 BIG-IPでどのようなイベントが発生した際にiRuleの処理を行うのか定義します。主なイベントには
 以下のようなものがあります。iRuleのイベントのコマンドとトラフィックの対比を見てみましょう。


  

イベントのコマンド 説明
 CLIENT_ACCEPTED
 Triggered when a client has established a connection.

 CLIENT_DATA


 Triggered each time new data is received from the client
 while the connection is in “collect” state.

 CLIENTSSL_DATA


 Triggered each time new SSL data is received from the client
 while the connection is in “collect” state.

 SERVER_CONNECTED
 Triggered when a connection has been established with the target node.

 SERVER_DATA


 Triggered when new data is received from the target node
 after TCP::collect command has been issued.

 HTTP_REQUEST


 An iRule event triggered when the system fully parses the complete
 client HTTP request headers (that is, the method, URI, version,
 and all headers, not including the HTTP request body).

 HTTP_RESPONSE


 An iRule event triggered when the system parses all of the response
 status and header lines from the server response.

 LB_SELECTED
 Triggered when the system selects a pool member.

 LB_FAILED


 Triggered when LTM is ready to send the request to a pool member and
 one hasn’t been chosen (the system failed to select a pool or a pool member),
 is unreachable (when no route to the target exists), has reached a queue limit,
 or is non-responsive (fails to respond to a connection request)



 実現したい要件に応じて適切なイベントのコマンドを選ぶ必要がありますが、上図の内容からも
 分かる通り、比較的よく使用されているイベントといえば
CLIENT_ACCEPTEDと言えるでしょう。
 なぜなら
バーチャルサーバ宛てのトラフィックをピックアップした時の発動イベントだからです。
 ※ イベントはこの他にも多くの種類があります。イベントの詳細はマニュアルで確認しましょう。

 イベントは
whenコマンドの後に指定します。また、iRuleで複数のイベントのコマンドを使用する
 ことができますが、その場合、トラフィックフローに基づいたイベントの順で処理されていきます。



BIG-IP Advanced Configuration

Copyright (C) 2002-2024 ネットワークエンジニアとして All Rights Reserved.