Forum Discussion
Exchange 2010 activesync not working
when HTTP_REQUEST {
if { [HTTP::header "User-Agent"] contains "MSRPC" } {
persist uie [HTTP::header "Authorization"] 3600
pool Exchange_2010__single_oa_pool
HTTP::class disable
}
elseif { [HTTP::uri] contains "Microsoft-Server-ActiveSync" } {
persist cookie
pool Exchange_2010__single_as_pool
HTTP::class disable
}
else {
persist cookie
pool Exchange_2010__single_owa_pool
}
}
Traffic always ends up at the owa pool no matter what, If I remove the Irule and set the default resource pool to go to the activesync pool, active sync will connect just fine. It is just when I am relying on the Irule to split up the traffic I am unable to connect to activesync.
The template also attached the following Irule to this virtual server
when HTTP_REQUEST {
if { not ([HTTP::uri] starts_with "/owa") } {
HTTP::uri /owa[HTTP::uri]
}
}
any suggestions?
8 Replies
- Hamish
Cirrocumulus
I'm not at work at the moment, but that's not the same as the URI used on my activesync servers. (Admittedly they're 2007, and I'm not a windows person. Did they really change the URI used between 2007 and 2010?)
Q. Why are you disabling HTTP processing? (I leave it on so I can log the response code, timings etc).
H - MiLK_MaN
Nimbostratus
Delete the iRule that sets the HTTP::uri/owa[HTTP::uri]. It's probably firing first, and then when the second evaluation of HTTP_REQUEST is occurring, you're always matching the /owa URI. The template you used is probably more for an OWA install only, and does not take into consideration your additional requirements of sending other Exchange protocols to other pool members. - MiLK_MaN
Nimbostratus
double post - removed - MiLK_MaN
Nimbostratus
One way to confirm the above is to log the URI before the if statement.
log local0. "URI = [HTTP::uri]"
This will log into the file /var/log/ltm. - mikeshimkus_111Historic F5 AccountHere's a modified version of the iRule that will be included with the next version of the Exchange 2010 iApp. It includes log statements that you can remove if you like.
when HTTP_REQUEST {
switch -glob -- [string tolower [HTTP::path]] {
"/microsoft-server-activesync" {
log local0. "ActiveSync URI detected"
persist source_addr
pool Exchange_2010__single_as_pool
return
}
"/rpc/rpcproxy.dll" {
log local0. "OutlookAnywhere URI detected"
switch -glob [string tolower [HTTP::header "User-Agent"]] {
"msrpc" {
if { [HTTP::cookie exists "OutlookSession"] } {
persist uie [HTTP::cookie "OutlookSession"] 7200
} else {
persist uie [HTTP::header "Authorization"] 7200
}
}
"*microsoft office*" {
persist uie [HTTP::header "Authorization"] 7200
}
default {
persist source_addr
}
}
Finally, this assigns the Outlook Anywhere pool.
pool Exchange_2010__single_oa_pool
return
}
default {
log local0. "Fall through to default"
persist cookie
pool Exchange_2010__single_owa_pool
}
}
}
Also, here's the iRule we recommend for your OWA redirect:
when HTTP_REQUEST {
if { ([HTTP::uri] == "/") } {
HTTP::uri /owa/
}
}- Hank_Moody_3649
Nimbostratus
Quote: Also, here's the iRule we recommend for your OWA redirect:
when HTTP_REQUEST { if { ([HTTP::uri] == "/") } { HTTP::uri /owa/ } }
Does this work also for the 2016er iApp? We have also problems with activesync.. My iRule does look like this:
priority 900 when HTTP_REQUEST { if { ([HTTP::uri] == "/") } { HTTP::redirect https://[HTTP::host]/owa/ } }
i doubt your active sync issues are related to the OWA redirect.
if you used the 2016 iApp then that should take care of these things, there is no reason to fiddle with them unless you are doing some very different things.
- scsp_177450
Nimbostratus
Adding to Mike's comment, this may be useful as well, which is stated in the DG.
If the BIG-IP system is located behind a device that performs network address translation (NAT), and you are experiencing issues with iOS devices and ActiveSync, we recommend you modify the appropriate persistence iRule to include a wildcard character.
eg "/microsoft-server-activesync*"
and/or
"/rpc/rpcproxy.dll*"
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com