Forum Discussion

Wasfi_182818's avatar
Wasfi_182818
Icon for Nimbostratus rankNimbostratus
Aug 17, 2016

Implementing session persistence in Active/Active GSLB even when the LDNS changes during the session. How to?

Hi;

 

Let's say I am using BIG-IP DNS at two data centres to achieve active/active GSLB. For as long as the user's LDNS does not change, there will be data centre persistence based on the IP address of the LDNS.

 

Now, if the LDNS changes during a live session by the ISP for some reason, then the next http request can go to the other data centre. The question here is how can I maintain session persistence in this case.

 

3 Replies

  • A Gentleman by the name of Odaah has indicated to me that the name of the pool on both LTM devices in the two data centres can be made the same. This way session persistence can be achieved.

     

    Let's say I have two load balanced web servers at each data centre, does that mean that I need to create a pool with the same name on both LTMs with 4 pool members in it? In this case how do I prioritise load balancing between the two members in Data Centre1 over the other two pool members which are the members in Data Centre2.

     

    Kindly Wasfi

     

  • What kind of load balancing method are you using in the WIP/Pool ? If you are using some kind of topology/geo-location based load balancing, even with LDNS change, the DNS request will probably be balanced to the same Virtual Server.

     

    If you combine the above with cookie based persistence at the LTM level and same IP addressing scheme at the server level, you can make sure that the request is being sent to similar server.

     

    You can also set up the server to insert a cookie or header information that can provide information on the datacenter location or VS and using this and an iRule, you can send a redirect, if the request is sent to the VS in other DC.

     

  • SOL6917 - this will provide information on cookie encoding. The F5 cookie consists of the pool name, pool member's IP address and pool member's port information. If you have these 3 same in both DC, F5 will send it to the server A in DC2, if it was previously sent to server A in DC1. However, this is making an assumption that server A in DC1 and DC2 provide the same application response.

     

    You can use "Global Priority" in order to select DC1 over DC2. DC2 will come into play when DC1 has no active resources.

     

    I think if you can explain your requirements, a better solution can be presented.