Manual Chapter : 3-DNS Reference Manual v4.5.10: 3-DNS Configuration File

Applies To:

Show Versions Show Versions

3-DNS Controller versions 1.x - 4.x

  • 4.5.14, 4.5.13, 4.5.12, 4.5.11, 4.5.10
Manual Chapter


A

 

3-DNS Configuration File


Overview of the 3-DNS configuration file

The 3-DNS configuration file, wideip.conf, describes the components in a global network, and the services that are available on those components. Note that when you use the browser-based Configuration utility, all components of the 3-DNS configuration file are automatically generated and parsed.

Note


If you use the Configuration utility to configure the 3-DNS Controller, and you want to see the wideip.conf configuration for a specific component, click the Configuration View button () when you see it in the Configuration utility.

 

The wideip.conf file consists of two types of information: statements and comments. The wideip.conf file should include at least the following definitions.

  • A datacenter statement

  • At least one box statement

  • At least one server statement defining a 3-DNS Controller

  • At least one virtual server, which is defined as part of a server statement for one of these objects: BIG-IP system, EDGE-FX system, or host

  • A wideip statement, for load balancing

If the wideip.conf file lacks complete definitions, one of the following happens:

  • If the file cannot be parsed, 3dnsd does not start.

  • If the file can be parsed, the 3-DNS Controller reverts to standard DNS behavior.

To edit the 3-DNS configuration file, wideip.conf

  1. To ensure that the configuration files contain the same information as the memory cache, type the following command:

    3ndc dumpdb

  2. Open the wideip.conf file in a text editor (either vi or pico).

  3. Make any changes to the configuration that you want to make.

  4. Save and close the file.

  5. Commit the changes to the configuration by typing:

    3ndc reload


Using include files

Include files are files that contain configuration information about one aspect of your network, and are listed in the wideip.conf configuration file. For example, you can have one include file that defines the topology records for load balancing, and another include file that contains local DNS server and path information.

Using include files reduces the size of the wideip.conf file and makes it easier to manage your configuration. The 3-DNS Controller automatically creates and implements include files whenever you configure your network setup using the Configuration utility.

Note


When the wideip.conf file is generated by the Configuration utility, any comments you incorporated from the command line are deleted.

 


Syntax for include files

Use the syntax shown in Figure A.1 when incorporating include files into a wideip.conf file.

Figure A.1 Syntax for include files


include root_in "/config/3dns/include"
include root_out "/config/3dns/include"
include topology "topology.inc"
include geoloc "netIana.inc"
include ldns "ldns.inc"
include region "region.inc"
 

 

Definitions of include statements

Table A.1 lists the include statements in the wideip.conf file, their descriptions, and their default file names.

 

Parameter

Description

Default file name

include root_in

Specifies the root directory from which to get include files. Enclose all file names in quotation marks.

/config/3dns/include

include root_out

Specifies the root directory in which to dump include files.

/config/3dns/include

include topology

Specifies the name of the file that contains the topology statement.

topology.inc

include geoloc

Specifies the name of the file that contains the IP geo-classification database. It is important that you do not edit this statement.

netIana.inc

include ldns

Specifies the name of the file that contains information about local DNS servers and path information.

ldns.inc

include region

Specifies the name of the file that contains any region definitions statements.

region.inc


Working with statements

A top-level statement in the wideip.conf file begins with a keyword, and may be followed either by a value or by a block of sub-statements enclosed in braces ( {} ).

The 3-DNS platform supports the following top-level statements.

  • include
    The include statement lists any include files that are configured on the 3-DNS Controller.

  • globals
    The globals statement defines system-level settings for any 3-DNS Controller configuration options, and sets the defaults for other statements.

  • datacenter
    The datacenter statement defines the group of 3-DNS Controllers, BIG-IP systems, EDGE-FX systems, routers, and hosts that reside in a single physical location.

  • box
    The box statement defines the attributes of the physical device that the 3-DNS software, BIG-IP software, EDGE-FX software, router, or host runs on.

  • server
    The server statement defines any of the following objects: a 3-DNS Controller, a BIG-IP system, an EDGE-FX system, a router, or a host.

  • sync_group
    The sync_group statement defines the group of 3-DNS Controllers and Link Controllers that synchronize their configuration settings and metrics data.

  • wideip
    The wideip statement defines a wide IP and the pool or pools that are used for load balancing. A wide IP maps a domain name (for example, stocks.siterequest.com) to a load balancing mode and a set of virtual servers that serve the content for the domain.

  • topology
    The topology statement contains the topology records that facilitate the topology load balancing mode (on its own and as part of the Quality of Service mode). Note that the topology statement is the preferred location for topology configuration information.


Syntax rules

Keep the following rules in mind when creating and editing statements in the wideip.conf file.

  • Statement order
    Statements should appear in this order in the wideip.conf file:

    • globals statement

    • include statement

    • datacenter statement

    • box statement

    • server statement

    • sync_group statement

    • wideip statement

  • Address and port specification
    For virtual servers, the port specification must immediately follow the IP address specification. For the port specification, you can use either a port number, or a service name. For example, you can use "http" instead of 80 to represent the HTTP protocol. The address and port specification can take any of the following forms:

    address <ip_address>:<port>

    address <ip_address>
    port <port>

    address <ip_address>
    service <"http">

    Note


    This chapter contains several syntax examples. For an overview of the typography conventions in the syntax examples, see Identifying command syntax .

     

The globals statement

The globals statement contains the global options that are used by the 3-DNS Controller, and must appear before any other statements in the wideip.conf file. Each globals sub-statement has a default setting, and you do not need to edit the globals statement unless you want to change a default setting.

If you use a globals sub-statement more than once, the 3-DNS Controller uses the last listed value, and does not generate an error message. For example, if your globals statement contains the parameters shown in Figure A.2 , the 3-DNS Controller uses the value 50 for the time-to-live for metrics collected from a BIG-IP system.

Figure A.2 Multiple globals sub-statements


globals {
bigip_ttl 100
bigip_ttl 50
}
 

Syntax for the globals statement

The globals statement supports the following sub-statements. When you define a globals statement, you need to include only those sub-statements that you want to change from the default.

Figure A.3 Syntax for the globals statement


globals {
  [ time_tolerance <number> ]
  [ autosync < yes | no > ]
  [ autoconf <yes | no> ]
  [ encryption < yes | no > ]
  [ encryption_key_file <string> ]
  [ check_static_depends < yes | no > ]
  [ check_dynamic_depends < yes | no > ]
  [ default_persist_ttl < <number> s | m | h | d | w | M | y > ]
  [ default_probe_limit <number> ]
  [ persist_ldns < yes | no > ]
  [ persist_mask <ip_address> ]
  [ drain_requests < yes | no >
  [ timer_get_3dns_data <number> ]
  [ timer_get_server_data <number> ]
  [ timer_get_host_data <number> ]
  [ timer_get_vs_data <number> ]
  [ timer_get_ecv_data <number> ]
  [ timer_get_path_data <number> ]
  [ timer_get_trace_data <number> ]
  [ timer_get_link_data <number> ]
  [ timer_get_link_status <number> ]
  [ timer_get_autoconfig_data <number> ]
  [ timer_check_keep_alive <number> ]
  [ timer_persist_cache <number> ]
  [ timer_sync_state <number> ]
  [ dc_prefix <string> ]
  [ 3dns_ttl <number> ]
  [ bigip_ttl <number> ]
  [ edgefx_ttl <number> ]
  [ host_ttl <number> ]
  [ vs_ttl <number> ]
  [ path_ttl <number> ]
  [ trace_ttl <number> ]
  [ link_ttl <number> ]
   [ default_ttl <number> ]
  [ rtt_timeout <number> ]
  [ rtt_sample_count <number> ]
  [ rtt_packet_length <number> ]
  [ rx_buf_size <number> ]
  [ tx_buf_size <number> ]
  [ dump_topology < yes | no > ]

  [ qos_coeff_rtt <number> ]
  [ qos_coeff_completion_rate <number> ]
  [ qos_coeff_packet_rate <number> ]
  [ qos_coeff_topology <number> ]
  [ qos_coeff_hops <number> ]
  [ qos_coeff_vs_capacity <number> ]
  [ qos_coeff_kbps <number> ]
  [ qos_coeff_lcs <number> ]
  [ qos_factor_rtt <number> ]
  [ qos_factor_completion_rate <number> ]
  [ qos_factor_packet_rate <number> ]
  [ qos_factor_topology <number> ]
  [ qos_factor_hops <number> ]
  [ qos_factor_vs_capacity <number> ]
  [ qos_factor_kbps <number>
  [ qos_factor_lcs <number>
  [ default_alternate < ga | null | random | ratio | static_persist |
packet_rate | leastconn | return_to_dns | rr | topology | vs_capacity
| kbps | drop_packet | explicit_ip > ]

  [ default_fallback < completion_rate | ga | hops | leastconn |
null | packet_rate | qos | random | ratio | return_to_dns |
rr | rtt | topology | vs_capacity | static_persist | kbps | drop_packet | explicit_ip > ]
  [ fb_respect_depends < yes | no > ]
  [ fb_respect_acl < yes | no > ]
  [ aol_aware < yes | no >
  [ path_duration <number> ]
  [ ldns_duration <number> ]
  [ prober <ip_address> ]
  [ resolver_tx_buf_size <number> ]
  [ resolver_rx_buf_size <number> ]
  [ use_alternate_iq_port < yes | no > ]
  [ multiplex_iq < yes | no > ]
  [ paths_never_die < yes | no > ]
  [ rtt_allow_probe < yes | no > ]
  [ rtt_allow_hops < yes | no > ]
  [ probe_protocol {
      [ dns_rev ]
      [ dns_dot ]
      [ udp ]
      [ tcp ]
      [ icmp ]
    } ]
  [ datasize_system <number> ]
  [ datasize_reap_pct <number> ]
  [ default_iquery_protocol < udp | tcp > ]
  [ traceroute_port <number> ]
}
 

 

 

Figure A.4 shows an example of a valid globals statement.

Figure A.4 Example syntax for the globals statement


globals {
  autoconf yes //Auto-discovery is available for servers
  autosync yes //Synchronization is on
  time_tolerance 10 //Ten seconds is maximum variance for 3-DNS Controllers times
  prober 192.168.101.2 // Default prober is New York 3-DNS Controller
  encryption yes // Encrypt iQuery
  path_ttl 2400 // Extend the life of path metrics
}

Definition of globals sub-statements

The globals statement can contain some or all of the parameters that are described in the following sections.

Auto-discovery

The auto-discovery sub-statement, autoconf, specifies whether the 3-DNS Controller can gather virtual server information for any servers you define. You can also specify, for individual servers, whether auto-discovery is on. (See Auto-discovery for servers , for more information.) If you disable auto-discovery in the globals statement, you override the autoconf setting in the server statements.

Parameter

Description

Default

autoconf

Specifies whether the auto-discovery option is available for servers. Note that setting this global variable to no disables auto-discovery for any servers that you may configure.

yes

 

Note


In the Configuration utility, the list of self IPs reported by auto-discovery may not include all self IPs on the system. Auto-discovery reports only public or external addresses, and any associated address translation will not show up in the Configuration utility's self-IP list.

 

Note


In the Configuration utility, auto-discovery is labeled Discovery.

 

Synchronization

The synchronization sub-statements specify how the current 3-DNS Controller handles synchronizing its configuration with the other 3-DNS Controllers in the network.

 

Parameter

Description

Default

autosync

When autosync is on, the 3-DNS Controller compares file time stamps among the 3-DNS Controllers in your network. When a controller has a file that has a more recent time stamp than the same file on the other 3-DNS Controllers in the network, the controller with the most current file synchronizes that file to the other controllers.

yes

time_tolerance

Specifies the variation of time allowed (in seconds) when comparing time stamps on files. File time stamps are included in iQuery messages when they are passed among the 3-DNS Controllers in the network. When a file's time stamp is more than time_tolerance seconds ahead of the time stamp for the same file on another controller, the 3-DNS Controller updates the older file's time stamp with the more recent time stamp. If the difference between the two time stamps falls within the time_tolerance setting, the controller considers the files to be the same and does not overwrite one with the other. Set the time_tolerance global to 0 if you want to disable it.

10

sync_gui_rules

Specifies whether the 3-DNS Controller synchronizes production rules with the other 3-DNS Controllers in the network.

no

sync_named_conf

Specifies whether the 3-DNS Controller synchronizes the DNS zone files with the other 3-DNS Controllers in the network.

yes

sync_timeout

Specifies the amount of time the controller waits for the synchronization to complete, after the synchronization process for configuration data starts. If the synchronization process does not complete in this time, the controller stops the process, logs an error, and retries the synchronization at the next interval.

180

sync_zones_timeout

Specifies the amount of time the controller waits for the synchronization to complete, after the synchronization process for zone files starts. If the synchronization process does not complete in this time, the controller stops the process, logs an error, and retries the synchronization at the next interval.

300

 

 

Encryption

The encryption sub-statements specify whether the communication between the 3-DNS Controller and a BIG-IP system is encrypted.

 

Parameter

Description

Default

encryption

Specifies whether to enable encryption for iQuery messages.

no

encryption_key_file

Specifies the location and name of the iQuery encryption key file.

"/etc/F5key.dat"

 

Dependencies

The dependencies sub-statements specify whether the 3-DNS Controller checks the availability of virtual servers or paths before the system sends a connection to a virtual server.

 

Parameter

Description

Default

check_static_depends

Specifies that the 3-DNS Controller checks the availability of virtual servers on BIG-IP systems, EDGE-FX systems, and hosts before it uses the virtual servers for load balancing. Change this option to no if you want to test your configuration. Setting this option to no forces the virtual servers to have green (up) status indicators on the Virtual Server Statistics screen in the Configuration utility.

yes

check_dynamic_depends

Specifies that the 3-DNS Controller checks the availability of a path before it uses the path for load balancing. Changing this option to no overrides the path_ttl and whether the last probe attempt was successful.

yes

 

LDNS persistence

Dynamic load balancing modes and wide IP persistence depend on path information to resolve requests. The value for persist_ldns must be set to yes (the default) so that the 3-DNS Controller stores and uses path information. If you use only static load balancing modes and are not using persistence, you can set persist_ldns to no to conserve memory.

 

Parameter

Description

Default

persist_ldns

Specifies whether the 3-DNS Controller records in its cache the IP addresses of all LDNS servers that make resolution requests.

yes

Load balancing persistence

The load balancing persistence sub-statements define how the 3-DNS Controller load balances persistent connections.

 

Parameter

Description

Default

default_persist_ttl

Specifies the length of time the 3-DNS Controller retains persistent connections information before the information is purged.

3600

persist_mask

Specifies the significant bits of an LDNS IP address to use with the static_persist load balancing mode. The default setting indicates that all 32 bits are significant.

0xFFFFFFFF

drain_requests

Specifies whether load-balanced persistent connections are allowed to remain connected, until the TTL expires, when you disable a pool. When set to no, the connections are terminated immediately when the pool is disabled. This variable affects the persist setting in the load balancing sub-statement. See Table A.30 , for more information.

yes

 

Periodic task intervals

The periodic task interval sub-statements define the frequency at which the 3-DNS Controller refreshes the metrics information it collects.

 

Parameter

Description

Default

timer_get_3dns_data

Specifies how often the 3-DNS Controller retrieves availability data for other 3-DNS Controllers in the network. You can enter a value between 1 and 3600 seconds.

20

timer_get_server_data

Specifies how often the 3-DNS Controller refreshes 3-DNS Controller, BIG-IP system, and EDGE-FX system information. You can enter a value between 1 and 3600 seconds.

20

timer_get_host_data

Specifies how often the 3-DNS Controller refreshes other host machine information. You can enter a value between 1 and 3600 seconds.

90

timer_get_vs_data

Specifies how often the 3-DNS Controller refreshes virtual server information. You can enter a value between 1 and 3600 seconds.

30

timer_get_path_data

Specifies the minimum interval at which the 3-DNS Controller sends requests for new or updated path information (for example, round trip time or ping packet completion rate) to the big3d agents in the network. Note that if the controller is monitoring a large number of paths, the controller sends the requests to the big3d agents more frequently. You can enter a value between 1 and 600 seconds.

120

timer_get_ecv_data

Specifies how often the 3-DNS Controller refreshes ECV information. You can enter a value between 5 and 3600 seconds.

90

timer_get_trace_data

Specifies how often the 3-DNS Controller retrieves traceroute data (the traceroute utility collects information on router hops between each data center and each LDNS). You can enter a value between 1 and 3600 seconds.

60

timer_get_autoconfig_data

Specifies how often the 3-DNS Controller checks for updated virtual server configuration information, when auto-discovery is enabled.

30

timer_get_link_data

Specifies how often the 3-DNS Controller refreshes link metrics information.

10

timer_get_link_status

Specifies how often the 3-DNS Controller refreshes link availability information.

2

timer_check_keep_alive

Specifies how often the 3-DNS Controller queries remote 3-DNS Controllers, BIG-IP systems, and EDGE-FX systems. This value determines how often 3dnsd sends hello packets to each big3d agent in its configuration. You can enter a value between 1 and 3600 seconds.

60

timer_persist_cache

Specifies how often the 3-DNS Controller writes the wideip.conf file from memory. You can enter a value between 1 and 604800 seconds.

3600

 

Data time-outs

The data time-out sub-statements set the amount of time for which metrics information is considered valid. After a time-out is reached, the 3-DNS Controller refreshes the information.

 

Parameter

Description

Default

default_ttl

Specifies the default number of seconds that the 3-DNS Controller considers a wide IP A record to be valid. If you do not specify a wide IP TTL value when you define a wide IP pool, the wide IP definition uses the default_ttl value.

30

3dns_ttl

Specifies the number of seconds that the 3-DNS Controller considers performance data for the other 3-DNS Controllers to be valid.

60

bigip_ttl

Specifies the number of seconds that the 3-DNS Controller can use BIG-IP system information for name resolution and load balancing. You can enter a value between 1 and 10800. The following relationship should be maintained:
bigip_ttl is greater than timer_get_server_data. A 3:1 ratio is the optimal setting for this relationship.

60

edgefx_ttl

Specifies the number of seconds that the 3-DNS Controller can use EDGE-FX system information for name resolution and load balancing. You can enter a value between 1 and 10800. The following relationship should be maintained:
edge_ttl is greater than timer_get_server_data. A 3:1 ratio is the optimal setting for this relationship.

60

host_ttl

Specifies the number of seconds that the 3-DNS Controller can use host information for name resolution and load balancing. You can enter a value between 1 and 10800. The following relationship should be maintained:
host_ttl is greater than timer_get_host_data.

240

vs_ttl

Specifies the number of seconds that the 3-DNS Controller can use virtual server information (data acquired about a virtual server from a BIG-IP system, an EDGE-FX system, or host) for name resolution and load balancing. You can enter a value between 1 and 10800. The following relationship should be maintained:
vs_ttl is greater than timer_get_vs_data.

120

link_ttl

Specifies the number of seconds that the 3-DNS Controller can use link information for link load balancing. You can enter a value between 1 and 10800. The following relationship should be maintained:
link_ttl is greater than timer_get_link_data.

31

path_ttl

Specifies the number of seconds that the 3-DNS Controller can use path information for name resolution and load balancing. You can enter a value between 1 and 2419200. The following relationship should be maintained:
path_ttl is greater than timer_get_path_data.

2400

trace_ttl

Specifies the amount of time (in seconds) that the 3-DNS Controller considers traceroute data, for router hops, to be valid. You can enter a value between 1 and 2419200.

604800 (seven days)

 

Probing and metrics collection

The probing and metrics collection sub-statements define how the 3-DNS Controller collects path information.

 

Parameter

Description

Default

rtt_timeout

Specifies, in seconds, how long the big3d agent waits for a response to a probe. You can enter a value between 1 and 10.

3

rtt_sample_count

Specifies the number of packets to send from the big3d agent to the LDNS, host, or host virtual server to determine the path information between those two systems. You can type a value between 1 and 10.

3

rtt_packet_length

Specifies the length of packets, in bytes, to send from the big3d agent to the LDNS to determine the path information between those two machines. You can type a value between 64 and 500; the default value for this setting is 64.

64

probe_protocol

Determines which protocols the 3-DNS Controller uses to probe LDNS servers to calculate path round trip times, and in what order the protocols are used. You can specify one or more of the following protocols: icmp, udp, tcp, dns_dot, and dns_rev.

icmp

default_probe_limit

Specifies the number of times that the 3-DNS Controller attempts to probe a failed path before continuing.

12

paths_never_die

Specifies that the 3-DNS Controller should not attempt to refresh path data for a path that has been successfully probed.

no

check_dynamic_depends

Specifies that the 3-DNS Controller checks the availability of a path before it uses the path for load balancing. Changing this option to no overrides the path_ttl and whether the last probe attempt was successful. This parameter does not prevent the refreshing of path metrics.

yes

rtt_allow_probe

Specifies that the 3-DNS Controller issues probe requests for path metrics to local DNS servers. You can change this setting to no to turn off path probing.

yes

rtt_allow_hops

Specifies that the 3-DNS Controller should collect hops metrics when probing paths.

yes

prober

Specifies the default prober to perform availability service checks on hosts and host virtual servers. When this option is set to 127.0.0.1, the controller chooses the best big3d agent to probe the host or host virtual server. The best big3d agent is defined as the agent that is closest to the host (for example, a big3d agent on the same link is closer than in the same data center, which is closer than any big3d agent in the network), and has the least number of outstanding probe requests compared to the agent's probe capacity.
You can override this default setting within the server statement. Note that this sub-statement is optional if the 3-DNS Controller does not manage hosts or host virtual servers.

127.0.0.1

 

Resource limits

The resource limits sub-statements define the amount of memory on the 3-DNS Controller that is allocated to sending and receiving metrics information.

 

Parameter

Description

Default

rx_buf_size

Specifies the maximum amount of socket buffer data memory the 3-DNS Controller can use when receiving iQuery data. You can enter a value between 8192 and 262144.

262144

tx_buf_size

Specifies the maximum amount of socket buffer data memory the 3-DNS Controller can use when transmitting iQuery data. You can enter a value between 8192 and 262144.

262144

 

 

Topology settings

The Topology load balancing mode uses geographic data to determine the best virtual server to send in response to a request. The topology globals affect how the 3-DNS Controller uses the topology and regions include files. For more information about include files, see Using include files . For more information about the Topology load balancing mode, see Chapter 3, Topology .

 

Parameter

Description

Default

dump_topology

Specifies whether the 3-DNS Controller writes out the topology statement whenever a configuration change occurs.

yes

 

QOS values

The Quality of Service (QOS) load balancing mode distributes connections based on a path evaluation score. Using the QOS equation shown in Figure A.5 , the Quality of Service mode compares paths between the LDNS and each virtual server included in the wideip statement. When you specify the Quality of Service load balancing mode, the 3-DNS Controller load balances each new connection to the virtual server associated with the best (highest) path score.

Figure A.5 QOS equation


score_path =
[(qos_coeff_packet_rate) * (1 / score_packet_rate)] +
(qos_coeff_rtt) * (1 / score_rtt)] +
[(qos_coeff_completion_rate) * (score_completion_rate)] +
[(qos_coeff_topology) * (score_topology)] +
[(qos_coeff_hops) * (score_hops)] +
[(qos_coeff_vs_capacity) * (score_vs_capacity)] +
[(qos_coeff_kbps) * (score_kbps)] +
[(qos_coeff_lcs) * (score_lcs)]
 

The coefficients for the QOS score computation are defined in the globals statement, but you can override them within a wideip statement.

 

Parameter

Description

Default

qos_coeff_rtt

Specifies the relative weighting for round trip time when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

50

qos_coeff_completion_rate

Specifies the relative weighting for ping packet completion rate when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

5

qos_coeff_packet_rate

Specifies the relative weighting for BIG-IP packet rate when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

1

qos_coeff_topology

Specifies the relative weighting for topology when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

0

qos_coeff_hops

Specifies the relative weighting for hops when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

0

qos_coeff_vs_capacity

Specifies the relative weighting for virtual server capacity when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

0

qos_coeff_kbps

Specifies the relative weighting for kilobytes per second when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

3

qos_coeff_lcs

Specifies the relative weighting for link capacity when the load balancing mode is set to Quality of Service. You can enter a value between 0 and 4294967295.

30

qos_factor_rtt

Specifies the factor used to normalize raw round trip time values when computing the QOS score.

10000

qos_factor_completion_rate

Specifies the factor used to normalize raw completion rate values when computing the QOS score.

10000

qos_factor_packet_rate

Specifies the factor used to normalize raw packet rate values when computing the QOS score.

10000

qos_factor_topology

Specifies the factor used to normalize raw topology values when computing the QOS score.

10

qos_factor_hops

Specifies the factor used to normalize raw hops values when computing the QOS score.

25

qos_factor_vs_capacity

Specifies the factor used to normalize raw virtual server capacity values when computing the QOS score.

1

qos_factor_kbps

Specifies the factor used to normalize raw kilobytes per second values when computing the QOS score.

1000

qos_factor_lcs

Specifies the factor used to normalize raw link capacity values when computing the QOS score.

1

 

Load balancing

The load balancing sub-statement defines the alternate and fallback load balancing modes.

 

Parameter

Description

Default

default_alternate

Defines the default alternate load balancing mode used when the preferred load balancing mode does not provide a resolution. You can override this setting in the wideip statement.

rr

default_fallback

Defines the default fallback load balancing mode used when the preferred and alternate load balancing modes do not provide a resolution. You can override this setting in the wideip statement.

return_to_dns

fb_respect_depends

Determines whether the 3-DNS Controller respects virtual server status when load balancing switches to the specified fallback mode.

no

fb_respect_acl

Determines whether the 3-DNS Controller imposes topology access control when load balancing switches to the specified fallback mode.

no

aol_aware

Determines whether the 3-DNS Controller recognizes local DNS servers that belong to the Internet service provider, America Online (AOL).

yes

 

Buffer size

The buffer size sub-statements specify the maximum amount of UDP data that the 3-DNS Controller can receive for wide IP DNS messages.

 

Parameter

Description

Default

resolver_rx_buf_size

Specifies the wide IP receive buffer size. The value is overridden only if it is larger than the one first assigned by the kernel.

262144

resolver_tx_buf_size

Specifies the wide IP send buffer size.

262144

 

Reaping

The 3-DNS Controller stores local DNS server and network path data in memory. The amount of data that can be held in memory at any given time is based on the amount of memory in the 3-DNS Controller. Reaping is the process of finding the least-used data in memory and deleting it.

The default reaping values are adequate for most configurations. Contact your technical support representative if you want to make changes to them.

 

Parameter

Description

Default

datasize_system

Specifies the amount of RAM that the 3-DNS Controller reserves for system usage, such as non-3-DNS specific processes. Note that the system determines the value for this variable.

varies by system

datasize_reap_pct

Specifies what percentage of memory that the 3-DNS Controller frees up during the reap process.

15

path_duration

Specifies the number of seconds that a path remains cached after its last access. You can type a value between 60 and 31536000 (one year).

604800

(7 days)

ldns_duration

Specifies the number of seconds that an inactive LDNS remains cached. Each time an LDNS makes a request, the clock starts again. You can type a value between 60 and 31536000 (one year).

2419200
(28 days)

 

iQuery port options

The iQuery port options determine which port (or ports) the 3-DNS Controller uses to send and receive iQuery traffic.

 

Parameter

Description

Default

use_alternate_iq_port

Determines whether the 3-DNS Controller runs iQuery traffic on port 245 (the port used in older configurations), or on port 4353, the iQuery port registered with IANA. The default setting, yes, uses port 4353. To use port 245, change this setting to no. This setting is used only by UDP-based traffic.

yes

multiplex_iq

Determines whether the 3-DNS Controller uses the ephemeral ports for iQuery traffic returned from the big3d agent. The default setting forces iQuery traffic to use a single port defined by use_alternate_iq_port for all iQuery traffic.

yes

 

The datacenter statement

A datacenter statement defines the group of 3-DNS Controllers, BIG-IP systems, EDGE-FX systems, routers, and hosts that reside in a single physical location.

Syntax for the datacenter statement

The datacenter statement uses the following syntax.

Figure A.6 Syntax for the datacenter statement


datacenter {
name <"data center name">
[ location <"location info"> ]
[ contact <"contact info"> ]
[ 3dns <ip_address | "name"> ]
[ bigip <ip_address | "name"> ]
[ edgefx <ip_address | "name"> ]
[ router <ip_address | "name"> ]
[ host <ip_address | "name"> ]
}
 

Figure A.7 shows an example of a valid datacenter statement.

Figure A.7 Example syntax for the datacenter statement


datacenter {
name "New York"
location "NYC"
contact "3DNS_Admin"
3dns 192.168.101.2
bigip 192.168.101.40
edgefx 192.168.101.50
router 192.168.101.254
host 192.168.105.40
}
 

Definition of datacenter sub-statements

The datacenter sub-statements specify a name for the data center and the machines it contains.

 

Parameter

Description

name

Specifies the name of this data center. This parameter must be enclosed in quotation marks.

location

Specifies the location of the data center. This parameter must be enclosed in quotation marks. This sub-statement is not required, but this information can be useful if problems later arise or changes are required.

contact

Identifies the administrator of the data center. This parameter must be enclosed in quotation marks. This sub-statement is not required, but this information can be useful if problems later arise or changes are required.

3dns

Specifies the IP address or name of a 3-DNS Controller in this data center. If you have a redundant system, you need to specify only one controller's IP address.

bigip

Specifies the IP address or name of a BIG-IP system in this data center. If you have a redundant system, you need to specify only one controller's IP address.

edgefx

Specifies the IP address or name of an EDGE-FX system in this data center.

router

Specifies the IP address or name of a router in this data center.

host

Specifies the IP address or name of a host in this data center.

 

The box statement

The box statement defines the name, IP addresses, remote user, big3d factories, and iQuery protocol associated with an actual physical system. The physical system can have one or more servers running on it. For example, if you have a BIG-IP system running the 3-DNS Controller module, you define one physical system (a box), and two server types (the 3-DNS Controller and the BIG-IP system) in the wideip.conf file.

Syntax for the box statement

Figure A.8 shows the syntax for a box statement.

Figure A.8 Example syntax for the box statement


box {
[ name <"box name"> ]
address <ip_address> [ translates to <ip_address> ]
[ address <ip_address> [ translates to <ip_address> ]]...
iquery_protocol < udp | tcp >
[ remote {
[ user <"user_name"> ]
[ secure <yes | no> ]
} ]
[ factories {
[ prober <number> ]
[ hops <number> ]
[ ecv <number> ]
[ snmp <number> ]
} ]
}
 

Definitions of box sub-statements

The box statement can contain some or all of the parameters that are described in the following sections.

Address information

The address information sub-statements provide the basic attributes of a box. Note that if you are defining a 3-DNS Controller, a BIG-IP system, an Link Controller, or an EDGE-FX system, you can define the iQuery protocol and factories for the big3d agent, in addition to the name and IP addresses for the box.

 

Parameter

Description

name

Specifies the name of the physical unit that the server type runs on. You must enclose all names in quotation marks. This is an optional setting.

address

Specifies the public IP address of the interface in the physical unit. Note that you can have several addresses for one box.

translates to
translates_to

Specifies the private IP address the physical unit. If you have firewalls in your network, the translates_to address is the IP address that is on your internal network. This is an optional parameter for the address parameter, and you can use either syntax format.

iquery_protocol

Specifies the iQuery transport option, tcp or udp. Applies to 3-DNS Controllers, BIG-IP systems, and EDGE-FX systems only.

 

Remote connections

You use the remote sub-statement only if you want to specify a different login name for a 3-DNS Controller, BIG-IP system, or EDGE-FX system.

 

Parameter

Description

remote

Indicates the start of a remote sub-statement. Applies to 3-DNS Controllers, BIG-IP systems, and EDGE-FX systems only.

user

Specifies the "superuser" name that is used to allow a remote user to log on to the system. Enclose this name in quotation marks. If you omit this parameter, the default, root, is used. Applies to 3-DNS Controllers, BIG-IP systems, and EDGE-FX systems only.

secure

Specifies whether the communications with the remote system are encrypted. The default setting is yes. We recommend that you do not change this setting.

 

Factories

For any box that is running a 3-DNS Controller, BIG-IP system, or EDGE-FX system, you can change the number and types of probing factories by using the factories sub-statement. If you omit this sub-statement, the 3-DNS Controller uses the default settings. For more information on factories and probing, see Working with the big3d agent . For information on configuring probing and metrics collection in the wideip.conf file, see Probing and metrics collection .

 

Parameter

Description

factories

Indicates the start of the factories definition. Applies to 3-DNS Controller, BIG-IP systems, and EDGE-FX systems.

prober

Specifies the number of prober factories to use. The default setting is 5.

snmp

Specifies the number of SNMP factories to use. Note that you must use an SNMP factory to collect metrics from an EDGE-FX Cache. The default setting is 0.

hops

Specifies the number of hops factories to use. The default setting is 0.

ecv

Specifies the number of ECV factories to use. The default setting is 5.

 

Note


In previous releases, you configured the factories sub-statement within a server statement. With this release, you now define factories within a box statement. Note that is still valid to define factories in a server statement, but we recommend that you define factories in the box statement.

 


The server statement

The server statement defines the characteristics associated with a particular 3-DNS Controller, BIG-IP system, EDGE-FX system, host, or router. A basic server statement contains the following information:

  • The type of server: 3-DNS Controller, BIG-IP system, EDGE-FX system, router, or host

  • One of the IP addresses, or the name, of the physical unit that the server is running on

  • If the server is a BIG-IP system, EDGE-FX Cache, or host, the set of virtual servers that is available on it

  • If the server is a router, the link or links managed by the router

You can also define several parameters that are applicable to the specific server type. As such, the syntax and examples for each server type are listed separately in the following sections of this chapter. All sub-statements for the server statement are defined in the Definition of server sub-statements section.

     

Syntax for the server statement (3-DNS Controller)

The following server statement syntax applies to 3-DNS Controllers only. Note that this server statement does not define virtual servers; the purpose of defining a 3-DNS Controller is to set up the big3d agent to obtain path probing information.

Figure A.9 Server statement syntax for defining a 3-DNS Controller


server {
type 3dns
name <"3dns_name">
box <ip_address | "name">
[ box <ip_address | "name"> //use for a redundant system
[ autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ link_autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ disabled_until [<time in seconds> [<by_whom>]]]
}
 

Figure A.10 shows an example of a 3-DNS Controller definition in the wideip.conf file.

Figure A.10 Example of a 3-DNS Controller definition


// 3-DNS Controller in New York data center
server {
type 3dns
name "3dns-newyork"
box 192.168.101.2
}
 

Syntax for the server statement (BIG-IP system)

The following server statement syntax applies only to BIG-IP systems and their virtual servers.

Figure A.11 Server statement syntax for defining a BIG-IP system


server {
type bigip
[ name <"bigip_name"> ]
box <ip_address | "name">
[ box <ip_address | "name"> //use for a redundant system
[ autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ link_autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ iquery_protocol [udp | tcp] ]
[ prober <ip_address> ]
[ disabled_until [<time in seconds> [<by_whom>]]]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number ]
} ]
vs {
address <ip_address>:<port number>
[ translates to <ip_address:port> ]
[ ratio <number> ]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
} ]
[ depends_on {
<ip_address>:<port number> //example 10.10.10.10:443
} ]
[ disabled_until [<time in seconds> [<by_whom>]]]
}
[ vs address <ip_address>:<port number> [ translates to <ip_address:port> ]
}

Figure A.12 shows an example definition of a BIG-IP non-redundant system that is behind a firewall, and that has two virtual servers.

Figure A.12 Example syntax for defining a BIG-IP system


server {
type bigip
box 192.168.101.40
name "bigip-newyork"
iquery_protocol udp
autoconf enable
vs 192.168.101.50:80 translates to 10.0.0.50:80
vs 192.168.101.50:25 translates to 10.0.0.50:25
}
 

Syntax for the server statement (EDGE-FX system)

This server statement syntax applies to EDGE-FX systems only.

Figure A.13 Example syntax for defining an EDGE-FX system


server {
type edgefx
[ name <"edgefx_name"> ]
box <ip_address | "name">
[ autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ disabled_until [<time in seconds> [<by_whom>]]]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number ]
[ cpu_avail <number> ]
[ disk_avail <number> ]
[ mem_avail <number> ]
} ]
[ iquery_protocol [ udp | tcp ] ]
[ snmp { //required
agent edgefx
version 2
community <"public">
} ]
vs { //applicable only to EDGE-FX Cache
address <ip_address>:<port number>
[ translates to <ip_address:port> ]
[ ratio <number> ]
[ depends_on {
<ip_address>:<port number>
[ <ip_address>:<port number> ]
}
[ limit {
[ cpu_avail <number> ]
[ disk_avail <number> ]
[ mem_avail <number> ]
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
} ]
[ disabled_until [<time in seconds> [<by_whom>]]]
}
[ vs address <ip_address>:<port number> [ translates to <ip_address:port> ]]
}
 

Note


An EDGE-FX system can be either an EDGE-FX Cache or a GLOBAL-SITE Controller, however, only an EDGE-FX Cache can manage virtual servers.

 

Syntax for the server statement (host)

The following server statement syntax applies to hosts only. Note that the snmp sub-statement is necessary only if you want the big3d agent to use an SNMP agent on the host to collect additional metrics information. For more information on configuring these settings, see Working with SNMP on the 3-DNS Controller .

Figure A.14 Server statement syntax for defining a host


server {
type host
[ name <"host_name"> ]
box <ip_address | "name">
[ probe_protocol <tcp | icmp | dns_rev | dns_dot> ]
[ prober <ip_address> ]
[ port <port number> | service <"service name"> ]
[ autoconf <disable | enable_with_auto_delete_disabled | enable> ]
[ snmp {
agent <generic | ucd | solstice | ntserv | win2kserv | ciscold | ciscold2 | ciscold3 | foundry | arrowpoint | alteon | cacheflow | netapp>
port <port number>
community <"community string">
timeout <seconds>
retries <number>
version <SNMP version>
} ]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
[ cpu_avail <number> ]
[ disk_avail <number> ]
[ mem_avail <number> ]
} ]
[ disabled_until [<time in seconds> [<by_whom>]]]
vs {
address <ip_address>:<port number>
[ translates to <ip_address>:<port number> ]
[ probe_protocol <tcp | icmp | dns_rev | dns_dot> ]
[ ratio <number> ]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
[ cpu_avail <number> ]
[ disk_avail <number> ]
[ mem_avail <number> ]
} ]
[ depends_on {
<ip_address>:<port number> //example 10.10.10.10:443
} ]
[ disabled_until [<time in seconds> [<by_whom>]]]
}
[ vs address <ip_address>:<port number> [ translates to <ip_address>:<port number> ]
}
 

Figure A.15 shows an example definition of a load balancing host with two virtual servers.

Figure A.15 Example syntax for defining a host


server {
type host
name "host-tokyo"
box 192.168.104.40
probe_protocol icmp
snmp {
agent ucd
community "public"
version 1
}
vs {
address 192.168.104.50:25
limit {
kbytes_per_second 15000
}
}
vs {
address 192.168.104.50:80
limit {
kbytes_per_second 15000
}
}
}
 

Syntax for the server statement (router)

The following server statement syntax applies to routers only. When you define a router, you also define the router's links.

Figure A.16 Server statement syntax for defining a router


server {
type router
[ name "router_name" }
box <ip_address | "name">
[ port <port number> ]
snmp {
agent router
version <number>
community "public"
}
link {
name "link_name"
address <ip_address>
[ address <ip_address> ]
[ uplink_address <ip_address> ] //use only with SNMP
[ isp <"isp_name"> ]
[ duplex <yes | no> ]
[ cost {
ratio <number>
[ prepaid <number>Kb ]
[ rate {
//Up to $/Mb/Sec
<number>Kb <number>
[ <number>Kb <number> ]
} ]
} ]
[ in {
limit {
kbytes_per_sec <number>
}
} ]
[ out {
limit {
kbytes_per_sec <number>
}
} ]
[ total {
limit {
kbytes_per_sec <number>
}
} ]
}
[ link {
...
} ]
}
 

Figure A.17 shows an example definition of a router with one link.

Figure A.17 Example syntax for defining a router


server {
type router
name "my_router"
box "my_router"
port 0
duplex yes
link {
name "Link_1"
address 192.168.104.50
isp "My_ISP"
cost {
ratio 1
prepaid 0Kb
}
}
}
 

Definition of server sub-statements

The server statement supports the following sub-statements. Note that available sub-statements vary by server type.

Address information

The address information sub-statements specify the name, address, and type of each server. Depending on the type of server you are configuring, you may need to specify a probe protocol, prober IP address, and port number.

Table A.22 lists the parameters of the address information sub-statement.

 

Parameter

Description

type

Indicates whether the specified server is a 3-DNS Controller, BIG-IP system, EDGE-FX system, router, or host.

box

Specifies the IP address of the 3-DNS Controller, BIG-IP system, EDGE-FX system, router, or host. If you have a redundant system, you specify two box IP addresses, one for each unit. If you are defining a multi-homed system, then you specify only one IP address using this parameter.

name

Specifies the name of the 3-DNS Controller, BIG-IP system, EDGE-FX system, router, or host. You must enclose all names in quotation marks.

probe_protocol

Specifies the protocol method to use for probing: icmp, tcp, dns_rev, or dns_dot. Applies to hosts only.

prober

Specifies the IP address of the system probing the host or router. This IP address points to a BIG-IP system, a 3-DNS Controller, or an EDGE-FX system that runs the big3d agent. If you omit this parameter, the 3-DNS Controller uses the prober <ip_address> parameter defined in the globals statement. The big3d agent probes the host and virtual servers to verify whether the host or a particular virtual server is currently available to accept connections. Note that if you are configuring a prober for a router, the prober system (that is, the BIG-IP system or the 3-DNS Controller) must be in the same data center as the router.
This parameter applies to hosts and routers only.

port

Specifies the port used to probe the host or router if the probe_protocol parameter is set to TCP. This applies to hosts and routers only.

 

Auto-discovery for servers

Once you have added the address information for a server, you can enable the auto-discovery option (autoconf), and the 3-DNS Controller automatically gathers virtual server information (for servers). You can also enable the link_autoconf option to automatically gather link and router information for the server's data center. Note that if you have disabled the global variable autoconf, then these parameters in the server statement is inoperative. (See Auto-discovery , for more information.)

 

Parameter

Description

autoconf

Specifies whether the 3-DNS Controller initially gathers, and then maintains, the virtual server information for the server. There are three settings for this parameter: disable, enable_with_auto_delete_disabled, and enable. The default setting is disable.

link_autoconf

Specifies whether the 3-DNS Controller initially gathers, and then maintains, the router and link information for the server's data center. There are three settings for this parameter: disable, enable_with_auto_delete_disabled, and enable. The default setting is disable. Note that if you do not enable the autoconf parameter, the link_autoconf parameter remains disabled regardless of the setting you specify.

 

Note


In the Configuration utility, the list of self IPs reported by auto-discovery may not include all self IPs on the system. Auto-discovery reports only public or external addresses, and any associated address translation does not show up in the Configuration utility's self-IP list.

 

Note


In the Configuration utility, the auto-discovery options are labeled Discovery and Link Discovery.

 

Limit settings

Using the limit sub-statement, you can manage the physical and throughput resources of your BIG-IP systems, EDGE-FX systems, hosts, and their respective virtual servers. If you omit this sub-statement, the 3-DNS Controller does not use resource thresholds to monitor the availability of the BIG-IP systems, EDGE-FX systems, or hosts, and their respective virtual servers.

 

Parameter

Description

limits

Indicates the start of the limits definition. Applies to BIG-IP systems and their virtual servers, EDGE-FX systems and their virtual servers, and hosts and their virtual servers.

cpu_avail

Specifies, in percentage, how much CPU processing must remain available on the server or virtual server. The cpu_avail parameter applies to hosts and EDGE-FX systems only.

mem_avail

Specifies, in kilobytes, how much memory must remain available on the server or virtual server. The mem_avail parameter applies to hosts and EDGE-FX systems only.

disk_avail

Specifies, in kilobytes, how much disk space must remain available on the server or virtual server. The disk_avail parameter applies to hosts and EDGE-FX systems only.

kbytes_per_sec

Specifies, in kilobytes per second, the maximum allowable throughput rate for the server or virtual server.

pkts_per_sec

Specifies, in packets per second, the maximum allowable data transfer rate for the server or virtual server

current_conn

Specifies the maximum number of current connections for the server or virtual server.

 

SNMP settings

The snmp sub-statement is valid for hosts, EDGE-FX Caches, and routers only. This sub-statement instructs the big3d agent to use an SNMP agent on the host or the cache to collect additional metrics information.

If you need help configuring the SNMP agent on the EDGE-FX Cache, refer to the EDGE-FX Administrator Guide. If you need help configuring the SNMP agent on a host or router, refer to the documentation provided with that system.

 

Parameter

Description

snmp

Specifies the start of an SNMP definition.

agent

Specifies the SNMP agent type. If you omit this parameter for hosts, the big3d agent uses the generic SNMP agent.

port

Specifies the port the SNMP agent runs on.

community

Specifies the password for basic SNMP security and for grouping SNMP hosts. Enclose this string in quotation marks.

timeout

Specifies the amount of time (in seconds) for the timeout. The default is appropriate in most cases. If you are contacting a host through a very slow network, you can try increasing the timeout and retries values to improve performance. However, the problem with increasing these values is that a host that is down may hold up other SNMP responses for an excessive amount of time. Applies to hosts only.

retries

Specifies the number of times requests should be retried. The default is appropriate in most cases. If you are contacting a host through a very slow network, you can try increasing the timeout and retries values to improve performance. However, the problem with increasing these values is that a host that is down may hold up other SNMP responses for an excessive amount of time. Applies to hosts and routers only.

version

Specifies the SNMP agent version. Applies to hosts and routers only.

 

Virtual server definitions

Part of defining a BIG-IP system, EDGE-FX system, or host server type is defining the virtual servers that the server manages. You can then use the virtual servers that you define as part of the server statement in a wideip definition for load balancing.

 

Parameter

Description

vs

Indicates the start of a virtual server definition.

address

Specifies the IP address of the virtual server. Note that the virtual server's address must be listed first, before port or service values.

port

Specifies the virtual server's port number. You can add the port number, preceded by a colon, on the same line as the virtual server's address. You can also use the service name if it is a WKS (well known service) and you enclose it in quotation marks.

limit

Specifies resource thresholds for the virtual server. Note that if a virtual server reaches a limit, the virtual server is marked as unavailable for load balancing.

depends_on

Specifies the IP address and port of other virtual servers that must also be available for load balancing (up status) before the 3-DNS Controller uses this virtual server for load balancing.

probe_protocol

Specifies the protocol to use for probing this virtual server: ICMP or TCP.

translates to

Specifies that iQuery packets sent to the big3d agent include translated IP addresses (required if the packets must pass through a firewall). When you use this keyword, you must then include address and port/service information for the translated IP addresses.

 

 

Link definitions

When you define a router in the configuration, you also define at least one link for the router. Table A.27 lists the available parameters for a link definition.

 

Parameter

Definition

link

Indicates the start of a link definition.

name

Specifies the name of the link. Names must be enclosed in quotation marks.

address

Specifies the IP address associated with the link.

isp

Specifies the name of the Internet service provider (ISP) associated with the link. Note that this is an optional parameter.

duplex

Specifies whether the ISP uses the duplex billing method for your bandwidth usage. The default setting is yes.

uplink_address

Specifies the IP address on the router that is associated with the ISP. Note that the uplink IP address is used for SNMP metrics gathering only.

cost

Indicates the start of the link load balancing parameters.

ratio

Specifies the volume of link traffic that should use this link in comparison to other configured links. Note that links are load balanced either by using the ratio parameter, or by using the prepaid and incremental parameters.

prepaid

Specifies, in kilobits (Kb), the amount of bandwidth that is paid for each month, regardless of usage.

rate

Specifies, in kilobits (Kb), a segment of bandwidth and its associated cost.

in

Specifies a limit, in kilobits, on the inbound traffic on the link.

out

Specifies a limit, in kilobits, on the outbound traffic on the link.

total

Specifies a limit, in kilobits, on the total of inbound and outbound traffic on the link.

 

The sync_group statement

The sync_group statement defines the group of 3-DNS Controllers that synchronize their configuration settings and metrics data. You configure this statement in the wideip.conf file of the principal 3-DNS Controller.

Syntax for the sync_group statement

The sync_group statement uses the following syntax.

Figure A.18 Syntax for the sync_group statement


sync_group {
name <"name">
3dns <ip_address | "name">
[ 3dns <ip_address | "name"> ]
}
 

Note that the sync_group statement does not support location or contact sub-statements.

Figure A.19 shows an example of a valid sync_group statement.

Figure A.19 Example syntax for the sync_group statement


sync_group {
name "sync"
3dns 192.168.101.2 // New York - this is the principal system
3dns 192.168.102.2 // Los Angeles - this is a receiver system
3dns 192.168.103.2 // Madrid - this is also a receiver system
}
 

Definition of sync_group sub-statements

The sync_group sub-statements define the members of the sync group.

 

Parameter

Description

name

Specifies the name of this sync group.

3dns

Specifies the IP address or name of a 3-DNS Controller in the group. First list the IP address of the principal system. Then list all other 3-DNS Controllers, in the order that they should become a principal system, if the previously listed principal 3-DNS Controller fails. Note that there can only be one principal system in a sync group at any time.
If you are adding a redundant system to a sync group, you can specify any of the IP addresses for either unit in the sync_group statement.

 

 

The wideip statement

The wideip statement defines a wide IP. A wide IP maps a domain name to a load balancing mode and a set of virtual servers.

Syntax for the wideip statement

The wideip statement uses the following syntax.

Figure A.20 Syntax for the wideip statement


wideip {
address <ip_address>
port <port_number> | <"service name">
name <"domain_name">
[ alias <"alias_name"> ... ]
[ ttl <number> ]
[ persist < yes | no > ]
[ persist_ttl <number> ]
[ port_list <port_number> <port_number> ... ]
[ manual_resume < yes | no > ]
[ disabled_until [<time in seconds> [<by_whom>]]]
[ qos_coeff {
rtt <number>
hops <number>
completion_rate <number>
packet_rate <number>
vs_capacity <number>
topology <number>
kbps <number>
lcs <number>
} ]
[ pool_lbmode <rr | ratio | ga | random | topology>
[ ecv {
[ protocol <none | ftp | http | https>
[ file_name <"string"> ]
[ user <"string"> ]
[ password <"string"> ]
[ hashed_password <"string"> ]
[ scan_level <none | all | first> ]
[ transfer_amount <number> ]
[ connection_timeout <number> ]
[ transfer_timeout <number> ]
[ search_string <"string"> ]
} ]
pool {
name <"pool_name">
[ disabled_until [<time in seconds> [<by_whom>]]]
[ ttl <number> ]
[ ratio <number> ]
[ last_resort <yes | no> ]
[ check_static_depends < yes | no > ]
[ check_dynamic_depends < yes | no > ]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
[ cpu_avail <number> ]
[ disk_avail <number> ]
[ mem_avail <number> ]
} ]
[ type < A | CNAME > ]
[ cname <"canonical name"> ]

[ dynamic_ratio < yes | no > ]
[ rr_ldns < yes | no > ]
[ rr_ldns_limit <number> ]
preferred < completion_rate | ga | hops | leastconn | packet_rate | qos | random | ratio | return_to_dns | rr | rtt | topology | vs_capacity | null | static_persist | kbps | drop_packet | explicit_ip >
[ alternate < ga | null | random | ratio | return_to_dns | rr | topology | packet_rate | leastconn | vs_capacity | static_persist | drop_packet | explicit_ip > ]
[ fallback < completion_rate | ga | hops | leastconn | packet_rate | qos | random | ratio | return_to_dns | rr | rtt | topology | vs_capacity | null | static_persist | kbps | drop_packet | explicit_ip > ]
[ fallback_ip <ip_address> ]
vs { //CNAME pools do not require virtual servers
address <ip_address>:<port number>
[ ratio <number> ]
[ limit {
[ kbytes_per_sec <number> ]
[ pkts_per_sec <number> ]
[ current_conns <number> ]
} ]
[ depends_on {
<ip_address>:<port number>
[ <ip_address>:<port number> ]
}
[ disabled_until [<time in seconds> [<by_whom>]]]
}
[ vs {
address <ip_address>:<port number>
} ]
}
 

Figure A.21 shows an example of a valid wideip statement.

Figure A.21 Example syntax for the wideip statement


wideip {
address 192.168.102.50
service "http"
name "http.wip.siterequest.com"
alias "store.wip.siterequest.com"
alias "*.wip.siterequest.com"
alias "http.wip.domain.???"
pool_lbmode ratio
pool {
name "pool_1"
ratio 3
limit {
kbytes_per_second 10000
}
preferred rtt
alternate random
address 192.168.101.50
address 192.168.102.50
address 192.168.103.50
}
pool {
name "pool_2"
ratio 1
limit {
kbytes_per_second 10000
}
preferred ratio
vs {
address 192.168.104.50
ratio 2
}
vs {
address 192.168.105.50
ratio 1
}
}
}
 

Definition of wideip sub-statements

The wideip sub-statements define pools of virtual servers to be load balanced, and they assign load balancing characteristics, such as the load balancing mode, to each pool. When you have more than one pool configured in a wide IP, the controller first determines the pool that can best respond to a request, and then determines the specific virtual server within the pool that is the best virtual server to send as a response.

Address information

The address information sub-statements specify the IP address, name, and alias of the wide IP. They also specify the pool of virtual servers that the wide IP load balances.

 

Parameter

Description

address

Specifies a unique number, in the IP address format, to identify the wide IP.

port or service

Specifies the default port number or service name for the wide IP. You can use the service name if it is a well known service (WKS) and you enclose it in quotation marks.

name

Specifies the fully qualified domain name for the wide IP (for example, "www.wip.siterequest.com"). You must enclose all names in quotation marks. Note that you can use two wildcard characters, the asterisk ( * ) and the question mark ( ? ), in wide IP names. The asterisk ( * ) can represent multiple characters, and the question mark ( ? ) can represent a single character. Any of the following examples are valid for the name or alias parameter in a wideip statement: " www.*.com", "*.siterequest.com", "*.domain.???", and so on.

alias

Specifies an alternate name for the wide IP. The conventions for name also apply to alias. You can specify an unlimited number of alias names for each wide IP.

 

Load balancing sub-statements

The load balancing sub-statements denote the general load balancing attributes for all pools in the wideip.conf file.

 

Parameter

Description

ttl

Specifies the amount of time (in seconds) that the A record is used by the LDNS after resolving the wide IP. If you specify a pool TTL (pool_ttl), it overrides the TTL that you specify here. If you do not define either the TTL for the wide IP, or the TTL for the pool, then the controller uses the default TTL (default_ttl) that is specified in the globals statement.

persist

Specifies whether to maintain a persistent connection between an LDNS and a particular virtual server in the wide IP (rather than load-balancing the connection to any available virtual server). Note that the variables drain_requests and default_persist_ttl, in the globals statement, affect this setting. See page A-11 for more information.

persist_ttl

Specifies the number of seconds to maintain a persistent connection between an LDNS and a particular virtual server in this wide IP; this setting is valid only if you have configured the persist parameter.

port_list

Specifies a list of ports that must be available before the 3-DNS Controller can send connections to the specified address.

qos_coeff

Specifies the relative weighting for each load balancing method in calculating the Quality of Service mode. Before you adjust any QOS coefficients, you may want to review Chapter 8, Working with Quality of Service, in the 3-DNS Administrator Guide.

pool_lbmode

Specifies the load balancing mode to use to balance requests over all pools.

manual_resume

Specifies whether disabled virtual servers must be brought back into service manually when they are once again available for load balancing, rather than resuming availability automatically. The default setting is no, which indicates that disabled virtual servers resume availability automatically, once the virtual server has successfully responded to service check.

 

 

ECV sub-statements

The ECV sub-statements define the components of an extended content verification (ECV) monitor. Use the ECV sub-statement if you want the 3-DNS Controller to verify the presence of a file, or certain content, on the servers or virtual servers that host the content mapped to the wide IP, before the wide IP is considered up for load balancing.

 

Parameter

Description

ecv

Specifies an extended content verification (ECV) monitor for a virtual server in a pool.

protocol

Specifies the protocol to use for the ECV. You can use only http, https, or ftp.

file_name

Specifies the name of the object to retrieve.

user

Specifies the user name that you use to log in to the service.

password

Specifies the password that corresponds to the user account.

hashed_password

Specifies the password in encrypted characters.

scan_level

Specifies whether you want to scan just through the configured wide IP names, or through the wide IP names and aliases. Use only with the ecv sub-statement. Note that if you use wildcard characters in the wide IP name or alias parameters, those names and aliases are ignored by the ECV scans.

transfer_amount

Specifies the number of bytes to transfer.

transfer_timeout

Specifies the maximum amount of time the file information transfer should take.

connection_timeout

Specifies the maximum amount of time to connect to a service.

search_string

Specifies a regular expression that you want the ECV monitor to locate within the scanned file.

 

 

Pool sub-statements

The pool sub-statements define the virtual servers, and the load balancing modes within the pool, that the 3-DNS Controller uses to respond to DNS requests. Note that you can have one or more pools in a wide IP definition.

 

Parameter

Description

pool

Indicates the start of the pool definition for this wide IP. A pool is a set of virtual servers defined and owned by a BIG-IP system, an EDGE-FX system, or a host.

name

As part of a pool definition, defines the name of the pool. All names must be enclosed in quotation marks, and must be unique within the wideip statement.

ttl

Specifies the amount of time (in seconds) that the A record is used by the LDNS after resolving the wide IP. This is the TTL associated with the A record as specified by RFC 1035.

ratio

As part of a pool definition, ratio specifies the default weighting to use, with respect to other pool types, when the pool_lbmode is ratio.

last_resort

Specifies whether the 3-DNS Controller directs LDNS requests to this pool when no other pools in the wide IP successfully respond to the request. The default setting is no.

check_static_depends

Specifies whether the 3-DNS Controller checks availability before returning a virtual server in the pool. (Note that this parameter does not affect the status of the virtual server on the Virtual Server Statistics screen, in the Configuration utility, while the global variable of the same name does affect the status.)

check_dynamic_depends

Specifies whether the 3-DNS Controller checks paths before returning a virtual server in the pool.

type

Specifies the type of pool. The default is A. You can also use CNAME to redirect LDNS requests to another DNS server.

cname

Specifies the canonical name (cname) for the pool. Use this attribute with the pool type CNAME to redirect LDNS requests to a name server in another network, or to a CDN provider. Enclose the cname in quotation marks.

dynamic_ratio

Specifies whether the 3-DNS Controller treats QOS scores as ratios, and uses each server in proportion to the ratio determined by the QOS calculation. The default is no.

rr_ldns

Specifies whether the 3-DNS Controller returns a list of available virtual servers available for load balancing to a client and stores the list in the browser cache. The default is no, which specifies that the 3-DNS Controller returns only one A record per query.

rr_ldns_limit

The maximum number of A records to return when rr_ldns is set to yes. You can enter a value between 0 and 16. The default is 0, which specifies that the 3-DNS Controller returns the IP addresses of all (up to 16) available virtual servers.

preferred

Specifies the load balancing mode to use for the specified pool. Each acceptable value is described in the next table. The default is rr (Round Robin).

alternate

Specifies the load balancing mode to use for the specified pool if the preferred mode fails. The default is rr (Round Robin). Also see the description of default_alternate in Table A.14 .

fallback

Specifies the load balancing mode to use for the specified pool if the alternate mode fails. If the fallback mode fails, the 3-DNS Controller returns the request to DNS. The default is return_to_dns. Also see the description of default_fallback in Table A.14

fallback_ip

If you specify the explicit_ip load balancing mode for the alternate or fallback method, you must also specify the IP address that the controller sends back as the answer to a query. You can use this option to direct traffic to a disaster recovery site.

vs

Specifies the start of a pool virtual server definition. The vs sub-statement within the pool sub-statement must refer to a virtual server that you defined within a server statement. You can use the same virtual server in multiple pools, but not within the same pool.

address

Specifies specifies the IP address and port of the virtual server. The default port is the port of the wide IP, if you do not define a port as part of the address parameter.

ratio

Specifies the default weighting to use with respect to all virtual servers in this pool when the Ratio load balancing mode is configured. The default is 1.

limit

Specifies resource thresholds for the virtual server. Note that if a virtual server reaches a limit, the virtual server is marked as unavailable for load balancing. See Limit settings , for an explanation of the limits you can set.

depends_on

Specifies the IP address and port of other virtual servers that must also be available for load balancing (within this pool) before the 3-DNS Controller uses this virtual server for load balancing.

Load balancing modes

The load balancing sub-statements specify the load balancing modes to use for the wide IP in this order:

  • The 3-DNS Controller attempts to load balance requests using the preferred mode.

  • If the preferred mode fails, the 3-DNS Controller tries the alternate mode.

  • If the alternate mode fails, the 3-DNS Controller tries the fallback mode.

  • If the fallback mode fails, the controller tries the next pool. If there are no more pools available, the controller returns the request to DNS.
    DNS attempts to resolve the request based on the contents of the zone files.
     

As noted in Table A.33 , not all modes are valid for the alternate sub-statement. Also note that the alternate and fallback sub-statements accept two additional values, return_to_dns and null.

If you do not specify a load balancing mode within a pool, the wide IP uses the default load balancing mode defined in the globals statement. For information on the globals statement, see page A-6 .

 

Parameter

Description

completion_rate

Sends each new connection to the server that has the fewest number of dropped packets. Valid in a preferred or fallback sub-statement.

drop_packet

The controller drops the request if it cannot find a virtual server to send as a response. We recommend that you use this load balancing mode only in the fallback statement.

explicit_ip

Forwards the request to the IP address that you specify in the fallback_ip parameter, for example, the IP address for a disaster recovery site. We recommend that you use this load balancing mode only in the fallback statement.

global_availability (ga)

Distributes requests to a list of servers, always sending a new request to the first available server in the list.

hops

Sends each new request to the server that has the fewest number of network hops between the server and the client LDNS. Valid in a preferred or fallback sub-statement.

leastconn

Sends each new request to the server that currently hosts the fewest current connections.

null

Bypasses the current load balancing method and forces the 3-DNS Controller to use the next load balancing method or, if it has cycled through all load balancing sub-statements for the pool, to the next pool. Valid in an alternate or fallback sub-statement.

packet_rate

Sends each new request to the server that is managed by a BIG-IP system currently handling the least amount of network traffic (determined by the fewest number of packets currently processed by the system).

qos

Takes these performance factors into account when determining how to distribute request: hops, packet rate, completion rate, round trip time, kbps, link capacity, virtual server capacity, and topology. You can configure how much emphasis to place on each performance factor, or you can configure the Quality of Service mode to treat all factors as being equally important. Valid in a preferred or fallback sub-statement.

random

Distributes each new request to a server chosen at random from the pool's virtual servers.

ratio

Distributes new requests across servers in proportion to a user-defined ratio.

return_to_dns

Returns the resolution request to DNS, preventing the 3-DNS Controller from using the next load balancing method or using the next available pool.

rr

Distributes request evenly across all servers, passing each new connection to the next virtual server in line.

rtt

Sends each new request to the server that demonstrates the fastest round trip time between the server and the client LDNS. Valid in a preferred or fallback sub-statement.

topology

Distributes requests based on the proximity of an LDNS to a particular data center. You must also configure a topology statement before this load balancing mode works.

static_persist

Distributes requests to a virtual server based on IP address only. The 3-DNS Controller always returns the same virtual server to the same client, if the virtual server is available.

vs_capacity

Distributes requests based on the overall available capacity of the virtual server. Over time all virtual servers in the pool receive requests, but the virtual server with the most capacity receives the highest percentage of requests.

kbps

Distributes requests to the virtual server with the lowest kilobytes per second throughput rate.

 

Use the following equation to configure the Quality of Service load balancing mode:

A (1/packet rate) + B (1/rtt) + C (completion rate) +
D (topology) + E (1/hops) + F (1/kbps) + G (vs_capacity) +
H (link capacity score)

Note


For more information about load balancing modes, see Chapter 2, Load Balancing .

 


The topology statement

The topology statement implements a form of wide-area IP filtering, based on the geographic attributes of the DNS message. For example, you can specify that requesting LDNS clients in North America are allowed access to data centers in North America, but are not allowed access to data centers in South America.

By including a topology statement in your wideip.conf file, you can use the topology load balancing mode, both on its own and as part of the Quality of Service mode.

For more information on using the Topology load balancing mode, see Chapter 7, Configuring a Globally Distributed Network , and in the 3-DNS Administrator Guide, Chapter 8, Configuring a Content Delivery Network . For more information on topology in general, see Chapter 3, Topology , in this guide.

Syntax for the topology statement

Figure A.22 contains examples of the syntax used in the topology statement. Note that the object names are in quotation marks.

Figure A.22 Syntax for the topology statement


topology {
[ longest_match <yes | no> ]

// server ldns score
[ pool.<"pool_name"> cont.<"continent_name"> <number> ]
[ datacenter.<"dc_name"> !country.<"2-letter_code"> <number> ]
[ pool.<"pool_name"> user.<"region_name"> <number> ]
[ pool.<"pool_name"> isp."AOL" <number> ]
[ <vs_ip_address>/<netmask> <ldns_ip_address> <number> ]
}

Note


In a topology statement, use the not operator (!) to negate the meaning of an element, as shown in the example in Figure A.22 .

 

Definition of topology sub-statements

The topology sub-statements define the topology records that the 3-DNS Controller uses for Topology load balancing.

 

Parameter

Description

longest_match

In cases where there are topology records that match a particular IP address, longest_match specifies whether the 3-DNS Controller selects the record that is most specific, and thus has the longest match. When longest_match is set to yes, the topology records are sorted according to the longest match criteria.

<vs_ip_address>/<netmask>

Specifies a virtual server or group of virtual server, in CIDR format.

<ldns_ip_address>

Specifies a local DNS server.

pool.<"pool_name">

Specifies a wide-IP pool for load balancing. Note that pool names can be duplicated across wide IPs. The name must be in quotation marks. Use this for server in a topology record.

datacenter.<"datacenter_name">

Specifies a data center for load balancing. The name must be in quotation marks. Use this for server in a topology record.

continent.<"continent_name">

Specifies one of the continents for load balancing: "North America", "South America", "Europe", "Asia", "Australia", "Africa", or "Antarctica". The name must be in quotation marks. Use this for ldns in a topology record.

country.<"2-letter_code">

Specifies a country for load balancing using one of the two-letter country codes found in the file /var/3dns/include/net.ccdb. The name must be in quotation marks. Use this for ldns in a topology record.

isp."AOL"

For local DNS servers only, specifies the Internet service provider, America Online (AOL). The name must be in quotation marks.

user.<"region_name">

Specifies a user-defined region. The name must be in quotation marks.

!

The not ( ! ) operator negates the meaning of an element in a topology record.

score

Specifies the relative weight, or score, for the topology record, which allows the 3-DNS Controller to evaluate the best resolution option for a DNS request.

 

 

Access control lists

You can create access control lists (ACLs) that contain a group of LDNS IP addresses whose paths the 3-DNS Controller will not probe. The two types of ACLs are:

  • Prober

  • Hops

Syntax for the access control lists

The access control lists use the following syntax.

Figure A.23 Syntax for the access control lists


region_db ACL {
region {
name "probe_acl"
<ldns cidr>
<ldns cidr>
}
region {
name "hops_acl"
region "probe_acl"
<ldns cidr>
<ldns cidr>
}
}
 

Definition of the access control list sub-statements

The access control list sub-statements define local DNS servers that should not be probed.


 

Parameter

Description

region_db ACL

Specifies that ACLs are being created.

region

Specifies groups of CIDRs by probe type.

name

Specifies the name of the ACL.

probe_acl

The 3-DNS Controller restricts any big3d agent from probing the defined group of local DNS servers.

hops_acl

The 3-DNS Controller restricts any big3d agent from tracerouting the defined group of local DNS servers

 

Note


For more information on ACLs, refer to Working with access control lists, .

 


Working with comments

You can insert comments anywhere you would otherwise see white space in the 3-DNS configuration file.


Syntax

Note that the comment syntax depends on the environment in which you use the configuration file.

Figure A.24 Syntax for comments


/* This is a 3-DNS comment as in C */
// This is a 3-DNS comment as in C++
# This is a 3-DNS comment as in common UNIX shells and Perl
 

Definition and usage

The format for comments varies by programming language; each format is described below. To avoid comment nesting problems, we recommend that you use only one comment style in your wideip.conf file. However, all styles may be used in a single wideip.conf file.

C style comments

C style comments start with the slash character, followed by the asterisk character (/*), and end with the asterisk character, followed with the slash character (*/). Because the comment is completely delimited with these characters, a comment can span multiple lines.

Note that C style comments cannot be nested. For example, the following syntax is not valid because the entire comment ends with the first */.

Figure A.25 Syntax for C style comments


/* This is the start of a comment.
This is still part of the comment.
/* This is an incorrect attempt to nest a comment. */
This is no longer in any comment. */
 

C++ style comments

C++ style comments start with two slash characters (//) and are no longer than one line in length. To have one logical comment span multiple lines, each line must start with the // pair.

Figure A.26 Syntax for C++ style comments


// This is the start of a comment. The next line
// is a new comment line, even though it is
// logically part of the previous comment.
 

Shell style comments

Shell style (also known as Perl style) comments start with the number character ( # ) and are no longer than one line in length.

Figure A.27 Syntax for shell style comments


# This is the start of a comment. The next line
# is a new comment line, even though it is logically
# part of the previous comment.