Forum Discussion

gwrotterdam_347's avatar
gwrotterdam_347
Icon for Nimbostratus rankNimbostratus
Sep 18, 2009

Data group to default pool instead of specified pool

Hi,

 

I've got the following code to redirect IP's who are not in the 'SysOp' datagroup to google.com

 

when HTTP_REQUEST {  
 if { [matchclass [IP::client_addr] equals $::SysOp] }{  
 pool pool123  
 } else {  
 HTTP::redirect http://www.google.com  
 }  
 }

 

This code is working fine. But is it possible to send the matching clients (clients in the SysOp datagroup) to the default specified pool in the configuration? For administrative reasons, I prefer to specify the pool in the configuration of the loadbalancer instead of in the iRule.

2 Replies

  • Hi,

    [LB::server pool] (Click here) will return the currently selected pool name. At the beginning of the TCP connection this will return the default pool on the virtual server. If you change the pool to a different pool at some point for a TCP connection, [LB::server pool] will return that pool name. So you can save the VIP's default pool in CLIENT_ACCEPTED, before it's been changed and then reference that later in the iRule. If you're never selecting a different pool, you probably don't need to save the name, but I think it's a good practice anyhow.

     
     when CLIENT_ACCEPTED { 
      
         Save the VIP's default pool name 
        set default_pool [LB::server pool] 
     } 
     when HTTP_REQUEST {   
        if { [matchclass [IP::client_addr] equals $::SysOp] }{   
           pool $default_pool 
        } else {   
           HTTP::redirect "http://www.google.com/" 
        }   
     } 
     

    Aaron