Forum Discussion

mahanth's avatar
mahanth
Icon for Altostratus rankAltostratus
Aug 14, 2020

iRule to redirect header to a specific node

Hello we created an iRule to redirect header with a specific value to a particular node. But, we were not able to specify the node name and had to specify the node IP address. Is there a way to specify node/member name instead of the IP?

iRule:

when HTTP_REQUEST {

  if { [HTTP::header exists test]} {

    set node [HTTP::header value test]

    node $node 80

  }

}

  • Hello,

     

    Can I get the node IP from the pool name and eventually pass them as parameters.

     

    Something like: (but the problem is, it doesn't take tmsh commands)

     

    when HTTP_REQUEST {

        if { [HTTP::header exists test]} {

            set POOLNAME [LB::server pool]

            set NODENAME [HTTP::header value test]

            for POOLMEMBER in `tmsh list ltm pool $POOLNAME | grep : | sort | awk '{print $1}'`; do

                if { [string tolower $POOLMEMBER] equals [string tolower $NODENAME] } {

                    pool $POOLNAME member ($(tmsh list ltm node $POOLMEMBER_NAME | grep "address")) 80

                    break

                }

            done

        }

    }