Forum Discussion
hc_andy_35682
Feb 01, 2012Nimbostratus
Handling Persistence for HTTPS connections in a two tier security model??
Hi All,
I'm trying to determine the best way to handy persistence for HTTPS connections based on our security mode below.
We have a security model where we have a F5 in the Public Zone and another F5 in the Private Zone.
Client --> Pub_F5 ---reverse proxy / Port 80--> Priv_F5 -> Real_Servers
- Clients will make a HTTPS connection to the VIP on the F5 in the Public Zone which is listening on Port 443.
- The connection is then reverse proxied to a VIP on the F5 in the Private Zone listening on Port 80. So communication between Public and Private Zone is clear text and no longer encrypted.
- The VIP on the F5 in the Private Zone will then load balance the connection to the backend real servers.
Based on this security model, how do we ensure that clients are persisted to the same backend real server in the Private Zone??? What persistence profile should be applied to either F5 in each security zone to make this work???
Thanks you in advance.
Andy
- hooleylistCirrostratusHi Andy,
when HTTP_REQUEST { Persist based on the internal LTM persistence cookie value if {[HTTP::cookie my_persist_cookie] ne ""}{ persist uie [HTTP::cookie my_persist_cookie] 3600 } } when HTTP_RESPONSE { If the internal LTM persistence cookie is set in the response add a persistence record for this LTM if {[HTTP::cookie my_persist_cookie] ne ""}{ persist add uie [HTTP::cookie my_persist_cookie] 3600 } }
- hc_andy_35682NimbostratusThanks for the response Hoolio and you're always as helpful as ever!
- hooleylistCirrostratusI'm assuming the reverse proxy will pass the request and response through fairly transparently and include the LTM internal VS's persistence cookie. If that's true, then you can use that as a unique key to persist the client on the LTM external VS. Here's a bad ascii diagram and description.
Request 1 client(1) ->VS on LTM external(2) ->Reverse Proxy(3) ->VS on LTM internal(4) ->server Response 1 client<- (8)VS on LTM external<- (7)Reverse Proxy<- (6)VS on LTM internal<- (5)server Request 2 client(9) ->VS on LTM external(10) ->Reverse Proxy(11) ->VS on LTM internal(12) ->server
- hooleylistCirrostratusActually I guess I should have clarified first. Do you need persistence on the reverse proxy pool and the application pool? If so, the above suggestion should work.
- hc_andy_35682NimbostratusHi Aaron,
- hooleylistCirrostratusIf you only need persistence at the app server layer you should use cookie insert persistence with OneConnect on the internal LTM VS. You don't *need* OneConnect on the external LTM VS, but it would still help that LTM and the reverse proxies in lowering the connection count. If you're using SNAT on either VS you want to use OneConnect on, you can use the default OneConnect profile with a /0 source mask. Else, if you're not doing source address translation create a custom OneConnect profile with a /32 source mask.
- hc_andy_35682NimbostratusThanks Arron.
- hooleylistCirrostratusNo bother. The external LTM will not use or modify the persistence cookie that the internal LTM sets. Similarly, I expect the reverse proxy/ies will not modify the cookie. So it should "just work".
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects