一般的にBIG-IPのようなトラフィック管理製品は「L4-7スイッチ」と呼ばれ、クライアントからのリクエストをサーバに接続する際、L4の情報(TCP/UDP)若しくは、L7の情報(アプリケーション)に基づいてトラフィックの最適な振り分け行います。その際、L4でのトラフィック管理では、サーバのポート番号までしか判断しないので、振り分けが非常にシンプルですが、振り分けたサーバ側での処理が多く残ってしまいます。一方、アプリケーション・ヘッダを含めたL7でのデータ・ペイロード全体から得られる情報には、トラフィックを的確に振り分ける判断に役立つ内容が豊富です。 サーバ側での処理を軽減し、柔軟できめ細かなトラフィック管理を実現するには、このL7情報をどれだけ「活かせるか」が鍵となります。BIG-IPに標準搭載されている、「iRules」と呼ばれるプログラミング言語は、L7パケットに含まれるあらゆる情報に基づき、システムの状況に応じた柔軟な振り分けルールの記述を可能にします。
iRulesは標準的なスクリプト言語であるTCLがベースです。バーチャル・サーバとしネットワークのゲートウェイに存在するBIG-IPを通過するパケットに対し、決められたタイミング(イベント)であらかじめ記述したスクリプト(ルール)を実行することで、トラフィック制御を効率化し、クライアントとサーバ間のセキュアな通信を提供します。iRulesのスクリプトは、BIG-IPの管理画面(GUI)から直接記述できます。
セキュリティ強化目的で、サーバのリソースをクローキングさせたり、Cookie情報を暗号化したりと、様々なニーズに応じてiRulesを記述し、ご利用いただけますが、F5ネットワークスでは、多くのBIG-IPユーザーで広く採用されているiRulesのサンプル・スクリプトを公開しています。
| Cookie暗号化iRule | クライアント側にAES暗号化されたCookie情報を返すことで、Cookie改ざんによる悪意を持ったアタックからWebアプリケーションを保護 |
|---|---|
| リソースクローキングiRule | サーバ名、アプリケーションが付与する任意のヘッダなど、クライアントにとっては本来不要な情報、且つWebサーバを攻撃する手がかりになる情報を削除 |
| 携帯電話パーシステンスiRule | クライアントからの接続を携帯キャリア(NTTドコモ/AU/Softbank)ごとに適切な識別情報を利用し、最適なサーバプールに接続維持 |
| 応答エラー処理iRule | サーバのレスポンスに含まれるHTTPステータスコードに基づいて障害を検知。万一障害が発生しているサーバにトラフィックが振り分けられた場合でも、正常稼動しているサーバにトラフィックをリダイレクションし、クライアントにエラーを応答する状況を回避 |

iRulesのサンプル記述(リソースクローキング)