Sample Use Cases for rate-based policies
The following scenarios describe two uses of rate-based policies in global server load balancing (GSLB):
- The first scenario describes the use of a rate-based policy that sends traffic to a new data center if the rate of DNS requests exceed 1000 per second.
- In the second scenario, if more than five DNS requests arrive for a local DNS (LDNS) client within a particular period, the additional requests are dropped.
Redirecting traffic on the basis of traffic rate
In this scenario, you configure a proximity-based load balancing method, and a rate-limiting policy that identifies DNS requests for a particular region. In the rate-limiting policy, you specify a threshold of 1000 DNS requests per second. A DNS policy applies the rate limiting policy to DNS requests for the region “Europe.GB.17.London.UK-East.ISP-UK.” In the DNS policy, DNS requests that exceed the rate limiting threshold, starting with request 1001 and continuing to the end of the one-second interval, are to be forwarded to the IP addresses that are associated with the region “North America.US.TX.Dallas.US-East.ISP-US.”
The following configuration demonstrates this scenario:
add stream selector DNSSelector1 client.udp.dns.domain add ns limitIdentifier DNSLimitIdentifier1 -threshold 5 -timeSlice 1000 -selectorName DNSSelector1 add dns policy DNSLimitPolicy1 "client.ip.src.matches_location(\"Europe.GB.17.London.*.*\") && sys.check_limit(\"DNSLimitIdentifier1\")" -preferredLocation "North America.US.TX.Dallas.*.*" bind dns global DNSLimitPolicy1 5
Dropping DNS requests on the basis of traffic rate
In the following example of global server load balancing, you configure a rate limiting policy that permits a maximum of five DNS requests in a particular interval, per domain, to be directed to an LDNS client for resolution. Any requests that exceed this rate are dropped. This type of policy can help protect the Citrix ADC from resource exploitation. For example, in this scenario, if the time to live (TTL) for a connection is five seconds, this policy prevents the LDNS from requerying a domain. Instead, it uses data that is cached on the Citrix ADC.
add stream selector LDNSSelector1 client.udp.dns.domain client.ip.src add ns limitIdentifier LDNSLimitIdentifier1 -threshold 5 -timeSlice 1000 -selectorName LDNSSelector1 add dns policy LDNSPolicy1 "client.udp.dns.domain.contains(\".\") && sys.check_limit(\"LDNSLimitIdentifier1\")" -drop YES bind dns global LDNSPolicy1 6 show gslb vserver gvip gvip - HTTP State: UP Last state change was at Mon Sep 8 11:50:48 2008 (+711 ms) Time since last state change: 1 days, 02:55:08.830 Configured Method: STATICPROXIMITY BackupMethod: ROUNDROBIN No. of Bound Services : 3 (Total) 3 (Active) Persistence: NONE Persistence ID: 100 Disable Primary Vserver on Down: DISABLED Site Persistence: NONE Backup Session Timeout: 0 Empty Down Response: DISABLED Multi IP Response: DISABLED Dynamic Weights: DISABLED Cname Flag: DISABLED Effective State Considered: NONE 1) site11_svc(10.100.00.00: 80)- HTTP State: UP Weight: 1 Dynamic Weight: 0 Cumulative Weight: 1 Effective State: UP Threshold : BELOW Location: Europe.GB.17.London.UK-East.ISP-UK 2) site12_svc(10.101.00.100: 80)- HTTP State: UP Weight: 1 Dynamic Weight: 0 Cumulative Weight: 1 Effective State: UP Threshold : BELOW Location: North America.US.TX.Dallas.US-East.ISP-US 3) site13_svc(10.102.00.200: 80)- HTTP State: UP Weight: 1 Dynamic Weight: 0 Cumulative Weight: 1 Effective State: UP Threshold : BELOW Location: North America.US.NJ.Salem.US-Mid.ISP-US 1) www.gslbindia.com TTL: 5 secn Cookie Timeout: 0 min Site domain TTL: 3600 sec Done