Global Server Load Balancing (GSLB) – NetScaler 11.1

Last Modified: May 4, 2017 @ 2:21 pm


💡 = Recently Updated

GSLB Planning

GSLB is nothing more than DNS. GSLB is not in the data path. GSLB receives a DNS query, and GSLB sends back an IP address, which is exactly how a DNS server works. However, GSLB can do some things that DNS servers can’t do:

  • Don’t give out an IP address unless it is UP (monitoring)
    • If active IP address is down, give out the passive IP address (active/passive)
  • Give out the IP address that is closest to the user (proximity load balancing)
  • Give out different IPs for internal vs external (DNS View)

GSLB is only useful if you have a single DNS name that could resolve to two or more IP addresses. If there’s only one IP address, then use normal DNS instead.

Citrix Blog Post Global Server Load Balancing: Part 1 explains how DNS queries work and how GSLB fits in.

Citrix has a good DNS and GSLB Primer.

When configuring GSLB, don’t forget to ask “where is the data?”. For XenApp/XenDesktop, DFS multi-master replication of user profiles is not supported, so configure “home” sites for users. More information at Citrix Blog Post XenDesktop, GSLB & DR – Everything you think you know is probably wrong!

GSLB can be enabled both externally and internally. For external GSLB, configure it on the DMZ NetScaler appliances and expose it to the Internet. For internal GSLB, configure it on internal NetScaler appliances. Note: Each NetScaler appliance only has one DNS table, so if you try to use one NetScaler for both public and internal, then be aware that external users can query for internal GSLB-enabled DNS names. As described by Phil Bossman in the comments, you can use a Responder policy to prevent external users from reading internal DNS names.  💡

add policy patset GSLB_INTERNAL
bind policy patset GSLB_INTERNAL -index 1
add responder action DNS_Empty_Response respondwith DNS.NEW_RESPONSE
bind responder global GSLB_DNS_Empty_Response 100 END -type DNS_REQ_DEFAULT

For internal and external GSLB of the same DNS name on the same appliance, you can use DNS Policies and DNS Views to return different IP addresses depending on where users are connecting from. Citrix CTX130163 How to Configure a GSLB Setup for Internal and External Users Using the Same Host Name.

However, GSLB monitoring applies to the entire GSLB Service, so it would take down both internal and external GSLB. If you need different GSLB monitoring for internal and external of the same DNS name, try CNAME:

  • External
    • Configure NetScaler GSLB for
    • On public DNS, delegate to the NetScaler DMZ ADNS services.
  • Internal
    • Configure NetScaler GSLB for or something like that.
    • On internal DNS, create CNAME for to
    • On internal DNS, delegate to NetScaler internal ADNS services.


Some IP Addresses are needed on each NetScaler pair:

  • ADNS IP: An IP that will listen for ADNS queries. For external, create a public IP for the ADNS IP and open UDP 53 so Internet-based DNS servers can access it. This can be an existing SNIP on the appliance.
  • GSLB Site IP / MEP IP: A GSLB Site IP that will be used for NetScaler-to-NetScaler communication, which is called MEP or Metric Exchange Protocol. The IP for ADNS can also be used for MEP / GSLB Site.
    • RPC Source IP: The GSLB Site IP can be anything, and RPC traffic (MEP) can be sourced from the GSLB IP. For older NetScaler builds, RPC traffic is sourced from a SNIP, even if this is different than the GSLB Site IP. In older builds, it’s less confusing if you use a SNIP as the GSLB Site IP.
    • Public IP: For external GSLB, create public IPs that are NAT’d to the GSLB Site IPs. The same public IP used for ADNS can also be used for MEP. MEP should be routed across the Internet so NetScaler can determine if the remote datacenter has Internet connectivity or not.
    • MEP Port: Open port TCP 3009 between the two NetScaler GSLB Site IPs. Make sure only the NetScalers can access this port on the other NetScaler. Do not allow any other device on the Internet to access this port. This port is encrypted.
    • GSLB Sync Ports: To use GSLB Configuration Sync, open ports TCP 22 and TCP 3008 (secure) from the NSIP (management IP) to the remote public IP that is NAT’d to the GSLB Site IP. The GSLB Sync command runs a script in BSD shell and thus NSIP is always the Source IP.
  • DNS Queries: The purpose of GSLB is to resolve a DNS name to one of several potential IP addresses. These IP addresses are usually public IPs that are NAT’d to existing Load Balancing, SSL Offload, Content Switching, or NetScaler Gateway VIPs in each datacenter.
  • IP Summary: In summary, for external GSLB, you will need a minimum of two public IPs in each datacenter:
    • One public IP that is NAT’d to the IP that is used for ADNS and MEP (GSLB Site IP). You only need one IP for ADNS / MEP no matter how many GSLB names are configured. MEP (GSLB Site IP) can be a different IP, if desired.
    • One public IP that is NAT’d to a Load Balancing, SSL Offload, Content Switching, or NetScaler Gateway VIP.
    • If you GSLB-enable multiple DNS names, each DNS name usually resolves to different IPs. This usually means that you will need additional public IPs NAT’d to additional VIPs.


  1. Identify a NetScaler-owned IP that you will use for ADNS. This is typically a SNIP.
  2. Configure a public IP for the ADNS Service IP and configure firewall rules.
  3. On the left, expand Traffic Management > Load Balancing, and click Services.
  4. On the right, click Add.
  5. Name the service ADNS or similar.
  6. In the IP Address field, enter an appliance SNIP.
  7. In the Protocol field, select ADNS. Then click OK.
  8. Scroll down and click Done.
  9. On the left of the console, expand System, expand Network, and then click IPs.
  10. On the right, you’ll see the SNIP is now marked as the ADNS svc IP. If you don’t see this yet, click the Refresh icon.
  11. NetScaler 11.1 build 51 and newer includes DNS Security Options, which are useful if you use this NetScaler to provide DNS services to clients (e.g. DNS Proxy/Load Balancing, GSLB ADNS, etc.).  ?

  12. Repeat on the other appliance in the other datacenter.
  13. Your NetScaler appliances are now DNS servers.

Metric Exchange Protocol

This section details MEP configuration between two GSLB Sites. See Citrix Docs for larger parent-child GSLB Site configurations, including new features in NetScaler 11.1 build 51 and newer.

  1. The local GSLB Site IP can be any IP. Or you can use the same SNIP and same public IP used for ADNS.
  2. Open the firewall rules for Metric Exchange Protocol.
  3. On the left, expand Traffic Management, right-click GSLB, and enable the feature.
  4. Expand GSLB, and click Sites.
  5. On the right, click Add.
  6. Add the local site first. Enter a descriptive name.
  7. In the Site Type drop-down, select LOCAL.
  8. In the Site IP Address field, enter an IP that this appliance will listen for MEP traffic.
  9. For Internet-routed GSLB MEP, in the Public IP Address field, enter the public IP that is NAT’d to the GSLB Site IP. For internal GSLB MEP, there is no need to enter anything in the Public IP field. Click Create.
  10. Go back to System > Network > IPs and verify that the IP is now marked as a GSLB site IP. If you don’t see it yet, click the Refresh button.
  11. If you want to use the GSLB Sync Config feature, then you’ll need to edit the GSLB site IP, and enable Management Access.
  12. Scroll down and enable Management Access. SSH is all you need.
  13. Go to the other appliance and also create the local GSLB site using its GSLB site IP and its public IP that is NAT’d to the GSLB site IP.
  14. In System > Network > IPs on the remote appliance, there should now be a GSLB site IP. This could be a SNIP. If GSLB Sync is desired, enable management access on that IP and ensure SSH is enabled.
  15. Now on each appliance add another GSLB Site, which will be the remote GSLB site.
  16. Enter a descriptive name and select REMOTE as the Site Type.
  17. Enter the other appliance’s actual GSLB Site IP as configured on the appliance. This IP does not need to be reachable.
  18. In the Public IP field, enter the public IP that is NAT’d to the GSLB Site IP on the other appliance. For MEP, TCP 3009 must be open from the local GSLB Site IP to the remote public Site IP. For GSLB sync, TCP 22, and TCP 3008 must be open from the local NSIP to the remote public Site IP. Click Create.
  19. Repeat on the other appliance.
  20. MEP will not function yet since the NetScaler appliances are currently configured to communicate unencrypted on TCP 3011. To fix that, on the left, expand System, expand Network, and click RPC.
  21. On the right, edit the new RPC address (the other site’s GSLB Site IP) and click Edit.
  22. On the bottom, check the box next to Secure.
  23. If your local GSLB Site IP is not a SNIP, then you’ll need to change the RPC Node to use the local GSLB Site IP as the source IP. In the Source IP Address field, enter the local GSLB Site IP. Click OK when done.
  24. Do the same thing on the other appliance.
  25. If you go back to GSLB > Sites, you should see it as active.
  26. If your MEP connection between GSLB Sites flaps, it might be useful to introduce a delay before a remote GSLB Services are marked as Down. In NetScaler 11.1 build 51 and newer, you can do this at Traffic Management > GSLB, on the right, in the left column, click Change GSLB settings.  💡
  27. In the GSLB Service State Delay Time (secs) field, enter a delay before the GSLB Services are marked as down when MEP goes down.

    set gslb parameter -GSLBSvcStateDelayTime 15

GSLB Services

GSLB Services represent the IP addresses that are returned in DNS Responses. DNS Query = DNS name. DNS Response = IP address.

GSLB should be configured identically on both NetScalers. Since you have no control over which NetScaler will receive the DNS query, you must ensure that both NetScalers are giving out the same DNS responses.

Create the same GSLB Services on both NetScalers:

  1. Start on the appliance in the primary data center. This appliance should already have a traffic Virtual Server (NetScaler Gateway, Load Balancing, or Content Switching) for the DNS name that you are trying to GSLB enable.
  2. On the left, expand Traffic Management > GSLB, and click Services.
  3. On the right, click Add.
  4. The service name should be similar to the DNS name that you are trying to GSLB. Include the site name in the service name.
  5. Select the LOCAL Site.
  6. On the bottom part, select Virtual Servers, and then select a Virtual Server that is already defined on this appliance. It should automatically fill in the other fields. If you see a message asking if you wish to create a service object, click Yes.
  7. Scroll up and make sure the Service Type is SSL. It’s annoying that NetScaler doesn’t set this drop-down correctly.
  8. The Public IP field contains the actual IP Address that the GSLB ADNS service will hand out. Make sure this Public IP is user accessible. It doesn’t even need to be a NetScaler owned IP.
  9. Scroll down and click OK.
  10. If the GSLB Service IP is a VIP on the local appliance, then GSLB will simply use the state of the local traffic Virtual Server (Load Balancing, Content Switching, or Gateway). If the GSLB Service IP is a VIP on a remote appliance, then GSLB will use MEP to ask the other appliance for the state of the remote traffic Virtual Server. In both cases, there’s no need to bind a monitor to the GSLB Service.
  11. However, you can also bind monitors directly to the GSLB Service. Here are some reasons for doing so:
    • If the GSLB Service IP is a NetScaler-owned traffic VIP, but the monitors bound the traffic Virtual Server are not the same ones you want to use for GSLB. When you bind monitors to the GSLB Services, the monitors bound to the traffic Virtual Server are ignored.
    • If the GSLB Service IP is in a non-default Traffic Domain, then you will need to attach a monitor since GSLB cannot determine the state of Virtual Servers in non-default Traffic Domains.
    • If the GSLB Service IP is not hosted on a NetScaler, then only GSLB Service monitors can determine if the Service IP is up or not.
  12. If you intend to do GSLB active/active, and if you need site persistence, then you can configure your GSLB Services to use Connection Proxy or HTTP Redirect. See Citrix Blog Post Troubleshooting GSLB Persistence with Fiddler for more details.
  13. Click Done.
  14. On the other datacenter NetScaler, create a GSLB Service.
  15. Select the REMOTE site that is hosting the service.
  16. Since the service is on a different appliance and not this one, you won’t be able to select it using the Virtual Servers option. Instead, select New Server.
  17. For the Server IP, enter the actual VIP configured on the other appliance. This local NetScaler will use GSLB MEP to communicate with the remote NetScaler to find a traffic Virtual Server with this VIP. The remote NetScaler respond if the remote traffic Virtual Server is up or not. The remote Server IP configured here does not need to be directly reachable by this local appliance. If the Server IP is not owned by either NetScaler, then you will need to bind monitors to your GSLB Service.
  18. In the Public IP field, enter the IP address that will be handed out to clients. This is the IP address that users will use to connect to the service. For Public DNS, you enter a Public IP that is usually NAT’d to the traffic VIP. For internal DNS, the Public IP and the Server IP are usually the same.
  19. Scroll up and change the Service Type to match the Virtual Server defined on the other appliance.
  20. Click OK.
  21. Just like the other appliance, you can also configure Site Persistence and GSLB Service Monitors. Click Done when done.
  22. Create more GSLB Services, one for each traffic VIP. GSLB is useless if there’s only one IP address to return. You should have multiple IP addresses (VIPs) through which a web service (e.g. NetScaler Gateway) can be accessed. Each of these VIPs is typically in different datacenters, or on different Internet circuits. The mapping between DNS name and IP addresses is configured in the GSLB vServer, as detailed in the next section.

GSLB Virtual Server

The GSLB Virtual Server is the entity that the DNS name is bound to. GSLB vServer then gives out the IP address of one of the GSLB Services that is bound to it.

Configure the GSLB vServer identically on both appliances:

  1. On the left, expand Traffic Management > GLSB, and click Virtual Servers.
  2. On the right, click Add.
  3. Give the GSLB vServer a descriptive name. For active/active, you can name it the same as your DNS name. For active/passive, you will create two GSLB Virtual Servers, one for each datacenter, so include Active or Passive in the Virtual Server name.
  4. If you intend to bind multiple GSLB Services to this GSLB vServer, then you can optionally check the box for Send all “active” service IPs. By default, GSLB only gives out one IP per DNS query. This checkbox always returns all IPs, but the IPs are ordered based on the GSLB Load Balancing Method and/or GSLB Persistence.
  5. If you configure GSLB to use Static Proximity Load Balancing Method, a new DNS feature called ECS will contain the actual DNS client IP. This dramatically improves the accuracy of determining a user’s location. Without this setting, GSLB can only see the IP address of the user’s configured DNS server instead of the real client IP.

    set gslb vserver <gslb_vserver> -ECS ENABLED -ecsAddrValidation ENABLED
  6. Click OK.
  7. On the left, click where it says No GSLB Virtual Server to GSLBService Binding.
  8. Click the arrow next to Click to select.
  9. Check the box next to an existing GSLB Service and click Select. If your GSLB is active/passive then only bind one service.
  10. If your GSLB is active/active then bind multiple GSLB Services. Also, you’d probably need to configure GSLB persistence (Source IP or cookies).
  11. Click Bind.
  12. Click OK.
  13. On the left, click where it says No GSLB Virtual Server Domain Binding.
  14. Enter the FQDN that GSLB will resolve.
  15. If this GSLB is active/passive, there are two options:
    • Use the Backup IP field to specify the IP address that will be handed out if the primary NetScaler is inaccessible or if the VIP on the primary appliance is marked down for any reason.
    • Or, create a second GSLB Virtual Server that has the passive GSLB service bound to it. Don’t bind a Domain to the second GSLB Virtual Server. Then edit the Active GSLB Virtual Server and use the Backup Virtual Server section to select the second GSLB Virtual Server.
  16. Click Bind.
  17. Click OK.
  18. In the ADNS Service section, click OK.
  19. If this is active/active GSLB, you can edit the Method section to enable Static Proximity. This assumes the Geo Location database has already been installed on the appliance.
  20. Also for active/active, if you don’t want to use Cookie-based persistence, then you can use the Persistence section to configure Source IP persistence.
  21. Click Done when done.
  22. If you are configuring active/passive using the backup GSLB Virtual Server method, create a second GSLB Virtual Server that has the passive GSLB service bound to it. Don’t bind a Domain to the second GSLB Virtual Server.

  23. Then edit the Active GSLB Virtual Server and use the Backup Virtual Server section to select the second GSLB Virtual Server.

  24. On the left, if you expand Traffic Management > DNS, expand Records, and click Address Records, you’ll see a new DNS record for the GSLB domain you just configured. Notice it is marked as GSLB DOMAIN.

  25. Configure identical GSLB Virtual Servers on the other NetScaler appliance. Both NetScalers must be configured identically. You can also synchronize the GSLB configuration with the remote appliance as detailed in the next section.

GSLB Configuration Synchronization

  1. To manually sync the GSLB configuration from one GSLB Site to another, go to Traffic Management > GSLB.
  2. On the right, in the right column, click Synchronize configuration on remote sites.
  3. Use the check boxes on the top, if desired. It’s usually a good idea to Preview the changes before applying them. Then click OK to begin synchronization.

  4. NetScaler 11.1 build 51 and newer has an automatic GSLB Configuration Sync feature, which automatically syncs the GSLB config every 15 seconds. To enable it on the master appliance, go to Traffic Management > GSLB. On the right, in the left column, click Change GSLB settings.  💡
  5. Check the box next to Automatic Config Sync. Only enable this on the one appliance where you are configuring GSLB and want that GSLB config synced to other appliance.
  6. The automatic sync log can be found at /var/netscaler/gslb/periodic_sync.log.

Some notes regarding GSLB Sync:

  • When syncing GSLB Services, it tries to create LB Server objects on the remote appliance. If the GSLB Service IP matches an existing LB Server object, then the GSLB sync will fail. Check the Sync logs for details. You’ll have to delete the conflicting LB Server object before GSLB Sync works correctly.
  • GSLB Sync runs as a script on the BSD shell and thus always uses the NSIP as the source IP.
  • GSLB Sync connects to the remote GSLB Site IP on TCP 3008 (if RPC is Secure) and TCP 22.


  1. In NetScaler 11.1 build 51 and newer, you can test GSLB DNS name resolution from the GUI by going to Traffic Management > GSLB, and on the right, in the left column, click Test GSLB.  💡
  2. Select a GSLB Domain Name.
  3. Select an ADNS Service IP, and click Test.
  4. The test performs a dig against the ADNS IP. Verify that the response contains the IP address you expected.
  5. Another method of testing GSLB is to simply point nslookup to the ADNS services, and submit a DNS query for one of the DNS names bound to a GSLB vServer. Run the query multiple times to make sure you’re getting the response you expect.
  6. The NetScaler ADNS services at both GSLB sites should be giving the same response.
  7. To simulate a failure, disable the traffic Virtual Server.
  8. Then the responses should change. Verify on both ADNS services.

  9. Re-enable the traffic Virtual Server, and the responses should return to normal.

DNS Delegation

If you are enabling GSLB for the domain, you’ll need to create a delegation at the server that is hosting the DNS zone. For public GSLB, you need to edit the public DNS zone for

DNS Delegation instructions will vary depending on what product host’s the public DNS zone. This section details Microsoft DNS, but it should be similar in BIND or web-based DNS products.

There are two ways to delegate GSLB-enabled DNS names to NetScaler ADNS:

  • Delegate the individual record. For example, delegate to the two NetScaler ADNS services ( and
  • Delegate an entire subzone. For example, delegate the subzone to the two NetScaler ADNS services. Then create a CNAME record in the parent DNS zone for that is aliased to When DNS queries make it to NetScaler, they will be for and thus needs to be bound to the GSLB Virtual Server instead of For additional delegations, simply create more CNAME records.

This section covers the first method – delegating an individual DNS record:

  1. Run DNS Manager.
  2. First, create Host Records pointing to the ADNS services running on the NetScalers in each data center. These host records for ADNS are used for all GSLB delegations no matter how many GSLB delegations you need to create.
  3. The first Host record is gslb1 (or similar) and should point to the ADNS service (Public IP) on one of the NetScaler appliances.
  4. The second Host record is gslb2 and should point to the ADNS Service (public IP) on the other NetScaler appliance.
  5. If you currently have a host record for the service that you are delegating to GSLB (, delete it.
  6. Right-click the parent DNS zone and click New Delegation.
  7. In the Welcome to the New Delegation Wizard page, click Next.
  8. In the Delegated Domain Name page, enter the left part of the DNS record that you are delegating (e.g. gateway). Click Next.
  9. In the Name Servers page, click Add.
  10. This is where you specify and Enter and click Resolve. Then click OK. If you see a message about the server not being authoritative for the zone, ignore the message.
  11. Then click Add to add the other GSLB ADNS server.
  12. Once both ADNS servers are added to the list, click Next.
  13. In the Completing the New Delegation Wizard page, click Finish.
  14. If you run nslookup against your Microsoft DNS server, it will respond with Non-authoritative answer. That’s because it got the response from NetScaler and not from itself.

That’s all there is to it. Your NetScalers are now DNS servers. For active/passive, the NetScalers will hand out the public IP address of the primary data center. When the primary data center is not accessible, GSLB will hand out the GSLB Service IP bound to the Backup GSLB vServer.

Geo Location Database

If you want to use DNS Policies or Static Proximity GSLB Load Balancing or Responders based on user’s location, import a geo location database.

NetScaler has a built-in database at /var/netscaler/inbuilt_db/ that you can use. Or you can download a database. Common free databases are:

For IP2Location, see the blog post Add IP2Location Database as NetScaler’s Location File for instructions on how to import.

To Download GeoLite Legacy:

  1. Download the GeoLite Country database CSV from
  2. Note: GeoLite City is actually two files that must be merged as detailed at Citrix Blog Post GeoLite City as NetScaler location database. GeoLite Country doesn’t need any preparation.
  3. Upload the extracted database (.csv file) to the NetScaler appliance at /var/netscaler/locdb.

To import the Geo database (including the built-in database):

  1. In the NetScaler GUI, on the left, expand Traffic Management, expand GSLB, expand Location, and click Static Databases.
  2. On the right, click Add.
  3. Change the Import From selection to File.
  4. Click Choose File.
  5. For the built-in database, browse to /var/netscaler/inbuilt_db/ and open Citrix_NetScaler_InBuilt_GeoIP_DB.csv. To browse to the directory, select var and then click Open. Repeat for each directory until you reach /var/netscaler/inbuilt_db.
  6. Or browse to the Geo Location database file you uploaded and open it.
  7. In the Location Format field, if using the built-in database, select netscaler, and click Create.
  8. If using GeoLite Country, select geoip-country and click Create.
  9. When you open a GSLB Service, the public IP will be translated to a location.

You can use the Geo locations in a DNS Policy, static proximity GSLB Load Balancing, or Responders:

25 thoughts on “Global Server Load Balancing (GSLB) – NetScaler 11.1”

  1. Carl,

    I’ve got a service that I would like to put behind GSLB but I think I’m overthinking what the DNS should look like. All of my GSLB domains to-date have been specific subdomains – ie:,, etc. In those cases, app1 and app2 are actually CNAME records in DNS going to, etc.

    My next service is itself. I feel like I’m overthinking this, am I just replacing this process at a higher level? Turning into a CNAME for and delegating that as I normally do?

    1. So you want to delegate all of to NetScaler GSLB? In that case, you go to the domain registrar and change the Name Servers hosting the domain.

  2. Hi Carl, for public GSLB do I am using the GSLB Site and ADNS IP to be the same. So from System / Network / IPs – i see the type set as GSLB site IP | ADNS svc IP. My question is do i need to also set IP as a SNIP type for it to work on the outside?

    1. In newer versions of NetScaler, GSLB site IP definitely doesn’t need to be a SNIP. But I’m not sure about ADNS.

    2. Thanks Carl, I will communicate my findings. Another question do NetScaler’s need to be same firmware version for all GSLB sides?

      1. Nope. It should work if they are different versions, except for new features (e.g. ECS), of course.

  3. Hi Carl and thank you again for the useful job that you made for all of Citrix technical specialists.

    I have an easy question: if I put under GSLB two couple of StoreFront, when primary site goes down and the client re-connect to the secondary one, does the current cookie permit to access to the new StoreFront or the client have to authenticate again?

    Thank you very much and congrats.

    1. Each StoreFront Server Group has its own Authentication Service so I expect users would have to login again. And maybe have to close browser and reopen it.

  4. Hello Carl,

    Thanks for the post.

    Please, I would like to get some support for the following matter.

    I have configured a GSLB Active-StandBy scenario having two Internet links ISP1 and ISP2 in the Active Data Center. Therefore, the users will ever receive one IP belonging to ISP1 or ISP2 whenever they make a DNS request to the GSLB system. Yesterday, the Internet of ISP1 was down and the router and all its interfaces were UP. In other words, there were no Internet connectivity in ISP1. Unfortunately, the NetScaler GSLB system continued responding the DNS requests with IPs of the ISP1 which had no Internet access. As a result, the users could not access the services whenever the NetScaler answered with an IP belonging to ISP1, so I need to manually disable (it is supossed to be automatic) the GSLB services related to this ISP1. I need to know if there is an option to monitor the Internet across the router no matter if it and its interfaces are UP. Maybe, by creating a PING monitor to check an ALWAS-UP site in the Internet across the routers. I see that MEP cannot be able to help me to monitor the links, can it? The NetScaler MEP cannot detect that a link or the Internet is down and make the GSLB system to stop responding the DNS requests using IPs of the down link.

    Thanks in advance.


  5. Hello Carl,

    Thanks for this outstanding post.

    Please, I would like to get some recommendations to achieve a deployment that my boss wants.

    I am deploying a GSLB system by using two NetScaler 8005 appliances NS 11.1, both located in different locations away from each other. My boss wants the system to act as an active-“passive” GSLB, so a SIte A will always respond DNS queries and if it fails, a Site B will take over. So far, it would be easy to deploy; but, my boss wants that Site B not to be as “passive” as expected. He wants that Site B redirects all the DNS queries to Site A (in a manner of forwarding DNS). In other words, the Site B’s NetScaler will be acting as forwarding DNS to the NetScaler in Site A and only if the Site A goes down, Site B’s NetScaler will take over. Does the NS system support such configuration? Hope I could have explained myself clearly.

    Any comment will be very very appreciated.

    Thanks Sir.


    1. Are you referring to DNS? Or HTTP?

      In either case, you can create a Load Balancing vServer on Site B that has a service that points to the listener on Site A. Create a second LB vServer that uses services on Site B and bind this second load balancer as “backup vServer” for the first vServer.

      1. Hello Sir,

        Thanks for your answer. I have many services behind the Site A NetScaler (i.e. SSL, HTTP, RDP, FTP, SFTP, SSH) and those are located only in the Site A. That is the reason why I need that the NetScaler in Site B acts like a forwarding DNS, so the clients will ever reach the Site A even though they send their DNS queries to SIte B (Site B NetScaler is supposed to redirect DNS queries to site A NetScaler). I have tried to configure the vServer on Site B, but i did not succeded because the IP I must use as VIP is already acting as SNIP | ADNS svc IP in the appliance; indeed, this IP is the Site B Listener and it must be represented by the SNIP and the VIP in the same time. I guess I cannot re-use a SNIP in order to configure it as a VIP. How could I address this?

        Thanks in advance Sir.

        any comment or suggestion is very appreciated.

        Best regards


        1. If you do DNS Load Balancing instead of ADNS, when NetScaler receives a DNS request on the LB VIP, NetScaler will return local ADNS records and anything not on the local appliance will be forwarded to the remote DNS server (ADNS in Site A). If your Site B is publicly accessible, you can simply change the NAT to point to the DNS LB VIP instead of the ADNS IP. Or update the DNS delegation to point to the DNS LB VIP in Site B instead of the ADNS IP in Site B.

          1. Hello Sir,

            really, your help is very very appreciated.

            You say: “when NetScaler receives a DNS request on the LB VIP, NetScaler will return local ADNS records and anything not on the local appliance will be forwarded to the remote DNS server”, but in my case, I think that the NetScaler in Site B will find everything in its own site and will respond everything. There won’t be “anything not on the local appliance which could be forwarded to the remote DNS server”. Site B NetScaler will answer everything due to it will be authoritative for its GSLB domains which are the same as the domains in Site A.

            On the other hand, I have just one public IP for DNS listening in the Site B. So I must use the same as SNIP and ADNS IP or VIP. I think this might be more addressable if the SNIP could be re-used as VIP.


            And sorry for keeping making questions.

            Best regards,


          2. Regarding NAT, you can forward different port numbers to different DMZ IP addresses. This is called Port Address Translation.

            If Site B is authoritative for the same DNS names as Site A, then you need to configure Site B identically to Site A. Meaning you configure GSLB vServer to return the Site A GSLB Service when it’s up. And return Site B GSLB Service when Site A is down. This is a standard Active/Passive configuration. You have two GSLB vServers configured. One GSLB vServer returns the Site A IP address (Site A GSLB Service). The other GSLB vServer returns the Site B IP address (Site B GSLB Service). The DNS name is bound to the GSLB vServer that returns the Site A IP. Then edit the GSLB vServer that returns Site A IP and go to Protection > Backup vServer, and specify the GSLB vServer that returns Site B IP.

    1. I try to avoid stretched farms (and zones) if I can. Otherwise, it’s just a matter of injecting the zone into the HTTP header sent to StoreFront.

  6. Hello Carl,

    Hope you could support me with this matter.

    I am configuring GSLB in ONE box with NS11.1. The NS must answer DNS queries by using one IP of three different Internet Public IP segments. The answering must obviously depend on the availability of the ISP link as well as the service (http and ftp) itself. As a GSLB IP, I have configured an internal one. In order to check the health of the GSLB services I am configuring a monitor of type PING and Transparent which check the IP (an always-UP address in the Internet) going across a router. The monitor does not work when I add it to a GSLB Service even I have ping reply in the NS. I receive “Failure – Internal Error: resource unavailable to send probe” when I add the monitor to a GSLB Service. I have tested by adding the monitor to a LB service and it works fine. Why could be the explanation of this behaviour? Am I missing something in my configuration? I remember to have configured a platform in the past by using this way and it worked fine woth the monitors pointing to an always-UP IP address in the Internet.


    1. Hey Luis, the problem here is GSLB does not support transparent monitors. Just uncheck that and will work.

Leave a Reply