Manual Chapter : Using Topology Load Balancing to Distribute DNS Requests to Specific Resources

Applies To:

Show Versions Show Versions

BIG-IP DNS

  • 17.1.2, 17.1.1, 17.1.0, 17.0.0, 16.1.5, 16.1.4, 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.10, 15.1.9, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
Manual Chapter

Using Topology Load Balancing to Distribute DNS Requests to Specific Resources

How do I configure BIG-IP DNS to load balance DNS requests to specific resources?

You can configure BIG-IP DNS to load balance DNS requests to a resource based on the physical proximity of the resource to the client making the request. You can also configure BIG-IP DNS to deliver region-specific content, such as news and weather, to a client making a request from a specific location.
You can accomplish this by configuring BIG-IP DNS to perform Topology load balancing.

About Topology load balancing

Topology load balancing distributes DNS name resolution requests based on the proximity of the client to the data center housing the resource that responds to the request. When Topology load balancing is enabled, the BIG-IP system uses topology records to make load balancing decisions.

Understanding topology records

A
topology record
is a set of characteristics that maps the origin of a DNS name resolution request to a destination. Each topology record contains the following elements:
  • A
    request source statement
    that specifies the origin LDNS of a DNS request.
  • A
    destination statement
    that specifies the pool or pool member to which the weight of the topology record will be assigned.
  • A weight that the BIG-IP system assigns to a pool or a pool member during the load balancing process.
    In
    tmsh
    , the weight parameter is called
    score
    .

Understanding user-defined regions

A
region
is a customized collection of topologies that defines a specific geographical location that has meaning for your network. For example, you can create two custom regions named Region_east and Region_west. Region_east includes the states on the east coast of the United States. Region_west includes the states on the west coast of the United States Then, you can use those custom regions as the Request Source or Destination of a topology record you create.
This table describes how the use of topology regions improves the load-balancing performance of the BIG-IP system.
Faster load balancing configuration
Slower load balancing configuration
2 data centers
2 data centers
1000 pool members in each data center
1000 pool members in each data center
2 regions with 5000 CIDR entries each
2 topology records:
10,000 topology records:
1 entry routes all requests from Region_east to data center1
5000 CIDR topology records route requests to data center1
1 entry routes all requests from Region_west to data center2
5000 CIDR topology records route requests to data center2

Creating a region for Topology load balancing

Create regions to customize the Topology load balancing capabilities of the BIG-IP system. For example, you can create two regions to represent the data centers in your network: dc1_pools and dc2_pools. Alternatively, you can create a region to which you can add IP subnets as you expand your network. Then, when you create a topology record, you can use the custom regions as the Request Source or Destination of the record.
  1. On the Main tab, click
    DNS
    GSLB
    Topology
    Regions
    .
  2. Click
    Create
    .
    The new record screen opens.
  3. In the
    Name
    field, type a unique identifier for the region.
  4. To add members to the region, do the following for each member you want to add to the region:
    1. From the
      Member Type
      list, select a type of identifier.
    2. Select an operator, either
      is
      or
      is not
      .
    3. From the
      Continent
      list, select the continent that contains the locations in the region you are creating.
    4. Click
      Add
      .
  5. Click
    Create
    .
You can now create a topology record using the custom region you created.

Understanding how the BIG-IP system prioritizes topology records

When Topology load balancing is configured, the order of the topology records is vital and affects how the BIG-IP system scores the pools or pool members to which it load balances DNS name resolution requests. By default, the BIG-IP system prioritizes topology records using Longest Match sorting. As a result, topology records are automatically sorted based on a specific criteria each time the BIG-IP system configuration loads. Alternatively, you can disable Longest Match sorting and customize the order of the topology records in the list.

Understanding Longest Match topology record sorting

When Longest Match is enabled, the BIG-IP system sorts the topology records by the LDNS request source statement, the destination statement, and the weight of the record.
The system first sorts the topology records by the type of LDNS request source statement using this order from highest to lowest:
  1. IP subnet in CIDR format (the system places the most specific IP subnet at the top of the list; for example, 10.15.1.1/32, 10.15.1.0/24, 10.15.0.0/16, 10.0.0.0/8)
  2. Region
  3. ISP
  4. State
  5. Country
  6. Continent
  7. LDNS Request Source negation (record that excludes an LDNS)
  8. Wildcard record (the system sorts the wildcard record to the bottom of the list, because this record is the least specific)
If the type of LDNS request source statement is the same in multiple topology records, the BIG-IP system then sorts these records by the type of destination statement using this order from highest to lowest:
  1. IP subnet in CIDR format (the system places the most specific IP subnet at the top of the list; for example, 10.15.1.1/32, 10.15.1.0/24, 10.15.0.0/16, 10.0.0.0/8)
  2. Data center
  3. Pool
  4. Region (customized collection of criteria)
  5. ISP
  6. State
  7. Country
  8. Continent
  9. Destination negation (record that excludes a destination)
  10. Wildcard record (the system sorts the wildcard to the bottom of the list, because this record is the least specific)
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

Customizing the sort order of topology records

Determine the order in which you want the topology records you create to be sorted.
Change the sort order of the topology records when you do not want the system to use the Longest Match sort order.
  1. On the Main tab, click
    DNS
    GSLB
    Topology
    Records
    .
  2. Click the
    Change Order
    button.
  3. Clear the
    Longest Match
    check box.
  4. To change the order of the records in the Topology Record List, do the following:
    1. From the list, select a topology record.
    2. Click the
      Up
      or
      Down
      button to move the record to the preferred position in the list.
  5. Click
    Update
    .
The BIG-IP system uses the customized Topology Record List for topology load balancing.
The BIG-IP system saves only one set of ordered topology records; if you re-enable Longest Match, your custom ordering will no longer be available.

Configuring Longest Match

Ensure that topology records exist in the configuration.
Configure the BIG-IP system to order the topology records using Longest Match.
  1. On the Main tab, click
    DNS
    GSLB
    Topology
    Records
    .
  2. Click the
    Change Order
    button.
  3. Select the
    Longest Match
    check box.
  4. Click
    Update
    .
The BIG-IP system uses Longest Match sorting to order the topology records in a list.

Creating a topology record

Before you create topology records, it is essential that you understand how the system sorts the topology record list. Additionally, you must understand how the system uses the ordered list of records to assign scores to the pools or pool members, to which the BIG-IP system load balances DNS requests.
Create topology records that instruct the BIG-IP system where to route DNS name resolution requests when Topology load balancing is enabled.
The BIG-IP system is more efficient when using regions for Topology load balancing.
  1. On the Main tab, click
    DNS
    GSLB
    Topology
    .
  2. Click
    Create
    .
    The new record screen opens.
  3. To create an LDNS request source statement, use the
    Request Source
    settings:
    1. Select an origin type from the first list.
    2. Select an operator, either
      is
      or
      is not
      .
    3. Define the criteria for the request source statement based on the request source type you selected.
  4. To create a destination (server object) statement, use the
    Destination
    settings:
    1. Select a destination type from the first list.
    2. Select an operator, either
      is
      or
      is not
      .
    3. Define the criteria for the destination statement based on the destination type you selected.
  5. In the
    Weight
    field, specify the priority of this record.
  6. Click
    Create
    .

Deleting a topology record

Delete existing topology records as your network changes. For example, when you add a new data center to your network, the topology records that the BIG-IP system uses to distribute DNS name resolution requests can become obsolete, requiring deletion.
You cannot modify topology records; you can delete records and create new ones that meet your needs.
  1. On the Main tab, click
    DNS
    GSLB
    Topology
    .
  2. Select the topology record that you want to remove from the topology records list by selecting the corresponding
    Select
    check box.
  3. Click
    Delete
    .
    A confirmation screen appears.
  4. Click
    Delete
    .

About Topology load balancing for a wide IP

When you use the topology load balancing method at a wide IP level with topology records that have a Data Center destination, the topology records have no effect. (This is because load balancing at a wide IP level selects between GTM pools, and GTM pools do not have a data center associated with them.) Topology records that have a Data Center destination have an effect only when using the topology load balancing method at the pool level.

Example configuration: Topology load balancing for a wide IP

This example illustrates how DNS name resolution requests are load balanced when a wide IP is configured for Topology load balancing. An administrator configures the wide IP
www.siterequest.net
for Topology load balancing. The wide IP contains three pools: Pool1 and Pool3 are located in the North America data center; Pool2 is located in the South America data center. Next, the administrator creates topology records, as shown in this figure, and ensures that Longest Match is enabled on the BIG-IP system.
Topology records for a wide IP configured for Topology load balancing
Topology records for a wide IP configured for Topology load balancing
The first topology record directs all DNS name resolution requests from an LDNS in the IP subnet
11.1.0.0/16
to Pool1. The second topology record directs all DNS name resolution requests from an LDNS in the IP subnet
10.1.0.0/16
to Pool2. The third topology record is the least specific. It directs DNS name resolution requests from an LDNS in any IP subnet to Pool3. However, it is important to note that the weight of the third topology record is lower than the weights of the other topology records.
BIG-IP system load balancing DNS requests using a wide IP configured for Topology load balancing
Topology load balancing at the wide IP-level
  1. A client in New York makes a DNS request.
  2. LDNS 11.1.0.1 queries the BIG-IP system in the North America data center.
  3. The BIG-IP system directs the LDNS to Pool1. To determine this answer, for each pool, one at a time, the BIG-IP system iterates through the list of two topology records to find a match. Pool1 matches the first topology record in the list, because both the LDNS request source (11.1.0.1) and the Destination (Pool1) of the DNS request match the first topology record; therefore, the BIG-IP system assigns a score of 100 to Pool1. For Pool2, there is no matching topology record that contains both the LDNS request source (11.1.0.1) and the Destination (Pool2); therefore, the BIG-IP system assigns a score of zero to Pool2. Pool3, matches the third topology record in the list, because both the LDNS request source (11.1.0.1) and the Destination (Pool3) of the DNS request match the third topology record; therefore, the BIG-IP system assigns a score of 10 to Pool3. The BIG-IP system directs the LDNS to send the request to the pool with the highest score.
  4. The LDNS sends the DNS request to Pool1 in the North America data center. How the system distributes the DNS requests to the members of Pool1 is not depicted in this illustration, but is based on the load balancing method configured for Pool1.
  5. A client in Lima makes a DNS request.
  6. LDNS 10.1.0.1 queries the BIG-IP system in the North America data center.
  7. The BIG-IP system directs the LDNS to Pool2. To determine this answer, for each pool, one at a time, the BIG-IP system iterates through the list of two topology records to find a match. For Pool1, there is not a matching topology record that contains both the LDNS request source (10.1.0.1) and the Destination (Pool1); therefore, the BIG-IP system assigns a score of zero to Pool1. Pool2 matches the second topology record in the list, because both the LDNS request source (10.1.0.1) and the Destination (Pool2) of the DNS request match the second topology record; therefore, the BIG-IP system assigns a score of 100 to Pool2. Pool3, matches the third topology record in the list, because both the LDNS request source (10.1.0.1) and the Destination (Pool3) of the DNS request match the third topology record; therefore, the BIG-IP system assigns a score of 10 to Pool3. The BIG-IP system directs the LDNS to send the request to the pool with the highest score.
  8. The LDNS sends the DNS request to Pool2 in the South America data center. How the system distributes the DNS requests to the members of Pool2 is not shown in this illustration, but is based on the load balancing method configured for Pool2.
  9. A client in Chicago makes a DNS request.
  10. LDNS 12.1.0.1 queries the BIG-IP system in the North America data center.
  11. The BIG-IP system directs the LDNS to Pool3. To determine this answer, for each pool, one at a time, the BIG-IP system iterates through the list of two topology records to find a match. For Pool1, there is not a matching topology record that contains both the LDNS request source (12.1.0.1) and the Destination (Pool1); therefore, the BIG-IP system assigns a score of zero to Pool1. For Pool2, there is not a matching topology record that contains both the LDNS request source (12.1.0.1) and the Destination (Pool1); therefore, the BIG-IP system assigns a score of zero to Pool2. Pool3, matches the third topology record in the list, because both the LDNS request source (12.1.0.1) and the Destination (Pool3) of the DNS request match the third topology record; therefore, the BIG-IP system assigns a score of 10 to Pool3. The BIG-IP system directs the LDNS to send the request to the pool with the highest score.
  12. The LDNS sends the DNS request to Pool3 in the North America data center. How the system distributes the DNS requests to the members of Pool3 is not depicted in this illustration, but is based on the load balancing method configured for Pool3.

Configuring a wide IP for Topology load balancing

Before you configure a wide IP for Topology load balancing, ensure the following:
  • At least two pools are associated with the wide IP that you are configuring for Topology load balancing.
  • Topology records that define how you want the BIG-IP system to load balance DNS name resolution requests are configured.
You can use Topology load balancing to distribute DNS name resolution requests among the pools in a wide IP based on the geographic location of both the client making the request and the pool that handles the response.
  1. On the Main tab, click
    DNS
    GSLB
    Wide IPs
    .
    The Wide IP List screen opens.
  2. Click the name of the wide IP you want to modify.
  3. On the menu bar, click
    Pools
    .
  4. From the
    Load Balancing Method
    list, select
    Topology
    .
  5. Click
    Update
    .
Repeat this process for each wide IP that you want to configure for Topology load balancing.

About Topology load balancing for a pool

When you configure a pool for Topology load balancing, you can route DNS requests to the data center that is closest to the client making the request. With this configuration, the BIG-IP system load balances DNS name resolution requests to the members of the pool.

Example configuration: Topology load balancing for a pool

This example illustrates how DNS name resolution requests are load balanced when a pool is configured for Topology load balancing. An administrator configures pools in two different data centers: the North America data center (North America DC) and the South America data center (South America DC) for Topology load balancing. A server that contains the pool members 10.10.10.1 - 10.10.10.3 resides in the North America DC. The server that contains the pool members 11.10.10.1 - 11.10.10.3 resides in the South America DC. Next, the administrator creates topology records, as shown in the following figure, to load balance DNS requests to members of the pools, and ensures that Longest Match is enabled on the BIG-IP system.
Topology records for a pool configured for Topology load balancing
Topology record that the Global Traffic Manager uses to direct these connection      requests
The first topology record directs all DNS name resolution requests from an LDNS in Bolivia to the South America DC. The second topology record directs all DNS name resolution requests from an LDNS in Peru to the South America DC. The third topology record directs all DNS name resolution requests from an LDNS in the United States to the North America DC. The fourth topology record directs all DNS name resolution requests from an LDNS in Canada to the North America DC.
Pool configured for Topology load balancing
Topology load balancing at the pool level
  1. A client in the U.S. makes a DNS request.
  2. An LDNS in the U.S. queries the BIG-IP system in the North America DC.
  3. The BIG-IP system directs the LDNS to a member of Pool1 in the North America DC. To determine this answer, for each pool member, one at a time, the BIG-IP system iterates through the list of topology records to find a match. Pool members 10.10.10.1 - 10.10.10.3 each match the third topology record in the list, because both the LDNS request source (U.S.) and the Destination (North America DC) of the DNS request match the third topology record; therefore, the BIG-IP system assigns a score of 20 to each of those pool members. For each of the pool members 11.10.10.1 - 11.10.10.3, there is no matching topology record that contains both the LDNS request source (U.S.) and the Destination (South America DC); therefore, the BIG-IP system assigns a score of zero to each of those pool members. The BIG-IP system directs the LDNS to send the request to the pool member with the highest score.
  4. The LDNS sends the DNS request to a pool member in the North America DC. Because all of the pool members in the North America DC have the same score, the system distributes the DNS requests to the pool members in a round robin fashion.
  5. A client in Bolivia makes a DNS request.
  6. An LDNS in Bolivia queries the BIG-IP system in the North America DC.
  7. The BIG-IP system directs the LDNS to a pool member in the South America DC. To determine this answer, for each pool member, one at a time, the BIG-IP system iterates through the list of topology records to find a match. For each of the pool members 10.10.10.1 - 10.10.10.3 there is no matching topology record that contains both the LDNS request source (Bolivia) and the Destination (North America DC); therefore, the BIG-IP system assigns a score of zero to each of those pool members. Pool members 11.10.10.1 - 11.10.10.3 each match the first topology record in the list, because both the LDNS request source (Bolivia) and the Destination (South America DC) of the DNS request match the first topology record; therefore, the BIG-IP system assigns a score of 10 to each of those pool members. The BIG-IP system directs the LDNS to send the request to the pool member with the highest score.
  8. The LDNS sends the DNS request to a pool member in the South America DC. Because all of the pool members in the South America DC have the same score, the system distributes the DNS requests to the pool members in a round robin fashion.

Configuring a pool for Topology load balancing

Before you configure a pool for Topology load balancing, ensure the following:
  • The pool you are configuring for Topology load balancing contains at least two pool members.
  • Topology records that define how you want the BIG-IP system to load balance DNS name resolution requests are configured.
You can use Topology load balancing to distribute DNS name resolution requests among the members of a pool based on the geographic location of both the client making the request and the member of the pool that handles the response.
  1. On the Main tab, click
    DNS
    GSLB
    Pools
    .
    The Pools list screen opens.
  2. Click the name of the pool you want to modify.
  3. On the menu bar, click
    Members
    .
  4. In the Load Balancing Method area, from the
    Preferred
    list, select
    Topology
    .
  5. In the Load Balancing Method area, from the
    Alternate
    list, select
    Round Robin
    .
  6. In the Load Balancing Method area, from the
    Fallback
    list, select
    None
    .
  7. Click
    Update
    .
Repeat this process for each pool that you want to configure for Topology load balancing.

About Topology load balancing for both wide IPs and pools

You can configure a wide IP for Topology load balancing. You can also configure each pool in the wide IP for Topology load balancing. When you configure both a wide IP and the pools in the wide IP for Topology load balancing, the BIG-IP system uses topology records to load balance DNS name resolution requests first to a pool in the wide IP, and then, to a member of the pool.
When configuring both the wide IP and the pools in the wide IP for Topology load balancing, it is important to set the
Fallback
load balancing method for each pool to
None
. If you do not, DNS can send a DNS request to a pool in the wide IP even when no pool members are available. In this case, the load balancing algorithm for the pool would then fall back to BIND (static DNS). When you set the
Fallback
load balancing method for each pool to
None
, if no members of a pool are available, BIG-IP DNS sends the DNS request to another pool in the wide IP.

About Topology load balancing for CNAME wide IPs and pools

For a CNAME query against a CNAME wide IP with a CNAME pool, you can use Topology load balancing at the wide IP level to make a pool selection, given that matching topology entries are configured to specify a CNAME pool on the wide IP. However, when using Topology load balancing at the pool level to make pool member selections, the BIG-IP system relies on a metrics pull-up to get the topology scores needed to pick a pool member because the pool members are non-terminal.
If the pool members are terminal members (for example, on an A or AAAA type pool), then you can use them to match against the topology entries and get scores. But Topology load balancing cannot be used to get scores for non-terminal members without doing a metrics pull-up because there is no way to specify a wide IP or DNS name in a given topology entry. Therefore, for a CNAME query against a CNAME wide IP with a CNAME pool, you can use Topology load balancing to pick a pool at the wide IP level, but it will not be used (even if configured) at the pool level to pick a pool member because the BIG-IP system will not perform a metrics pull-up.

About IP geolocation data

The BIG-IP system uses an IP geolocation database to determine the origin of DNS requests. The database included with the BIG-IP system provides geolocation data for IPv6 addresses at the continent and country levels. It also provides geolocation data for IPv4 addresses at the continent, country, state, ISP, and organization levels. The state-level data is worldwide, and thus includes designations in other countries that correspond to the U.S. state-level in the geolocation hierarchy, such as, provinces in Canada.
If you require geolocation data at the city-level, contact your F5 Networks sales representative to purchase additional database files.

About topology records and IP geolocation data

The BIG-IP system uses an IP geolocation database to determine the IP addresses that match the geographic names that you define in a topology record, such as continent and country.

Downloading and installing updates to the IP geolocation data

You can download a monthly update to the IP geolocation database from F5 Networks. The BIG-IP system uses the IP geolocation database to determine the origin of DNS name resolution requests.
  1. Log in to the F5 Networks customer web site at
    http://downloads.f5.com
    , and click
    Find a Download
    .
  2. In the F5 Product Family column, find
    BIG-IP
    , and then in the Product Line column, click either
    BIG-IP v11.x/Virtual Edition
    .
  3. Select a version from the list preceding the table.
  4. In the Name column, click
    GeolocationUpdates
    .
  5. Click
    I Accept
    to accept the license.
  6. In the Filename column, click the name of the most recent compressed file that you want to download.
  7. In the Ready to Download table, click the download method that you want to use.
  8. In the dialog box, click
    OK
    .
  9. Select the directory in which you want to save the compressed file, and then decompress the file to save the RPM files on the system.
  10. To install and load one of the RPM files, run this command (the path and file name are case-sensitive):
    geoip_update_data -f </path to RPM file and file name >
    .
    The system installs and loads the specified database file.
  11. Repeat step 10 for each of the RPM files that you saved to the system in step 9.
You can access the ISP and organization-level geolocation data for IPv4 addresses only using the iRules
whereis
command.

Reloading default geolocation data using the Configuration utility

Before you reload the default geolocation data, delete the RPM files that are in the
/shared/GeoIP
directory.
To uninstall an update to the IP geolocation database, reload the default geolocation database files using the Configuration utility.
  1. At the BASH prompt, run this command to query the RPM database and determine what geolocation data is installed:
    rpm -qa --dbpath /shared/lib/rpm/
    The system returns a list of RPMs, for example:
    geoip-data-ISP-1.0.0-20110203.61.0 geoip-data-Region2-1.0.0-20110203.61.0 geoip-data-Org-1.0.0-20110203.61.0
  2. To uninstall the RPMs, run this command for each RPM in the list:
    rpm -e --dbpath /shared/lib/rpm/ <name of file>
    For example, to uninstall
    geoip-data-ISP-1.0.0-20110203.61.0
    , run this command:
    rpm -e --dbpath /shared/lib/rpm/ geoip-data-ISP-1.0.0-20110203.61.0
  3. To remove the symlink in the
    /shared/GeoIP
    directory, run this command:
    rm -f /shared/GeoIP/*
  4. Log on to the Configuration utility.
  5. On the Main tab, click
    System
    Configuration
    .
  6. In the Geolocation area, click
    Reload
    in the
    Operations
    setting.
    The system reloads the default geolocation database files that are stored in
    /usr/share/GeoIP
    .

Reloading default geolocation data using tmsh

To uninstall an update to the IP geolocation database, delete the RPM files, and then reload the default geolocation database files using
tmsh
.
  1. At the BASH prompt, to query the RPM database and determine what geolocation data is installed, run this command:
    rpm -qa --dbpath /shared/lib/rpm/
    The system returns a list of RPMs, for example:
    geoip-data-ISP-1.0.0-20110203.61.0 geoip-data-Region2-1.0.0-20110203.61.0 geoip-data-Org-1.0.0-20110203.61.0
  2. To uninstall the RPMs, for each RPM in the list, run this command:
    rpm -e --dbpath /shared/lib/rpm/ <name of file>
    For example, to uninstall
    geoip-data-ISP-1.0.0-20110203.61.0
    , run this command:
    rpm -e --dbpath /shared/lib/rpm/ geoip-data-ISP-1.0.0-20110203.61.0
  3. To remove the symlink in the
    /shared/GeoIP
    directory, run this command:
    rm -f /shared/GeoIP/*
  4. Log on to
    tmsh
    .
  5. Run this command:
    load / sys geoip
    The system reloads the default geolocation database files that are stored in
    /usr/share/GeoIP
    .