◆ iRule - 取得したデータ情報に基づいた条件(iRuleでのコンディション)
イベントを決めた後に、取得したどのようなデータ情報に基づいて処理をするのかの判断をします。
判断対象には以下のようなTCP/IPの値を使用します。「送信元、あて先」はBIG-IP視点で考えます。
※ 使用するイベントによって、コンディションで使用可能なコマンドが異なるので注意しましょう。
コンディションの主なコマンド |
取得できる値 |
IP::client_addr |
送信元IPアドレス(クライアントのIPアドレス) |
IP::server_addr |
宛先IPアドレス(サーバのIPアドレス) |
IP::remote_addr |
BIG-IPから見てリモートのIPアドレス |
IP::local_addr |
BIG-IPが持つIPアドレス(Virtual ServerのIPまたはSelf IP) |
TCP::client_port |
送信元TCPポート番号(クライアントのTCPポート番号) |
TCP::server_port |
宛先TCPポート番号(サーバのTCPポート番号) |
TCP::remote_port |
BIG-IPから見てリモートのTCPポート番号 |
TCP::local_port |
TCPコネクションのBIG-IP側のTCPポート番号 |
UDP::client_port |
送信元UDPポート番号(クライアントのUDPポート番号) |
UDP::server_port |
宛先UDPポート番号(サーバのUDPポート番号) |
UDP::remote_port |
BIG-IPから見てリモートのUDPポート番号 |
UDP::local_port |
BIG-IP側のUDPポート番号 |
HTTP::header |
任意のHTTPヘッダの値 |
HTTP::host |
HTTPヘッダ内のホスト |
HTTP::uri |
HTTPヘッダ内のURI |
HTTP::user-agent |
HTTPヘッダ内のUIA |
SSL::cert |
X509 SSL証明書データの値 |
SSL::cipher |
SSL cipher name, its version, the number of secret bits |
イベントを決めた後に、取得したどのようなデータ情報に基づいて処理をするのかの判断をします。
そして、これらの値は以下のような比較演算子を利用して、文字列の比較を行います。
比較演算子 |
説明 |
contains 〜 |
〜を含む |
matches 〜 |
〜リストの1つ一致する |
equals 〜 |
〜と一致する |
starts_with 〜 |
〜で始まる |
ends_with 〜 |
〜で終わる |
◆ iRule - トラフィックの処理(iRuleによる実行アクション)
条件判断により、条件に一致した場合(または一致しなかった場合)に以下のような処理を行います。
アクションのコマンド |
説明 |
node |
指定したノードを選択する |
pool |
指定したPoolを割り振る |
snat |
指定したアドレスに送信元アドレスを変換 |
forward |
フォワードする |
discard |
破棄する |
drop |
ドロップする |
persiste |
Persistenceを保つ |
HTTP::redirect |
リダイレクトする |
HTTP::header insert |
HTTPヘッダを挿入する |
HTTP::respond |
HTTPのレスポンスを返す |
|