Forum Discussion

jcrua_40820's avatar
Icon for Nimbostratus rankNimbostratus
Nov 09, 2011

irule vs. default pool

BIG-IP 9.3.1 Build 74.0




I have an irule applied to a vip that says this: when HTTP_REQUEST { use pool proxy_7105 } - basically, sending all requests to this particular pool. But, it doesn't seem like i should need to use an irule. So i dropped that rule and just set the pool mentioned in the irule as the "default pool" for that VIP. But when i did that, there were some 404s for requests hitting that vip. - my experience is limited, but to me those should be technically the same, but the app doesn't like the default pool setting for some reason. - note: there IS a 2nd irule being used for this vip, an HTTP HEADER INSERT rule. So i guess I have 2 questions, does anyone know of a technical difference between the 2 configurations i mentioned? is there any issue with using a default pool and an irule together?

5 Replies

  • Hi jcrua,



    A server pool is the default way to send incoming traffic from a Virtual Server to a server pool. You can use iRules and Default Pools together, or just iRules.



    If you are going to use the default pool alone then the entire content of the Application needs to come from the servers in the Default pool. If there is some other content on the website on a different set of servers, then you can use the Default Application Pool and iRules together.



    This is normally referred to as "traffic shaping" which will allow for distributed content to be gathered from different sets of servers and the behavior is:



    1) Redirected traffic from the iRule 1st


    2) Any traffic not matching a condition within an iRule will be sent to the Default Server pool applied to the Virtual Server.



    Hope this helps.
  • But when i did that, there were some 404s for requests hitting that vip.i do not think default pool causes this issue. to troubleshoot, packet capture could be helpful.



    tcpdump -nni 0.0 -s0 -w /var/tmp/output_file.pcap host x.x.x.x or host y.y.y.y


    x.x.x.x is virtual server address


    y.y.y.y is pool member address



    if there is too many traffic, adding port number in the filter may be good.



    tcpdump -nni 0.0 -s0 -w /var/tmp/output_file.pcap \(host x.x.x.x and port xxx\) or \(host y.y.y.y and port yyy\)


    xxx is virtual server port number


    yyy is pool member port number



    hope this helps.
  • AFAIK, technically they're the same. If destination pool can be determined in iRule, LTM will use that pool. However, if destination pool isn't specified or can not be determined in any iRule, default pool will be used, hence the name "default" pool. Both pool in iRule and default one can be used together.



    Perhaps there is something in your HTTP HEADER INSERT rule. You could verify your iRule or as nitass suggested, packet capture could be helpful in this case.
  • Hi jcrua,



    I don't think that going the tcpdump route is going to help you locate the source of your 404's. Might give you a headache though and you would have to dig just to find the 404's that you already know are being thrown.



    Download and install HTTPWatch. Run it of course, then navigate the site normally and see which pieces are throwing the 404's since it will match up the 404 with the full request that it was returned for.



    This should help you determine if the content is on the default servers you have configured, or if you are going to have to add to your iRule to match the traffic and route it to a different server(s) that hold that specific content.



    Hope this helps.
  • Arie's avatar
    Icon for Altostratus rankAltostratus
    If you have access to the web server(s) I'd recommend checking the logs on those for the 404s.