F5 で単一の仮想サーバー [VIP] に複数のプールを割り当てる方法

F5 で単一の仮想サーバー [VIP] に複数のプールを割り当てる方法

F5 には、複数のプールを構成する必要があり、すべてのプールが単一の仮想サーバー [1 VIP] を使用して外部からのトラフィックを受信するという要件があります。この目標を達成するために必要な特定の構成が何かを調べようとしています。現時点では、仮想サーバーにデフォルト プールを割り当てると F5 構成が機能していますが、複数のクライアントがホストされている 1 つの VIP を使用する必要があるため、この時点で行き詰まっています。誰か助けてくれませんか。

答え1

1 つの VIP に複数のプールを設定するには、iRules を使用する必要があります。関連ドキュメントを参照してください。ここ

ここで考えなければならないのは、どのプールを使用するかを選択する方法です。次のようにしてホストまたは URI 値を確認できます。

when HTTP_REQUEST {
  if { [HTTP::uri] contains "blabla"} {
    pool "Your pool name here"
 }
}

さらに詳しい情報が必要な場合はお知らせください。F5 iRules についてはよく知っています ;)

答え2

Dexirian は上で正しいのですが、複数のクライアントのために複数のプールが必要であることを踏まえると、これがより正確な回答だと思います。

when HTTP_REQUEST {
    switch -glob [string tolower [HTTP::uri]] {
        "/123*" { 
            HTTP::uri "/"
            pool pool_123 
        }
        "/456*" { 
            HTTP::uri "/"
            pool pool_456 
        }
        "/789*" { 
            HTTP::uri "/"
            pool pool_789 
        }
    }
}

答え3

アプリケーション名 (読み取り: fqdn) でプールを切り替えると仮定すると、プールに適切な名前を付けることができ、iRule は汎用的なものになります。

when HTTP_REQUEST {
  if { [catch {pool [HTTP::host]}] } {
    log local0. "error - pool [HTTP::host] does not exist"
    # Set pool to default since HTTP::host did not match existing pool
    pool [LB::server pool]
  }
}

関連情報