So weisen Sie in F5 einem einzelnen virtuellen Server [VIP] mehrere Pools zu

So weisen Sie in F5 einem einzelnen virtuellen Server [VIP] mehrere Pools zu

Ich habe eine Anforderung in F5, bei der ich mehrere Pools konfigurieren muss und alle Pools einen einzelnen virtuellen Server [1 VIP] verwenden, um Datenverkehr von außen zu empfangen. Ich versuche herauszufinden, welche spezielle Konfiguration erforderlich ist und welche mir fehlt, um dieses Ziel zu erreichen. Bis jetzt funktioniert meine F5-Konfiguration, wenn ich dem virtuellen Server den Standardpool zuweise, da ich 1 VIP mit mehreren darauf gehosteten Clients verwenden muss, stecke ich an diesem Punkt fest. Kann mir hier jemand helfen?

Antwort1

Sie müssen iRules verwenden, um mehrere Pools auf einem einzigen VIP zu haben. Siehe entsprechende DokumentationHier

Jetzt müssen Sie sich überlegen, welchen Pool Sie auswählen. Sie können die Host- oder URI-Werte wie folgt überprüfen:

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

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich bin mit F5 iRules gut vertraut ;)

Antwort2

Dexirian hat oben Recht, aber ich denke, dies ist die richtigere Antwort auf Ihren Bedarf an mehreren Pools aufgrund mehrerer Clients:

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 
        }
    }
}

Antwort3

Angenommen, Sie wechseln den Pool nach Anwendungsnamen (sprich: FQDN), dann könnten Sie Ihre Pools entsprechend benennen und die iRule könnte generisch sein:

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]
  }
}

verwandte Informationen