GlobalLB

Introduced : BIG-IP_v9.0
The GlobalLB module contains the Global Load Balancing interfaces that enable you to work with the components of a global load balancer system, such as data centers, servers, virtual servers, wide IPs, pools …. You can also use the interfaces in this module to work with topology attributes and global variables.

Interfaces

Interface Description
Application The Application interface enables you to work with applications running within Wide IPs.
DNSSECKey The DNSSECKey interface manages the cryptographic keys used for securing DNS information, i.e., DNSSEC. The keys managed by this interface can be used to sign DNS record groups and the keys themselves. Technically, there is not a single key for each key object. This key is re-created on a regular schedule, which can be controlled via this interface. Each re-generated key is considered a new “generation” - a term used more in its genealogical sense than a creation sense. A single key generation can have its lifetime changed. Thus when using this interface, be careful to distinguish the attributes which apply to this whole process vs those that apply to a single key generation. Once a key generation is created, it is fully active for the “rollover period”. At the end of that period, the next generation&aposs key is created and both keys are in use. Once the first key reaches the end of its “expiration period”, it is no longer handed out, the generation is deleted, and only the second key is in use. This process continues ad infinitum. It is important to note that these keys do not affect the processing by their mere existence. To take effect, they must be assigned to a DNSSEC zone (See the DNSSECZone interface).
DNSSECZone The DNSSECZone interface manages the zones in which securing DNS information, i.e., DNSSEC, is active. When a zone is active, its DNS record groups are digitally signed, the DNS record names are hashed, and keys sent to upstream DNS servers are digitally signed. A DNSSEC zone can contain any number of DNSSEC keys, and a single DNSSEC key can be used in more than one DNSSEC zone. Note that a large number of DNSSEC keys in a single DNSSEC zone can affect the responsiveness to DNS requests. Note that the term “zone” in this interface is not necessarily “zone” in a DNS sense. See the DNSSECKey interface for managing the keys themselves.
DataCenter The DataCenter interface enables you to manipulate the data center attributes for a Global TM. For example, use the DataCenter interface to add or remove a data center, transfer server assignments from one data center to another, get and set data center attributes, remove a server from a data center, and so on.
Globals The Globals interface enables you to set and get global variables.
Link The Link interface enables you to work with links within a data center.
Monitor The Monitor interface enables you to manipulate a load balancer&aposs monitor templates and instances. For example, use the Monitor interface to enable or disable a monitor instance, or to create a monitor template, or to get and set different attributes of a monitor template.
Pool *IMPORTANT* Due to changing pool key definitions (pools are now identified by a name and a query type), this entire interface is deprecated as of BIG-IP_v12.0.0. Please use the GlobalLB::PoolV2 interface to work with pools; continuing to use the deprecated GlobalLB::Pool interface against BIG-IP_v12.0.0 and later versions can result in unintended configurations and behavior. The Pool interface enables you to work with pools and their attributes.
PoolMember *IMPORTANT* Due to changing virtual server keys, this full interface is deprecated (as of 11.0.0). Its functionality has been moved to the GlobalLB::Pool interface. However, because the GlobalLB::Pool interface is deprecated (as of BIG-IP_v12.0.0), please use the GlobalLB::PoolV2 interface to work with pool members. The PoolMember interface enables you to work with the pool members and their settings, and statistics.
PoolV2 The PoolV2 interface enables you to work with typed pools and their attributes. Typed pools (like A, AAAA, CNAME, MX, SRV, and NAPTR) may contain members of the same type. This allows for greater flexibility and more granular control over the responses that GTM sends. Previously, in the GlobalLB::Pool interface, members were only virtual servers. Now, in the PoolV2 interface, members can be virtual servers (for type A or AAAA type pools) or non-terminal type members (for type CNAME, MX, SRV, or NAPTR type pools). Non-terminal members are specified with a required dname and some optional settings that depend upon the type of non-terminal member. Except in the case of a CNAME member with the static-target setting enabled, all non-terminal members are backed by a corresponding wide IP. The dname of the non-terminal member is non-folderized and must be a fully-qualified domain name. The dname of the non-terminal member must match (exactly or via wide IP wildcard match) the name of a corresponding wide IP (without the folder name), except in the case mentioned above where the non-terminal is a CNAME type member with static-target enabled.
ProberPool The ProberPool interface enables you to create and maintain a prober pool, which contains a set of members which will be used to monitor the Server&aposs resources (typically its virtual servers). The members named in the prober pool should be BIG-IP systems, set up as Servers of type bigip-standalone or bigip-redundant. If a Server doesn&apost name a prober pool, the Server will use the prober pool attached to the server&aposs data center, if that has been assigned. The probing members named in the prober pool will be chosen according to the load balancing method selected for the prober pool (e.g., round robin or global availability).
Region The Region interface enables you to work with user-defined region definitions.
Rule The Rule interface enables you to manipulate a Global load balancer&aposs rules. For example, use the Rule interface to get a list of all rules, create rules, delete rules, modify rules, and query rules.
Server The Server interface enables you to work with servers within a data center.
Topology The Topology interface enables you to work with topology attributes. For example, you can create and delete a topology. You can also use the Topology interface to add virtual server entries to, or remove virtual server entries from, a topology.
VirtualServer *IMPORTANT* This interface is deprecated (as of 11.0.0). Please use GlobalLB::VirtualServerV2 in its stead. This interface will still work with some caveats. If the system holds a configuration rolled forward from earlier versions, there should be almost no problems using this interface. The only exception is that set_server will almost always fail, as the server name can no longer be changed after creating a virtual server. Otherwise, be aware that a VirtualServerDefinition value no longer uniquely identifies a virtual server. Using this interface with a configuration with more than one virtual server having the same VirtualServerDefinition values yields unpredictable results. The VirtualServer interface enables you to work with virtual servers associated with a server.
VirtualServerV2 The VirtualServer interface enables you to work with virtual servers associated with a server.
WideIP *IMPORTANT* Due to changing wide IP key definitions (wide IPs are now identified by a name and a query type), this full interface is deprecated as of BIG-IP_v12.0.0. Please use the GlobalLB::WideIPV2 interface to work with wide IPs; continuing to use the deprecated GlobalLB::WideIP interface against BIG-IP_v12.0.0 or later versions can result in unintended configurations and behavior. The WideIP interface enables you to work with wide IPs, as well as with the pools and the virtual servers that make them up. For example, use the WideIP interface to get a list of wide IPs, to add a wide IP, or to remove a wide IP.
WideIPV2 The WideIPV2 interface enables you to work with typed wide IPs and their settings, along with their typed wide IP pools, wide IP aliases and wide IP rules. This interface allows for greater flexibility and more granular control over the responses that GTM sends. Typed wide IPs (like A, AAAA, CNAME, MX, SRV, and NAPTR) may contain pools only of the same type. There is one exception to this rule, where CNAME pools can actually be added to a wide IP of any type, not just CNAME type wide IPs. Typed wide IPs can also be used to back non-terminal pool members. While previously in the GlobalLB::Pool interface, members were only virtual servers, in the PoolV2 interface we also have non-terminal type members which must correspond (exactly or via wide IP wildcard match) to an existing wide IP of the appropriate type. For the specifics of which type of wide IP is allowed to back which type of non-terminal pool member, please see the GlobalLB::PoolV2 documentation.

Structures

Structure

Description

MetricLimit

A struct that uniquely identifies a metric limit.

MonitorIPPort

A struct that describes a monitored member definition, used in the destination address:port of the monitor template.

MonitorInstance

A struct that describes a monitor instance.

MonitorInstanceState

A struct that describes a monitor instance state.

MonitorRule

This structure is deprecated. Please use MonitorRuleV2 in its stead.

MonitorRuleV2

A struct that specifies a monitor rule.

PoolID

A struct that uniquely identifies a GTM pool.

ProberSelection

A struct that describes the selection of probers for monitoring. Note that a prober pool must be specified if the prober_preference or prober_fallback selection type requires a pool. A pool cannot be specified unless either the prober_preference or prober_fallback selection type requires a pool.

VirtualServerDefinition

This structure is deprecated. Please use VirtualServerID in its stead. A struct that uniquely identifies a virtual server in GTM.

VirtualServerID

A structure that uniquely identifies a virtual server in GTM. Note that this is a renamed version of the deprecated VirtualServerDefinition structure. Note also that the name field in VirtualServerID may contain what looks like a folder in the name (e.g., it may have content like “/Common/…”), but this field is unaffected by the ReturnedPath Session variable. Such names potentially refer to objects that are not on the local BIG-IP system and which may have a different folder scheme than the local system; the name is just a string.

WideIPID

A struct that uniquely identifies a wide IP.


Enumerations

Enumeration Description
AddressType A list of address types used to differentiate various node definitions.
AutoConfigurationState A list of auto configuration states.
AvailabilityDependency A list of availability dependencies.
DNSReturnCode A list of DNS response return codes.
DomainNameCheckMode A list of domain name check modes.
GTMQueryType An enumeration of GTM query types.
HardwareSecurityModuleType An enumeration of hardware security module types.
LBDecisionLogVerbosity An enum describing load balancing log verbosity. If a sequence of LBDecisionLogVerbosity contains duplicates (eg. [&aposLB_DECISION_PM_SELECTION&apos, &aposLB_DECISION_PM_SELECTION&apos]), they will be deduplicated. Note: If you set LB_DECISION_LOG_NONE or LB_DECISION_LOG_ALL, that must be the only specification.
LBMethod A list of load balancing modes.
LDNSProbeProtocol A list of LDNS probe protocol types.
LinkWeightType A list of link weighting types.
MetricLimitType A list of Metric Limit types.
MonitorAssociationRemovalRule A list of rules on how the monitor association is removed.
MonitorInstanceStateType A list of monitor instance states.
MonitorRuleType An enumeration of different monitor rule types.
ProberSelectionType A list of prober selection options.
RegionDBType A list of region database types.
RegionType A list of topology endpoint types.
ServerType A list of server types.

Exceptions

Exception Description

Constants

Constant Type Value Description

Aliases

Alias Type Description
AddressTypeSequence AddressType [] A sequence of address types.
AutoConfigurationStateSequence AutoConfigurationState [] A sequence of AutoConfigurationState&aposs.
AvailabilityDependencySequence AvailabilityDependency [] A sequence of AvailabilityDependency.
DNSReturnCodeSequence DNSReturnCode [] A sequence of DNS response return codes.
DomainNameCheckModeSequence DomainNameCheckMode [] A sequence of domain name check modes.
GTMQueryTypeSequence GTMQueryType [] A sequence of GTM query types.
GTMQueryTypeSequenceSequence GTMQueryType [] [] A sequence of GTM query type sequences.
HardwareSecurityModuleTypeSequence HardwareSecurityModuleType [] A sequence of hardware security module types.
LBDecisionLogVerbositySequence LBDecisionLogVerbosity [] A sequence of LBDecisionLogVerbosity enums.
LBDecisionLogVerbositySequenceSequence LBDecisionLogVerbosity [] [] A sequence of sequence of LBDecisionLogVerbosity enums.
LBMethodSequence LBMethod [] A sequence of LB methods.
LDNSProbeProtocolSequence LDNSProbeProtocol [] A sequence of LDNSProbeProtocol.
LinkWeightTypeSequence LinkWeightType [] A sequence of link weighting types.
MetricLimitSequence MetricLimit [] A sequence of metric limits.
MetricLimitSequenceSequence MetricLimit [] [] A sequence of metric limit sequences.
MetricLimitSequenceSequenceSequence MetricLimit [] [] [] A sequence of sequence of metric limit sequences.
MonitorIPPortSequence MonitorIPPort [] A sequence of MonitorIPPort&aposs.
MonitorInstanceSequence MonitorInstance [] A sequence of MonitorInstance&aposs.
MonitorInstanceStateSequence MonitorInstanceState [] A sequence of MonitorInstanceState&aposs.
MonitorInstanceStateSequenceSequence MonitorInstanceState [] [] A sequence of sequence of MonitorInstanceState&aposs.
MonitorInstanceStateTypeSequence MonitorInstanceStateType [] A sequence of instance state types.
MonitorRuleSequence MonitorRule [] A sequence of MonitorRule entries.
MonitorRuleSequenceSequence MonitorRule [] [] A sequence of MonitorRule entry sequences
MonitorRuleV2Sequence MonitorRuleV2 [] A sequence of MonitorRuleV2 entries.
MonitorRuleV2SequenceSequence MonitorRuleV2 [] [] A sequence of MonitorRuleV2 entry sequences
PoolIDSequence PoolID [] A sequence of pool ids.
PoolIDSequenceSequence PoolID [] [] A sequence of pool id sequences.
ProberSelectionSequence ProberSelection [] A sequence of prober selections.
ProberSelectionTypeSequence ProberSelectionType [] A sequence of prober selection types.
RegionDBTypeSequence RegionDBType [] A sequence of region database types.
RegionTypeSequence RegionType [] A sequence of endpoint types.
ServerTypeSequence ServerType [] A sequence of ServerType.
VirtualServerIDSequence VirtualServerID [] A sequence of virtual server identifiers.
VirtualServerIDSequenceSequence VirtualServerID [] [] A sequence of virtual server identifier sequences.
VirtualServerIDSequenceSequenceSequence VirtualServerID [] [] [] A sequence of virtual server identifier sequence sequences.
VirtualServerSequence VirtualServerDefinition [] A sequence of virtual server definitions.
VirtualServerSequenceSequence VirtualServerDefinition [] [] A alias for a sequence of virtual server definitions.
WideIPIDSequence WideIPID [] A sequence of wide IP ids.
WideIPIDSequenceSequence WideIPID [] [] A sequence of wide IP id sequences.

See Also

Warning

The links to the sample code below are remnants of the old DevCentral wiki and will result in a 404 error. For best results, please copy the link text and search the codeshare directly on DevCentral.

Sample Code


The BIG-IP API Reference documentation contains community-contributed content. F5 does not monitor or control community code contributions. We make no guarantees or warranties regarding the available code, and it may contain errors, defects, bugs, inaccuracies, or security vulnerabilities. Your access to and use of any code available in the BIG-IP API reference guides is solely at your own risk.