TRA VIP Reference

The Traffic Routing Agent (TRA) parameters define the virtual IPs (VIPs) in the tra_config_network_topology.xml file. The information below describes the configuration parameters in those files.

TRA Node VIP Elements

The TRA VIPs are defined by the parameters listed below. These VIPs are used by (assigned to) the virtual servers (VSs). VIPs are created on the active TRA node.

  • name — A descriptive name for the VIP.
  • if-Name — The name of the network interface.
  • Use one of these options to identify the VIP address:
    • address — A static IP address to be used as the VIP.
    • domain_name[4|6] — A DNS name to used as the VIP. The DNS lookup is conducted every time before the connection to the given node is established. You can change this behavior by using the vsopt tcp-dn-dns-resolution-refresh[0|1] parameter. These are the options:
      • domain_name — Selects the first IPv4 or IPv6 name in the DNS lookup table.
      • domain_name4 — Selects the first IPv4 entry in the DNS lookup table.
      • domain_name6 — Selects the first IPv6 entry in the DNS lookup table.
  • fqdn — The fully qualified domain name (FQDN). When set, this string identifies the VIP. When this parameter is not set, the value of the preferred-fqdn virtual server (VS) element value is used. If preferred-fqdn is not set, the value of the fqdn VIP element is derived from the local host name and might not match the domain-name VIP parameter.
  • derive-fqdn-from-domain-name — When set to true, the FQDN is the value of domain_name. If the domain_name parameter is unset an error is raised. By default, derive-fqdn-from-domain-name is set to false.
  • netmask — The IPv4 netmask. Required if the VS accepts IPv4 traffic.
  • floating=[ "true" | "false" ] — (Optional; case-sensitive) Only used if MATRIXX is implemented in a cloud environment that does not allow floating VIPs. In a cloud environment, set all VIPs to floating="false". The default is "true".
  • prefix=[ 1...128 ] — Integer. The IPv6 traffic prefix length. Required if the VS accepts IPv6 traffic.

Example of an IPv4 VIP address configuration:

 <vip-addresses>
        <vip name="vip1" if-name="eth0" address="10.10.20.1" netmask="32"/>
        <vip name="vip1" if-name="eth0" address="10.10.20.2" netmask="32"/>
        <vip name="vip1" if-name="eth0" address="10.10.20.3" netmask="32"/>
        <vip name="vip1" if-name="eth0" address="10.10.20.4" netmask="32"/>
    </vip-addresses>

Example of an IPv6 VIP address configuration:

 <vip-addresses>
        <vip name="vip-ext-v6" ifName="eth4" address="2001:0db8:0:f101::1" prefix="64"/>
         . . .      
    </vip-addresses>

Example of an IPv4 VIP address configuration in a cloud environment:

 <vip-addresses>
        <vip name="vip1" if-name="eth0" address="192.0.2.1" netmask="32" floating="false"/>
         ...
   </vip-addresses>

VIPs That Accept Connections from All Available Interfaces

The any, any4, and any6 VIPs, when created, accept connections from any interface, instead of requiring explicit IP addresses or domain names. When these VIPs are present, specify vip="any" or vip="any4" or vip=any6" in a virtual server (VS) definition to cause the virtual server to accept connections from all interfaces (or all IPv4 interfaces. or all IPv6 interfaces) on a particular VS port.

Set the default-vip-any-enabled attribute to 1 to enable creation of the any, any4, and any6 VIPs.

  <parameters
        .....
        default-vip-any-address-family="1"
  />
Note: The any, any4, and any6 VIPs are applicable only to stand-alone TRA deployments, and not where the TRA is part of a high availability (HA) pair.

If the vip attribute is omitted from VS definitions, vip="any" is used by default. For example both vsVipAny and vsVipImplicitAny below use the any VIP:

    <virtual-servers>
        <vs name="vsVipAny" vip="any" port="7777" protocol="tcp" pool="tcpPool4" />
        <vs name="vsVipImplicitAny" port="8888" protocol="tcp" pool="tcpPool4" />
        <vs name="vsVipAny4" vip="any4" port="17777" protocol="tcp" pool="tcpPool4" />
        <vs name="vsVipAny6" vip="any6" port="27778" protocol="tcp" pool="tcpPool6" />
    </virtual-servers>

If the default-vip-any-enabled attribute is set, the any, any4, and any6 VIPs are created, even if they are not used. If the If the default-vip-any-enabled attribute is not set, the any, any4, and any6 VIPs are only created if VS definitions implicitly or explicitly use them.

MATRIXX Support recommends that you decide if you need the any, any4, and any6 VIPs during configuration and then set the default-vip-any-enabled attribute accordingly.

The TRA conducts extra port collision validations for VSs with VIPs of any. If a particular port is specified for a virtual server with a VIP of any, that port must not be specified for any of the rest of the VSs. Interface validity checks for any VIPs would always find at least the localhost interface to be valid, and therefore are skipped.

The default-vip-any-address-family attribute in the parameters element can be used to restrict the any behavior to the IPv4 or IPv6 address families. A value of 4 for the default-vip-any-address-family parameter specifies IPv4 addresses, and a value of 6 specifies IPv6. For example:

  <parameters
        .....
        default-vip-any-address-family="4"
  />

Create your own any VIP if for any reason the default VIPs are not enough. VIPs where the address attribute specifies any define any interface on the system. If the address attribute specifies any, any4, or any6, it is not necessary to specify the if-name, floating, netmask, or prefix attributes for the VIP.

For example where a typical VIP has the following definition:

  <vip-addresses>
        <vip name="vip-ext" if-name="lo" floating="false" address="127.0.0.100" netmask="32"/>
  </vip-addresses>

The following VIP definitions fully define VIPs for any address, any IPv4 address, and any IPv6 address, respectively (if for some reason the default any, any4, and any6 VIPs are not sufficient.)

  <vip-addresses>
        <vip name="myAnyAddress" address="any"/>
        <vip name="myExplicitAnyIPv4" address="any4"/>
        <vip name="myExplicitAnyIPv6" address="any6"/>
  </vip-addresses>
Note: The any VIP has a derive-fqdn-from-domain-name set to false by default.

VIP Command Timeout

The vip-cmd-timeout-msec attribute in the top-level parameters element of the tra_config.xml file can be used to control the amount of time allowed for a VIP command to complete. If omitted, the timeout value is 1 second (1000 milliseconds.) For example, the setting shown below sets the timeout value at 1.5 seconds:

  <parameters
        .....
        vip-cmd-timeout-msec="1500"
  />