Forum Discussion

ccook_14058's avatar
ccook_14058
Icon for Nimbostratus rankNimbostratus
Dec 15, 2011

Exchange 2010 activesync not working

using the following Irule

 

 

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?

 

 

 

  • Hi ccook,

    Logging is your very best friend in situations like you are seeing, because it at least works in some fashion allowing you to see why.

    This is what I would suggest doing:

     
    when HTTP_REQUEST {
    if { [HTTP::header "User-Agent"] contains "MSRPC" } {
    log local0. "User-Agent Match:  [HTTP::header value User-Agent ]"
    persist uie [HTTP::header "Authorization"] 3600
    pool Exchange_2010__single_oa_pool
    HTTP::class disable
    }
    elseif { [HTTP::uri] contains "Microsoft-Server-ActiveSync" } {
    log local0. "ActiveSync Match:  [HTTP::uri]"
    persist cookie
    pool Exchange_2010__single_as_pool
    HTTP::class disable
    }
    else {
    log local0. "User-Agent Value:  [HTTP::header value User-Agent ]"
    log local0. "URI Value:  [HTTP::uri]"
    persist cookie
    pool Exchange_2010__single_owa_pool
    }
    }
    

    You can examine the results in the /var/log/ltm log. The User-Agent is case sensitive, as well as the entire URI, so you might just need to string them to lower to fix your issue, but the logging in the Else statement will tell you one way or the other.

    Hope this helps.