Forum Discussion

Fotios_30046's avatar
Fotios_30046
Icon for Nimbostratus rankNimbostratus
May 21, 2009

Weirdness With iRule or Pool

We have a ticket system for development/qa running on its own VS. We then created a development copy of this system to test out changes before releasing them to production. I figured why setup another public IP and VS and leverage one VS, point both dns entries and use an iRule to determine which pool to use based on hostname.

Its been working without any major problems until today. I'm noticing the sites not coming up, but it seems the rule is ok because its logging to the /var/log/ltm correctly.

The iRule is:

 
 when HTTP_REQUEST 
 { 
 log local0. "http host is: [HTTP::host]" 
 if { [HTTP::host] equals "support.furniture.com" } 
 { 
 log local0. "entered support.furniture.com" 
 if {  
 [HTTP::uri] equals "/" 
 } then { 
 HTTP::redirect "http://support.furniture.com/tmtrack/tmtrack.dll" 
 } else { 
 pool BusinessMashups-Production-Pool 
 } 
 } 
 elseif { [HTTP::host] equals "support.blueport.com" } 
 { 
 log local0. "entered support.blueport.com" 
 if {  
 [HTTP::uri] equals "/" 
 } then { 
 HTTP::redirect "http://support.blueport.com/tmtrack/tmtrack.dll" 
 } else { 
 pool BusinessMashups-Production-Pool 
 } 
 } 
 elseif { [HTTP::host] equals "devsupport.blueport.com" } 
 { 
 log local0. "entered devsupport.blueport.com" 
 log local0. "URI is: [HTTP::uri]" 
 if {  
 [HTTP::uri] equals "/" 
 } then { 
 HTTP::redirect "http://devsupport.blueport.com/tmtrack/tmtrack.dll" 
 } else { 
 pool BusinessMashups-Development-Pool 
 } 
 } 
 else { 
 log local0. "redirected to blueport commerce main site" 
 HTTP::redirect "http://www.blueport.com" 
 } 
 } 
 

4 Replies

  • Some things to consider:

     

     

    What does the client see? A blank page after a timeout expires, a 404, a page cannot be displayed error? Does it happen on every request or intermittently? Are all of the failures occurring when one server is selected? What do you see in the LTM log files when a failure occurs?

     

     

    Aaron
  • A client sees a blank page after a timeout expires and it happens intermittently and no errors logged in the ltm when a failure occurs. The pools contain only one server and when a failure occurs, I can bring up the application by using the local server IP.
  • I'd suggest capturing a tcpdump (Click here) of a failure to try and diagnose where the failure is occurring. You can use syntax like this to capture both the client - VIP and LTM - pool member connections:

     

     

    tcpdump -ni 0.0 -s 0 -w /var/tmp/`/bin/hostname`.test1.dmp host CLIENT_IP or host SERVER_IP

     

     

    Aaron
  • I'm going to setup a tcpdump and wait for users to report errors.

     

     

    On a side note, do you see any improvements that could be made to my irule?