JosephT
Mar 13, 2009Nimbostratus
Back to basics - redirect to a virtual server
We're working on an irule to send connections to another virtual server based on a match on the X-forwarded header. The reason for this is so we can rate-limit the number of connections (by using Connection Limit on the virtual server) to the web servers if we need to.
So we have a 'dummy' pool that consists of a virtual server which has a pool of web servers and this irule:
when HTTP_REQUEST {
if { [HTTP::header "X-Forwarded-For"] == "4.4.4.0" } {
pool webcrawler.dummy.pool
event disable
}
}
When testing with a client and injecting an X-Forwarded-For address like this: "GET -seUd -H "X-Forwarded-For: 4.4.4.0" www.mysite.com" all I receive is "500 Server closed connection without sending any data back"
I also tried using node and the IP of the virtual server ie: node x.x.x.x 80 instead of pool, but that doesn't work either.
The only thing that does work is if I use pool webserver.pool or node webserver.ip 80
I discovered: "In version 9.4.0 and higher, 'virtual ' can be used to route the connection to another virtual server, without leaving the BIG-IP. This functionality did not exist in previous versions." We happen to be using 9.3.0
But we were told by F5 that we should be able to route the existing connection to a pool containing a virtual server (on the same ltm) containing a pool.
Any ideas?