Forum Discussion

Julian_Sierra_4's avatar
Julian_Sierra_4
Icon for Nimbostratus rankNimbostratus
Jun 10, 2011

Help me with exchage2010 in F5 v 10.2.1

Hello every one... I am setting exchange 2010 on BIG-IP 10.2.1 Build 511.0 Hotfix HF3, following the Deployment Guide http://www.f5.com/pdf/deployment-guides/f5-exchange-2010-dg.pdf. I am use the Template for Exchange 2010, this template generate an iRule named Exch_2010_single_Persist_irule (view original iRule in the pag 56 of deployment guide).

 

 

 

 

 

iRule to select pool and persistence method when all Exchange

 

Client Access services are accessed through the same BIG-IP

 

virtual server.

 

when HTTP_REQUEST {

 

switch -glob [HTTP::path] {

 

 

"/Microsoft-Server-ActiveSync*" {

 

Direct all ActiveSync clients to a common pool; use

 

HTTP cookie persistence

 

persist cookie

 

pool Exch_2010_single_as_pool

 

log local0. "host [HTTP::host] url [HTTP::uri] Persistencia"

 

HTTP::class disable

 

}

 

 

"/rpc/rpcproxy.dll" {

 

Grab all requests for Outlook Anywhere; the following

 

checks assign correct persistence methods.

 

switch -glob [HTTP::header "User-Agent"] {

 

"MSRPC" {

 

This User-Agent section matches most versions of

 

Outlook and Windows using Outlook Anywhere.

 

The OutlookSession cookie is new to Outlook 2010.

 

if { [HTTP::cookie exists "OutlookSession"] } {

 

persist uie [HTTP::header "OutlookSession"] 3600

 

}

 

else {

 

persist uie [HTTP::header "Authorization"] 3600

 

}

 

}

 

 

"*Microsoft Office*" {

 

This section matches some versions of

 

Outlook 2007 on Windows XP

 

persist uie [HTTP::header "Authorization"] 3600

 

}

 

 

default {

 

This section catches all other requests for

 

Outlook Anywhere, and sets a persistence method

 

that does not require the client to support

 

HTTP cookies

 

persist source_addr

 

}

 

}

 

 

Finally, this assigns the Outlook Anywhere pool and turns

 

off full HTTP parsing and compression. If the preceding

 

clients should be sent to separate pools, the pool statement

 

should be removed here, and a separate pool statement

 

placed in each of the preceding logic branches.

 

Other modules (APM, ASM, etc.) should be disabled here

 

as well, if active for other traffic though this virtual

 

server.

 

pool Exch_2010_single_oa_pool

 

HTTP::disable

 

COMPRESS::disable

 

CACHE::class disable

 

log local0. "host [HTTP::host] url [HTTP::uri] Anyware"

 

}

 

 

"/xml/autodiscover.aspx" {

 

Requests for Autodiscovery information. The selected pool

 

might be unique, or might be the same as e.g. your pool

 

for OWA or ActiveSync. In this example, we use the same

 

pool that receives ActiveSync traffic.

 

persist cookie

 

pool Exch_2010_single_as_pool

 

log local0. "host [HTTP::host] url [HTTP::uri] AuteSync"

 

HTTP::class disable

 

 

}

 

default {

 

This final section takes all traffic that has not

 

otherwise been accounted for and sends it to the

 

pool for Outlook Web App

 

persist cookie

 

pool Exch_2010_single_owa_pool

 

log local0. "host [HTTP::host] url [HTTP::uri] Owa"

 

 

If using the Web Accelerator module, uncomment the

 

following line and change the name to that of

 

your WA class.

 

HTTP::class select Exch_2010_class

 

log local0. "host [HTTP::host] url [HTTP::uri] WebAcelerator"

 

}

 

}

 

}

 

 

 

 

 

 

Checking logs, found the next error

 

 

Jun 10 10:26:51 local/tmm err tmm[5201]: 01220001:3: TCL error: Exch_2010_single_Persist_IRule_irule - Prerequisite operation not in progress (line 1) invoked from within "HTTP::host" ("/rpc/rpcproxy.dll" arm line 51) invoked from within "switch -glob [HTTP::path] { "/Microsoft-Server-ActiveSync*" { Direct all ActiveSync clients to a common pool; use ..."

 

 

 

 

 

Any idea...?

 

 

 

 

  • Did you by any chance try to create a new iRule by cutting and pasting from the deployment guide and see if the syntax error persists?

     

     

  • Do you have a default pool on the virtual server? If not, try adding one to see if the error goes away.

     

     

     

    http://devcentral.f5.com/wiki/default.aspx/iRules/persist

     

     

    When using the session or persist commands, one common error that occurs is "Prerequisite operation not in progress". The most common cause for this error is that there is no pool currently selected for the connection. Persistence and session entries by default are limited to a single pool. For most virtual servers, a default pool is specified in bigip.conf, and this pool will be used when persistence or session queries are made. Selecting a default pool to use is usually the best way to eliminate this error. If you cannot specify a default pool (for example, with a forwarding virtual), then you can specify that the operation should be across all pools using the any pool option described above.

     

     

     

    Aaron
  • Also, make sure to add a OneConnect profile to the virtual server if you haven't already. If you're using SNAT you can add the default OneConnect profile with a /0 source mask. If not create a custom OneConnect profile with a /32 source mask.

     

     

    Aaron
  • Aron, thank you very much for you help... I checking configuration for virtual server and look what profile use for the virtual server is, One Connect... The configuration for me virtual server is

     

     

    virtual Exch_2010_single_https_virtual_server {

     

    snat automap

     

    destination 10.26.1.30:https

     

    ip protocol tcp

     

    rules {

     

    Exch_2010_single_append_irule

     

    Exch_2010_single_Persist_IRule_irule

     

    irule_pop-up_excha_2010

     

    }

     

    persist Exch_2010_single_persist_profile

     

    profiles {

     

    Exch_2010_single_clientssl_profile {

     

    clientside

     

    }

     

    Exch_2010_single_lan-optimized_tcp_profile {

     

    serverside

     

    }

     

    Exch_2010_single_ntlm_profile {}

     

    Exch_2010_single_one_connect_profile {}

     

    Exch_2010_single_wan-optimized_tcp_profile {

     

    clientside

     

    }

     

    microsoft_exchange_2010_https_http-wan-optimized-compression_shared_http {}

     

    }

     

    }

     

     

     

    Was taken configuration file from bigip.conf... I can change some parameter in the virtual server...? The problem persist
  • Can you set the virtual server to use the Exch_2010_single_owa_pool pool under the virtual server resources tab? The iRule can select other pools based on the logic in the rule. But having a default pool on the virtual server should avoid the runtime error you're seeing.

     

     

    Aaron
  • Two more questions: did you modify the configuration after running through the template at all, and what are the symptoms other than the message logged? Is traffic flowing through the box, or is the message indicative of the connections being interrupted? What client type is accessing Exchange when the message is logged?