Applies To:
Show Versions
3-DNS Controller versions 1.x - 4.x
- 1.0.6
C
The wideip.conf File
Overview
The 3DNS Controller configuration file is called /etc/wideip.conf. It consists of two types of information: statements and comments.
You must edit the 3DNS Controller configuration file to suit your network. Use the sample configuration file /etc/wideip.conf.samp, which is included later in this chapter, as a guide. The /etc/wideip.conf file describes the BIG/ip Controllers, other host machines, and wide IPs that are managed by the 3DNS Controllers.
At the minimum, your wideip.conf file must contain the following:
- At least one virtual server, which can be defined in either a bigip or host statement
- A wideip statement
Refer to Chapter 7, Statements and Comments , for information on valid statements and sub-statements, as well as for the proper syntax.
Working with static and dynamic wideip.conf files
You have the option of maintaining your original wideip.conf file separately from a dynamic wideip.conf file that includes the most recent path and local DNS information.
The 3DNS Maintenance menu includes two commands to support this feature: Use Dynamic wideip.conf, and Use Static wideip.conf:
- Use Dynamic wideip.conf
Renames the existing /etc/wideip.conf file to /var/3dns/etc/wideip.conf.ORIG if it is found to be in the Initial state, and it also creates a link from /etc/wideip.conf to /var/3dns/etc/wideip.conf.dynamic. - Use Static wideip.conf
Renames the existing /etc/wideip.conf file to /var/3dns/etc/wideip.conf.ORIG if it is found to be in the Initial state, and it also creates a link from /etc/wideip.conf to /var/3dns/etc/wideip.conf.static.You can manually edit the /etc/wideip.conf file in a text editor and the correct file is modified in preparation for a restart.
Note: You must restart the system before implementing any other dynamic commands to avoid losing changes to the edited wideip.conf. To avoid any possible loss of any changes, use the Edit 3DNS Configuration command from the menu or the edit_wideip script.
To open the /etc/wideip.conf file
- From the command prompt, change to the /etc directory by typing:
cd /etc
- Use a text editor such as vi or pico to open the wideip.conf file. For example, if you use vi, type the following:
vi wideip.conf
Example: 3DNS Controller configuration file
The following is an example of a 3DNS Controller configuration file. Note that very few global parameters are listed. You do not need to include each global parameter; you should include only those parameters for which you want to specify a value other than the default.
Note that this sample file contains examples of common configurations and each load balancing mode. Each load balancing example is further described in Example syntax for global availability , starting on page 5-30 .
#
# Sample /etc/wideip.conf
#
# Related files are:
# /etc/named.conf
# /var/namedb/db.wip.domain.com
#
globals {
prober 192.168.101.2 // Default prober is New York 3DNS
encryption yes // Encrypt iQuery
paths_noclobber yes // Don't overwrite metrics with
// zeroed results
path_ttl 2400 // Extend the life of path metrics
rtt_probe_dynamic yes // Switch to tcp probing if icmp fails
multiplex_iq yes // Source port is the same as
// destination port for iQuery
use_alternate_iq_port yes // Use IANA registered port for iQuery
}
// The New York BIG/ip is behind a firewall and the virtual servers
// need to be translated
bigip {
// New York
address 192.168.101.40
vs {
address 192.168.101.50
port 80
translate {
address 10.0.0.50
port 80
}
}
vs {
address 192.168.101.50
port 25
translate {
address 10.0.0.50
port 25
}
}
vs {
address 192.168.101.60
port 80
translate {
address 10.0.0.60
port 80
}
}
vs {
address 192.168.101.60
port 21
translate {
address 10.0.0.60
port 21
}
}
vs {
address 192.168.101.70
port 80
translate {
address 10.0.0.70
port 80
}
}
vs {
address 192.168.101.70
port 443
translate {
address 10.0.0.70
port 443
}
}
}
bigip {
// Los Angeles
address 192.168.102.40
vs {
address 192.168.102.50:80
}
vs {
address 192.168.102.50:25
}
vs {
address 192.168.102.60:80
}
vs {
address 192.168.102.60:443
}
vs {
address 192.168.102.60:21
}
vs {
address 192.168.102.70:80
}
}
bigip {
// Tokyo
address 192.168.103.40
vs {
address 192.168.103.50:80
}
vs {
address 192.168.103.50:25
}
vs {
address 192.168.103.60:80
}
vs {
address 192.168.103.60:21
}
vs {
address 192.168.103.70:80
}
}
host {
// Tokyo
address 192.168.104.40
vs {
address 192.168.104.50:80
probe_protocol tcp
}
vs {
address 192.168.104.50:443
probe_protocol tcp
}
vs {
address 192.168.104.50:25
probe_protocol tcp
}
}
host {
// New York
address 192.168.105.40
port 80
probe_protocol tcp
prober 192.168.103.40 // Use the prober in Tokyo
vs {
address 192.168.105.50:80
probe_protocol tcp
}
vs {
address 192.168.105.50:25
probe_protocol tcp
}
vs {
address 192.168.105.60:80
probe_protocol icmp
}
vs {
address 192.168.105.60:443
probe_protocol icmp
}
}
//
wideip {
address 192.168.101.50
service "http"
name "www.wip.domain.com"
qos_coeff {
rtt 21
completion_rate 7
packet_rate 5
topology 1
}
pool {
name "pool_1"
type vsb
ratio 2
preferred qos
address 192.168.101.50 ratio 2
address 192.168.102.50 ratio 1
address 192.168.103.50 ratio 1
}
pool {
name "pool_2"
type vsb
ratio 1
preferred rr
address 192.168.102.60 ratio 2
address 192.168.103.60 ratio 1
}
}
// Global availability
wideip {
address 192.168.101.60
port 80
name "cgi.wip.domain.com"
pool {
name "mypool"
type vsb
preferred ga
address 192.168.101.60 // New York
address 192.168.102.60 // Los Angeles
address 192.168.103.60 // Tokyo
}
}
// Round trip time load balancing with topology as alternate load
// balancing (see topology below)
wideip {
address 192.168.103.60
port 80
name "ntp.wip.domain.com"
pool {
name "poolA"
type vsb
preferred rtt
alternate topology
address 192.168.101.60 // New York
address 192.168.102.60 // Los Angeles
address 192.168.103.60 // Tokyo
}
}
// Least connections with ratio as an alternate
wideip {
address 192.168.102.60
service "ftp"
name "ftp.wip.domain.com"
pool {
name "main_pool"
type vsb
preferred leastconn
alternate ratio
address 192.168.101.60 ratio 2 // New York
address 192.168.102.60 ratio 4 // Los Angeles
address 192.168.103.60 ratio 1 // Tokyo
}
}
// Round robin pool load balancing between bigip and hosts
// This site runs a catalog and shopping cart and only wishes
// to send client to a datacenter if services are up on both
// ports 80 and 443.
wideip {
address 192.168.101.70
port 80 // http
port_list 80 443 // e-commerce
name "ssl.wip.domain.com"
pool_lbmode rr
pool {
name "bigip_pool"
type vsb
ratio 2
preferred qos
alternate ratio
address 192.168.101.70 ratio 7
address 192.168.102.60 ratio 2
}
pool {
name "host_pool"
type vsh
ratio 1
preferred ratio
address 192.168.104.50 ratio 2
address 192.168.105.60 ratio 1
}
}
// Mixing hosts and BIG/ip virtual servers
// Ratio pool load balancing between bigip and hosts
wideip {
address 192.168.102.50
service "smtp"
name "mx.wip.domain.com"
pool_lbmode ratio
pool {
name "pool_1"
type vsb
ratio 3
preferred rtt
alternate random
address 192.168.101.50
address 192.168.102.50
address 192.168.103.50
}
pool {
name "pool_2"
type vsh
ratio 1
preferred ratio
address 192.168.104.50 ratio 2
address 192.168.105.50 ratio 1
}
}
// Global availability pool load balancing between bigip
// datacenters with specialized use of preferred, alternate, and
// fallback load balancing methods null and return_to_dns.
wideip {
address 192.168.102.70
port 80
name "www.domain.com"
alias "home.domain.com"
ttl 120
pool_lbmode ga
pool {
name "New York"
type vsb
ratio 2
preferred leastconn
alternate null
fallback null
address 192.168.101.50 ratio 2
address 192.168.101.60 ratio 1
address 192.168.101.70 ratio 1
}
pool {
name "Los Angeles"
type vsb
ratio 1
preferred leastconn
alternate null
fallback null
address 192.168.102.50 ratio 3
address 192.168.102.60 ratio 2
address 192.168.102.70 ratio 1
}
pool {
name "Tokyo"
type vsb
ratio 1
preferred leastconn
alternate null
fallback return_to_dns
address 192.168.103.50 ratio 3
address 192.168.103.60 ratio 2
address 192.168.103.70 ratio 1
}
}
// Topological distribution and access control
topology {
acl_threshold 1
limit_probes yes
longest_match yes
// Server LDNS Score
///////////////////////////
// North American LDNS's:
// 198.0.0.0/8
// 199.0.0.0/8
// North America Priority List
//
// 1. New York
// 2. L.A.
// 3. Tokyo
// New York
192.168.101.0/24 198.0.0.0/8 30
192.168.101.0/24 199.0.0.0/8 30
// Los Angeles
192.168.102.0/24 198.0.0.0/8 20
192.168.102.0/24 199.0.0.0/8 20
// Tokyo
192.168.103.0/24 198.0.0.0/8 10
192.168.103.0/24 199.0.0.0/8 10
///////////////////////////
// South American LDNS's:
// 200.0.0.0/8
// 201.0.0.0/8
// South America Priority List
//
// 1. Tokyo
// 2. L.A.
// (New York excluded by acl_threshold)
// Tokyo
192.168.103.0/24 200.0.0.0/8 30
192.168.103.0/24 201.0.0.0/8 30
// Los Angeles
192.168.102.0/24 200.0.0.0/8 20
192.168.102.0/24 201.0.0.0/8 20
// New York
192.168.101.0/24 200.0.0.0/8 0
192.168.101.0/24 201.0.0.0/8 0
///////////////////////////
// Wildcard List Record
//
// By default, if a list record is not found in the
// topology map for an LDNS, the score is assumed to
// be 0. By including the following "wildcard" list
// record, all other LDNS's (not North or South America
// as specified above) are assigned a score of 1 so
// the acl_threshold does not indicate that the
// virtual servers are down.
0.0.0.0/0 0.0.0.0/0 1
}
Understanding cur_ values
You may notice several cur_ values in your wideip.conf file. The purpose of cur_ values is to pre-load the database with previously collected statistics and metrics. The collected statistics and metrics are useful if you want to quickly restart a 3DNS Controller without a temporary loss of intelligence.
Do not edit these statements unless you are a very experienced 3DNS Controller user, or you are instructed to do so by F5 technical support.
How cur_ values are used
To understand how cur_ values are used, you must first have a basic understanding of the 3DNS database.
The 3DNS database contains collected statistics and metrics. This collected information, and the specified load balancing mode, is used to determine how to distribute client requests. At each interval specified in the globals sync_db_interval sub-statement, the database is updated with a new configuration dump file, called /var/run/wideip.out. The wideip.out file contains the most recent statistics, including cur_ values.
If both a cur_ value and an existing statistic or metric refer to the same thing, the cur_ value overwrites the existing information when named reads the /var/run/wideip.in file as part of the database synchronization that a data copier performs each sync_db_interval seconds.
You may notice cur_ values in bigip, host, vs, path, or wideip definitions. Examples for each type of definition follow.
Example: bigip definition
bigip {
// New York BIG/ip Controller
address 192.168.101.40
cur_packet_rate 139
cur_ok 1
[virtual server definitions]
}
In the above example, the cur_ values indicate the following.
Parameter | Description |
cur_packet_rate | The number of packets per second sent during the last sample period. |
cur_ok | The state of the specified BIG/ip Controller. The options are: 1 (Up), 2 (Down), 3 (Waiting), 4 (Alert), and 5 (Panic). |
Example: host definition
host {
// New York host
address 192.168.105.40
probe_protocol icmp
prober 192.168.103.40 // Use the prober in Tokyo
cur_ok 2
[virtual server definitions]
}
In the preceding example, the cur_ value indicates the following:
Parameter | Description |
cur_ok | The state of the specified host machine. The options are: 1 (Up) and 2 (Down). |
Example: vs definition
vs {
address 192.168.102.50:80
cur_serv_cnt 1
cur_connections 0
cur_picks 39
cur_refreshes 783
}
In the above example, the cur_ values indicate the following:
Parameter | Description |
cur_nodes_up | The number of active servers serving the specified virtual server. |
cur_connections | The number of connections to the specified virtual server. |
cur_picks | The number of times the specified virtual server was returned by the 3DNS Controller. |
cur_refreshes | The number of times the server and connection counts were refreshed with new data from a BIG/ip Controller. |
Example: path definition
path {
address 10.25.50.100 // LDNS
cur_rtt 102382
cur_completion_rate 10000
cur_picks 239
cur_accesses 302
}
In the above example, the cur_ values indicate the following:
Parameter | Description |
cur_rtt | The round trip time (RTT), which is a calculation of the time (in microseconds) that the specified machine takes to respond to a probe issued by the 3DNS Controller. |
cur_completion_rate | The percentage of completed packets versus lost packets, using this equation: [1 - (packets received / sent)] X 10000. |
cur_picks | The number of times this path's data resulted in the corresponding BIG/ip Controller's virtual server being chosen for a connection. This only applies if a wide IP is doing dynamic load balancing (using path data). |
cur_accesses | The number of times this path was considered when performing dynamic load balancing. |
Example: wide IP definition
wideip {
address 192.168.102.70
name "www.domain.com"
port 80
cur_preferred 143982
cur_alternate 108090
cur_fallback 130094
cur_returned_to_dns 23872
[virtual server definitions]
}
In the above example, the cur_ values indicate the following:
Parameter | Description |
cur_preferred | The number of times the specified wide IP was resolved by the preferred load balancing mode. |
cur_alternate | The number of times the specified wide IP was resolved by the alternate load balancing mode. |
cur_fallback | The number of times the specified wide IP was resolved by the fallback load balancing mode. |
cur_returned_to_dns | The number of times the specified wide IP couldn't find a suitable virtual server to return using the preferred, alternate, or fallback load balancing modes. In this situation, the 3DNS Controller returns the wide IP key (fallback address) as specified in the zone file. |
Note: To find out how many times the 3DNS Controller received resolution requests for this wide IP, add the values for cur_preferred, cur_alternate, and cur_fallback.