Forum Discussion

Roland00's avatar
Roland00
Icon for Altocumulus rankAltocumulus
21 days ago
Solved

DNS topology not distributing as expected

We have many pools that use topology with servers in two different datacenters. Originally, we configured regions that didn't really reflect the location. The app teams told us how they wanted the LDNS servers mapped to the pool members and we a topology rule for each pool member.

As time went on, I decided to model our regions and records so new topology based apps would be easier to manage. I created two new regions that reflected the DNS servers' locations and then topology rules that mapped each region to their respective datacenter. The idea is that we would no longer need to create records for each app.

I didn't want to introduce any changes to how the existing topology apps were distributing traffic, so my assumption was that a lower order and lower score would prevent any conflicts. 

Based on the snippet below, a DNS request from 10.2.2.1 for legacy.domain.com would match rule 1 and rule 4. Rule 1 has 10.1.1.100 with a score of 100 and rule 4 has 10.2.2.100 with a score of 10. I expected that rule 1 would 'win' since it has a higher score and every request from that server would point to 10.1.1.100. But it appears to be doing some kind of weighted ratio instead. 

I was under the impression that GTM would select the server with the highest score all the time, unless it was unavailable. I looked through the topology docs and found the examples very confusing and didn't see anything that matches my scenario. Any feedback or explanation would be apprciated.

gtm server DC1_SERVER {
    addresses {
        10.1.1.100 {
            device-name DC1_SERVER_vs 
        }
    }
    datacenter DC1
gtm server DC2_SERVER {
    addresses {
        10.2.2.100 {
            device-name DC2_SERVER_vs 
        }
    }
    datacenter DC2
gtm pool a legacy.domain.com_pool {
    alternate-mode global-availability
    load-balancing-mode topology
    members {
        DC1_SERVER_vs {
            member-order 0
        }
        DC2_SERVER_vs {
            member-order 1
        }
    }
    monitor https
}
gtm region REGION1_LEGACY {
    region-members {
        subnet 10.1.1.1/32 { }
        subnet 10.2.2.1/32 { }
    }
}
gtm region REGION2_LEGACY {
    region-members {
        subnet 10.1.1.2/32 { }
        subnet 10.2.2.2/32 { }
    }
}
gtm region DC1_DNS_NEW {
    region-members {
        subnet 10.1.1.1/32 { }
        subnet 10.1.1.2/32 { }
    }
}
gtm region DC2_DNS_NEW {
    region-members {
        subnet 10.2.2.1/32 { }
        subnet 10.2.2.2/32 { }
    }
}
gtm topology ldns: region /Common/REGION1_LEGACY server: subnet 10.1.1.100/32 {
    order 1
    score 100
}
gtm topology ldns: region /Common/REGION2_LEGACY server: subnet 10.2.2.100/32 {
    order 2
    score 100
}
gtm topology ldns: region /Common/DC1_DNS_NEW server: datacenter /Common/DC1 {
    order 3
    score 10
}
gtm topology ldns: region /Common/DC2_DNS_NEW server: datacenter /Common/DC2 {
    order 4
    score 10
}
  • I did find a solution. The pool had dynamic ratio enabled. We enabled this in the past when the pool was configured to use VS Capacity and it was left enabled when we changed the pool to Topology. I disabled dynamic ratio and confirmed that only the highest matching topology record is selected.

3 Replies

  • Hello Roland00​ 

    I noticed there weren't any responses and wanted to know if you had found a solution that you could update on your post? If not, I would suggest if you have support on your device to create a support case on MyF5 for our support team to assist you. 

    Thanks for being a part of our community! 

    -Melissa 

  • I did find a solution. The pool had dynamic ratio enabled. We enabled this in the past when the pool was configured to use VS Capacity and it was left enabled when we changed the pool to Topology. I disabled dynamic ratio and confirmed that only the highest matching topology record is selected.

    • Melissa_C's avatar
      Melissa_C
      Icon for Moderator rankModerator

      Excellent to hear! I am going to Mark as Solution. Any future post that you have with a solution we do suggest marking solved for other members who may run into the issue at a later time. Thanks for the update. 

      -Melissa