Mike,
We are running f5.microsoft_exchange_2010_cas.2012_06_08.
I have not taken a client side capture yet, but I can do that if we need to.
Here is a copy of the iRule:
when HTTP_REQUEST {
OAB and Autodiscover do not require persistence.
switch -glob -- [string tolower [HTTP::path]] {
"/microsoft-server-activesync" {
Direct all ActiveSync clients to a common pool; use Auth
header value if it exists (Basic auth only, which is the
default); otherwise we fall back to client IP
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} elseif { [HTTP::header exists "Authorization"] } {
persist uie [HTTP::header "Authorization"] 7200
} else {
persist source_addr
}
pool FC-EX2010-DC1-CAS_as_pool
COMPRESS::disable
CACHE::disable
return
}
"/owa*" {
Outlook Web Access
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool FC-EX2010-DC1-CAS_owa_pool
return
}
"/ecp*" {
Exchange Control Panel.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool FC-EX2010-DC1-CAS_owa_pool
return
}
"/ews*" {
Exchange Web Services.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool FC-EX2010-DC1-CAS_oa_pool
COMPRESS::disable
CACHE::disable
return
}
"/oab*" {
Offline Address Book. Persistence is not required for OAB
pool FC-EX2010-DC1-CAS_oa_pool
return
}
"/rpc/rpcproxy.dll" {
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} elseif { [string tolower [HTTP::header "Authorization"]] starts_with "basic" } {
persist uie [HTTP::header "Authorization"] 7200
} else {
persist source_addr
}
Finally, this assigns the Outlook Anywhere pool.
pool FC-EX2010-DC1-CAS_oa_pool
If the HTTP profile assigned to your virtual server enables Compression
or RAM Cache, you should un-comment either or both of the following lines
to turn off the respective feature(s) for Outlook Anywhere connections.
If you are using Web Accelerator, un-comment both lines.
COMPRESS::disable
CACHE::disable
return
}
"/autodiscover*" {
Requests for Autodiscovery information. No Persistence.
pool FC-EX2010-DC1-CAS_ad_pool
return
}
default {
This final section takes all traffic that has not otherwise
been accounted for and sends it to the pool for Outlook Web App
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool FC-EX2010-DC1-CAS_owa_pool
}
}
}
when HTTP_RESPONSE {
if { [string tolower [HTTP::header values "WWW-Authenticate"]] contains "negotiate"} {
ONECONNECT::reuse disable
ONECONNECT::detach disable
NTLM::disable
}
if {[HTTP::header exists "Transfer-Encoding"]} {
HTTP::payload rechunk
}
}