Forum Discussion

Anshu_Jain_3602's avatar
Anshu_Jain_3602
Icon for Nimbostratus rankNimbostratus
Jul 04, 2018

Issue with multiple pool on LTM

Issue with multiple pool on LTM. We are having two pools configured on our LTM. One is default pool containing servers for LTM, other one was created for IRULE to redirect the traffic to another application based on URI pattern.

 

We are looking to disable the LTM based on the status of default pool only. For this we have setup the https monitor on default pool. With the help of monitor, we are able to disable the default pool.

 

But the LTM by itself is not getting disabled as other non-default pool is active.

 

Please advise how we can disable the LTM based on the default pool status without impacting persistent connection,

 

2 Replies

  • I don’t understand disabling the LTM.

     

    Can you send me your virtual server configuration?

     

    CLI: tmsh list ltm virtual virtual server name

     

  • The simple answer is the F5 LTM is clever and reads the iRules for commands like pool, node and virtual and can if used can identify if a Virtual Server has an possible backend destination that is up or not. If all possible destinations are down the VS will be down however if one is up the F5 LTM will leave the VS as up.

     

    The fix is a little odd but simple, do not use explicit destination in your iRules. What this means is set your destination to a variable first then when the LTM reads the iRule it will not be able to lookup the pool/node/virtual server.

     

    I have taken a sample of your iRule to show as an example:

     

    when HTTP_REQUEST {
        if { ([HTTP::path] starts_with "/CPCi/") } { pool cpc-443 }
        elseif { ([HTTP::query] contains "target=hvnplwspwa41") } {
            set destNode "10.18.139.71"
            node $destNode 443
    ...
        
    ...
        } elseif {([HTTP::path] starts_with "/prwebGCS/IAC")} {
            set destPool gcsp-443
            pool $destPool
    ...
        

    There maybe another way to do this I don't know about but I have found this works and most of the time try to avoid being explicit with any forwarding command in iRules (keeps my code more generic)