Forum Discussion

DavidWang_30786's avatar
DavidWang_30786
Icon for Nimbostratus rankNimbostratus
Jan 21, 2019

GTM topology load balancing: order of operation

Hi All,

 

I am testing the GTM topology load balancing and encounter the following issue. It looks weight does not have any impact to the load balancing decision when one wideIP with multiple pools.

 

BIG IP versions 13, 11.5.x and 11.6.x

 

3 regions: RA, RB and RC one WideIP: test.com with 3 WideIP Pools RA, RB and RC. WideIP LB is Topology. Pool LB is Topology

 

Topology map: LDNS RA -> RA Weight 100 LDNS RA -> RB Weight 50 ANY (0.0.0.0/0) -> RC weight 1

 

When the DNS query comes from RA, GTM ignores the weight and always return both RA and RB randomly.

 

However if we use one pool with members from all three region, GTM honours the weight and return the IP with the highest weight.

 

Is it a bug? did anyone experience this issue before?

 

Thanks.

 

David

 

1 Reply

  • Hey David

     

    The GTM uses the weight when the source is the same. Please check the following statement:

     

    If the type of LDNS request source statement is the same in multiple topology records and the type of destination statement is the same in those records, the system then uses the value of the weight from highest to lowest to sort the records.

     

    The example shows a list of topology records sorted automatically using Longest Match. Note that the fourth and fifth records have the same LDNS subnet and the destinations are both of type State. Therefore, the weight determines the position in the list; thus, the record with the highest weight is first.

     

    1. ldns: subnet 192.168.69.133/32 destination: subnet 10.15.1.1/32 weight: 500
    2. ldns: subnet 192.168.69.133/32 destination: datacenter /Common/NorthAmerica weight: 400
    3. ldns: subnet 192.168.69.0/24 destination: pool /Common/NorthAmerica weight 300
    4. ldns: subnet 192.168.0.0/16 destination: state NY weight 200
    5. ldns: subnet 192.168.0.0/16 destination: state WA weight 100

    In your case you have the following setup:

     

    1. Source: Region RA - Destination: Pool RA - Weight 100
    2. Source: Region RA - Destination: Pool RB - Weight 50
    3. Source: Any (0.0.0.0/0) - Destination: Pool RC - Weight 1

    In your case with Region RA, both source statements are the same, and the destination type is also the same, it will use the weight in order to determine the destination. So in this case you should see only results from Pool RA when you originate from Region RA.

     

    It's all detailed in the following article:

     

    Using Topology Load Balancing to Distribute DNS Requests to Specific Resources

     

    Have you tried to enable logging and see how the GTM load balances the traffic?

     

    K14615: Configuring the BIG-IP DNS system to log wide IP request information

     

    It might give you the answer as to why it is doing what it does.