Forum Discussion

Roman_Romalis's avatar
Roman_Romalis
Icon for Nimbostratus rankNimbostratus
May 29, 2014

GTM persistence with load balancing

We have an enclosed validation environment which forces clients to use the same local DNS. We're running round robin on the GTM, and after turning on persistence all the clients are being sent to only one of the data centers. Does anyone have any recommendations as to how to maintain persistence in order to accomodate a stateful application, and at the same time keep the load distributed evenly between data centers. Please remember this is not public facing, so the clients are not sourcing from the Internet.

 

7 Replies

  • It could be a number of things, so first some questions.

     

    Do the clients query the GTM directly as their DNS server, or are they using some intermediate DNS server? If they use an intermediate server, this DNS server is receiving a response from the GTM and caching it, and giving the same answer to all of the clients using it.

     

    What is the Persist CIDR set to in the GTM Pool? The setting here will determine the size of the persist record. For instance 32 will keep track of persistence for every unique address, but 24 would give the same answer to systeming in the same /24 network(assuming ipv4)

     

    Do the clients all have unique IP addresses, or is something NAT'ing them on their way? Obviously if they all share the same source IP, then they all look the same to the GTM.

     

  • More than likely, all clients will be configured to query their local DNS server, which will query the GTM on their behalf. So GTM will see all queries sourcing from the same IP address (or limited set of IP addresses based on the number of LDNS servers in the client's network). In a situation like this, you'd need some local load balancing mechanism (with cookie persistence perhaps) to be able to properly distribute load. Don't think this is going to be accomplished at the DNS level.

     

  • The clients are using the same local DNS server, so that is probably why the clients are receiving the same answer. We also have an Internet setup, which of course will have client's sourcing from multiple ldns's. The persist CIDR is set to 32 and the clients all have unique IP addresses.

     

  • Answer to Cory - We are using cookie persistence at the LTM level for this application. We actually resolved the application errors after turning on the GTM persistence with a 1800sec. timeout, however all the requests are going to one data center. We want to achieve an even distribution between the two data centers and still have persistence turned to accomodate the application requirement. By the way it is a WSRP based application.

     

  • It sounds like you aren't going to be able to have the persistence at the DNS level and balance connections equally across your data centers. The GTM won't be able to distinguish between requests of clients if they all appear to be coming from the same source (same LDNS) from GTM's perspective.

     

  • Additionally, I would think without persistence and with round robin your clients would continually flipflop between datacenters all together when the LDNS cache times out, it queries the GTM and potentially receives a different answer than the last one, sending all clients to the new IP until that cache times out again.

     

    • Ram_REI_279403's avatar
      Ram_REI_279403
      Icon for Nimbostratus rankNimbostratus

      We also have similar situation with GTM routing traffic to two LTM (2 Datacenters ). Both LTM & GTM is having round robin algorithm and LTM is enabled with cookie insert persistence. Current problem since GTM is not maintaining persistence and routing the traffic everytime to different server with in same session client application is not working and prompting login on every page.

       

      Client application is IBM Call center application for order processing.

       

      please let me know is there a way we can maintain GTM persistence and maintain sessions and send the requests to same server for an established session and do load balancing between two data center.