Como atribuir vários pools a um único servidor virtual [VIP] em F5

Como atribuir vários pools a um único servidor virtual [VIP] em F5

Eu tenho um requisito em F5 onde preciso configurar vários pools e todos os pools usarão um único servidor virtual [1 VIP] para receber tráfego do mundo externo. Estou tentando descobrir se é necessária alguma configuração específica que esteja faltando para atingir esse objetivo. A partir de agora, minha configuração F5 está funcionando quando atribuo o pool padrão ao servidor virtual, já que tenho que usar 1 VIP com vários clientes hospedados nele, então estou preso neste ponto. Alguém pode me ajudar aqui.

Responder1

Você precisará usar iRules para ter vários pools em um único VIP. Veja a documentação relevanteaqui

A única coisa que você precisa pensar agora é como selecionar qual pool usar. Você pode verificar os valores de host ou URI da seguinte maneira:

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

Por favor, deixe-me saber se precisar de mais informações, estou bastante familiarizado com o F5 iRules;)

Responder2

Dexirian está correto acima - mas acho que isso responde mais corretamente com base na sua necessidade de vários pools devido a vários clientes:

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

Responder3

Supondo que você esteja alternando o pool por nome do aplicativo (leia-se: fqdn), você poderá nomear seus pools adequadamente e o iRule poderá ser genérico:

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

informação relacionada