unexpected response from LTM
Hi,
I experience a weird issue in our LTM iRules, which just recently came to surface. The situation is as follows.
I have a virtual server with no default pool selected. Pool selection is done via an iRule.
I have this iRule:
when HTTP_REQUEST {
switch [HTTP::host] {
"webmail.domain.com" {
if {[string tolower [HTTP::uri]] eq "/"} { HTTP::redirect "https://webmail.domain.com/owa/" }
if {[string tolower [HTTP::uri]] starts_with "/microsoft-server-activesync"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/autodiscover"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/public"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/owa"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/exchange"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/ecp"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/rpc"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/oab"} { pool "webmail.domain.com_pool" }
if {[string tolower [HTTP::uri]] starts_with "/ews"} { pool "webmail.domain.com_pool" }
}
"autodiscover.domain.com" {
if {[string tolower [HTTP::uri]] starts_with "/microsoft-server-activesync"} { pool "webmail.domain.com_pool"; HTTP::header replace "Host" "webmail.domain.com" }
if {[string tolower [HTTP::uri]] starts_with "/autodiscover"} { pool "webmail.domain.com_pool"; HTTP::header replace "Host" "webmail.domain.com" }
}
}
}
Now, when browsing to https://webmail.domain.com/blablabla, I receive a 'page cannot be displayed', which is to be expected.
When browsing to https://webmail.domain.com/owa, I receive the OWA pages of webmail, which is to be expected.
Now, when browsing within half a minute to https://webmail.comain.com/anothernonexistinguri, I receive a 404 from the backend. I also, see this in the IIS logging of the backend. This is not expected, as there's no pool selection and I also don't see a pool being selected when logging with:
when LB_SELECTED {
log local0. "Selected pool member: [LB::server name] for URL [HTTP::host][HTTP::uri] for client [IP::client_addr]"
}
When waiting for half a minute and then going back to https://webmail.comain.com/anothernonexistinguri, I receive the 'page cannot be displayed' again, which is to be expected.
Persistence profile is set to cookie persistence.
Anyone have a clue what's going on here? And what I can do the get consistent behaviour?
Thanks!