Virtual servers (dlbv3)

Virtual servers are combination of an IP and a port that distribute traffic among nodes in a pool. You can associate a virtual server with one or more pools.

Use the following operations to view and manage virtual servers configured in the load balancer.

Retrieve virtual server details

Retrieve information about all virtual servers configured in the load balancer, including configuration data and status information.

GET /virtuals

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "VIP-127.0.0.1-80",
            "address": "127.0.0.1",
            "addressStatus": "yes",
            "appService": null,
            "auth": {},
            "autoLasthop": "default",
            "bwcPolicy": null,
            "clonePools": {},
            "cmpEnabled": "yes",
            "connectionLimit": 0,
            "description": null,
            "fallbackPersistence": null,
            "gtmScore": 0,
            "ipForward": "",
            "ipProtocol": "tcp",
            "lastHopPool": null,
            "mask": "255.255.255.255",
            "metadata": {},
            "mirror": "disabled",
            "mobileAppTunnel": "disabled",
            "nat64": "disabled",
            "partition": "Common",
            "persist": {
                "cookie": {
                    "default": "yes"
                }
            },
            "policies": "none",
            "pool": {},
            "port": {
                "type": "equal",
                "value": 80
            },
            "profiles": {
                "http": {
                    "context": "all"
                },
                "tcp": {
                    "context": "all"
                }
            },
            "rateClass": null,
            "rateLimit": "disabled",
            "rateLimitDstMask": 0,
            "rateLimitMode": "object",
            "rateLimitSrcMask": 0,
            "relatedRules": null,
            "rules": null,
            "securityLogProfiles": {},
            "source": "0.0.0.0/0",
            "sourceAddressTranslation": {
                "pool": "none",
                "type": "none"
            },
            "sourcePort": "preserve",
            "synCookieStatus": "not-activated",
            "trafficClasses": {},
            "translateAddress": "enabled",
            "translatePort": "enabled",
            "vlans": {},
            "vsIndex": 7
        }
    ]
}

Add a virtual server

Add a virtual server configuration to the load balancer. When you add a virtual server configuration, do not specify an IP address unless you want to add a configuration to an existing address on a unique port.

POST /virtuals

Request body

{
  "address": "172.16.1.160",
  "source": "0.0.0.0\/0",
  "ipProtocol": "tcp",
  "ipForward": "disabled",
  "gtmScore": 0,
  "description": "New Description",
  "fallbackPersistence": null,
  "port": {
    "value": 80,
    "type": "equal"
  },
  "connectionLimit": 99
}

Response

Returns event information for the request. Use the event ID to get event status and output information.

{
  "data": {
    "eventId": "02d1ba2a-0edf-4583-8e2c-ab0b54c78193",
    "status": "PROCESSING",
    "resource": "Virtuals",
    "eventRef": "/events/<eventId:str>",
    "timestamp": "2016-03-18T03:18:35.5077939Z"
  }
}

Retrieve virtual server statistics

Retrieve statistical information for all virtual servers configured in the load balancer.

GET /virtuals/stats

This operation does not accept a request body.

Response

{
    "data": [
        {
            "clientside": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "cmpEnableMode": "all-cpus",
            "cmpEnabled": "enabled",
            "csMaxConnDur": 0,
            "csMeanConnDur": 0,
            "csMinConnDur": 0,
            "destination": "127.0.0.1:80",
            "ephemeral": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "fiveMinAvgUsageRatio": 0,
            "fiveSecAvgUsageRatio": 0,
            "id": "VIP-127.0.0.1-80",
            "name": "VIP-127.0.0.1-80",
            "oneMinAvgUsageRatio": 0,
            "status": {
                "availabilityState": "unknown",
                "enabledState": "enabled",
                "statusReason": "The children pool member(s) either don't have service checking enabled, or service check results are not available yet"
            },
            "syncookie": {
                "accepts": 0,
                "hwAccepts": 0,
                "hwSyncookies": 0,
                "hwsyncookieInstance": 0,
                "rejects": 0,
                "swsyncookieInstance": 0,
                "syncacheCurr": 0,
                "syncacheOver": 0,
                "syncookies": 0
            },
            "syncookieStatus": "not-activated",
            "totRequests": 0
        },
        {
            "clientside": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "cmpEnableMode": "all-cpus",
            "cmpEnabled": "enabled",
            "csMaxConnDur": 0,
            "csMeanConnDur": 0,
            "csMinConnDur": 0,
            "destination": "127.0.0.1:443",
            "ephemeral": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "fiveMinAvgUsageRatio": 0,
            "fiveSecAvgUsageRatio": 0,
            "id": "TestVip-DONT-DELETE",
            "name": "TestVip-DONT-DELETE",
            "oneMinAvgUsageRatio": 0,
            "status": {
                "availabilityState": "unknown",
                "enabledState": "enabled",
                "statusReason": "The children pool member(s) either don't have service checking enabled, or service check results are not available yet"
            },
            "syncookie": {
                "accepts": 0,
                "hwAccepts": 0,
                "hwSyncookies": 0,
                "hwsyncookieInstance": 0,
                "rejects": 0,
                "swsyncookieInstance": 0,
                "syncacheCurr": 0,
                "syncacheOver": 0,
                "syncookies": 0
            },
            "syncookieStatus": "not-activated",
            "totRequests": 0
        },
        {
            "clientside": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "cmpEnableMode": "all-cpus",
            "cmpEnabled": "enabled",
            "csMaxConnDur": 0,
            "csMeanConnDur": 0,
            "csMinConnDur": 0,
            "destination": "127.0.0.1:443",
            "ephemeral": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "fiveMinAvgUsageRatio": 0,
            "fiveSecAvgUsageRatio": 0,
            "id": "VIP-127.0.0.1-443",
            "name": "VIP-127.0.0.1-443",
            "oneMinAvgUsageRatio": 0,
            "status": {
                "availabilityState": "available",
                "enabledState": "enabled",
                "statusReason": "The virtual server is available"
            },
            "syncookie": {
                "accepts": 0,
                "hwAccepts": 0,
                "hwSyncookies": 0,
                "hwsyncookieInstance": 0,
                "rejects": 0,
                "swsyncookieInstance": 0,
                "syncacheCurr": 0,
                "syncacheOver": 0,
                "syncookies": 0
            },
            "syncookieStatus": "not-activated",
            "totRequests": 0
        },
        {
            "clientside": {
                "bitsIn": 2784874696,
                "bitsOut": 13416053656,
                "curConns": 5,
                "maxConns": 61,
                "pktsIn": 5698557,
                "pktsOut": 1560895,
                "totConns": 1485109
            },
            "cmpEnableMode": "all-cpus",
            "cmpEnabled": "enabled",
            "csMaxConnDur": 14319373760,
            "csMeanConnDur": 7972,
            "csMinConnDur": 56,
            "destination": "any:any",
            "ephemeral": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "fiveMinAvgUsageRatio": 0,
            "fiveSecAvgUsageRatio": 0,
            "id": "VS-FORWARDING",
            "name": "VS-FORWARDING",
            "oneMinAvgUsageRatio": 0,
            "status": {
                "availabilityState": "unknown",
                "enabledState": "enabled",
                "statusReason": "The children pool member(s) either don't have service checking enabled, or service check results are not available yet"
            },
            "syncookie": {
                "accepts": 0,
                "hwAccepts": 0,
                "hwSyncookies": 0,
                "hwsyncookieInstance": 0,
                "rejects": 2,
                "swsyncookieInstance": 0,
                "syncacheCurr": 0,
                "syncacheOver": 0,
                "syncookies": 0
            },
            "syncookieStatus": "not-activated",
            "totRequests": 0
        }
    ]
}

Retrieve virtual server information by ID

Retrieve information about the specified virtual server.

GET /virtuals/{virtualId}

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "VIP-127.0.0.1-80",
            "address": "127.0.0.1",
            "addressStatus": "yes",
            "appService": "none",
            "auth": {},
            "autoLasthop": "default",
            "bwcPolicy": null,
            "clonePools": {},
            "cmpEnabled": "yes",
            "connectionLimit": 0,
            "description": "none",
            "fallbackPersistence": null,
            "gtmScore": 0,
            "ipForward": "",
            "ipProtocol": "tcp",
            "lastHopPool": null,
            "mask": "255.255.255.255",
            "metadata": null,
            "mirror": "disabled",
            "mobileAppTunnel": "disabled",
            "nat64": "disabled",
            "partition": "Common",
            "persist": {
                "cookie": {
                    "default": "yes"
                }
            },
            "policies": {},
            "pool": {},
            "port": {
                "type": "equal",
                "value": 80
            },
            "profiles": {
                "http": {
                    "context": "all"
                },
                "tcp": {
                    "context": "all"
                }
            },
            "rateClass": null,
            "rateLimit": "disabled",
            "rateLimitDstMask": 0,
            "rateLimitMode": "object",
            "rateLimitSrcMask": 0,
            "relatedRules": null,
            "rules": null,
            "securityLogProfiles": {},
            "source": "0.0.0.0/0",
            "sourceAddressTranslation": {
                "pool": "none",
                "type": "none"
            },
            "sourcePort": "preserve",
            "synCookieStatus": "not-activated",
            "trafficClasses": {},
            "translateAddress": "enabled",
            "translatePort": "enabled",
            "vlans": {},
            "vsIndex": 7
        }
    ]
}

Update a virtual server by ID

Update the virtual server on a specified device by using the virtual ID.

When you update an existing virtual server, you must specify the address and port in the request.

PUT /virtuals/{virtualId}

Request body

{
    "address": "172.16.1.160",
    "source": "0.0.0.0\/0",
    "ipProtocol": "tcp",
    "ipForward": "disabled",
    "gtmScore": 0,
    "description": "New Description updated",
    "fallbackPersistence": null,
    "port": {
        "value": 80,
        "type": "equal"
    },
    "connectionLimit": 99
}

Response

Returns event information for the request. Use the event ID to get event status and output information.

{
    "data": {
        "eventId": "02d1ba2a-0edf-4583-8e2c-ab0b54c78193",
        "status": "PROCESSING",
        "resource": "<virtualId:str>",
        "eventRef": "/events/<eventId:str>",
        "timestamp": "2016-03-18T03:18:35.5077939Z"
    }
}

Remove a virtual server

Remove a specified virtual server from the load balancer configuration.

DELETE /virtuals/{virtualId}

This operation does not accept a request body.

Response

Returns event information for the request. Use the event ID to get event status and output information.

{
    "data": {
        "eventId": "<eventid:str>",
        "status": "PROCESSING",
        "resource": "<virtualId:str>",
        "timestamp": "2016-03-18T03:18:35.5077939Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Retrieve persistent profiles for a virtual server

Retrieve information about the persistent profiles configured for a virtual server. These profiles enable tracking and storing session data to ensure that client requests are directed to the same pool member throughout the life of a session or during subsequent sessions.

GET /virtuals/{virtualId}/persists

This operation does not accept a request body.

Response

{
    "data": [
        {
          "profileName": "my-cool-persist"
        }

    ]
}

Update a virtual server persistent profile

Update the persistent profile for a virtual server.

PUT /virtuals/{virtualId}/persists

Request body

{
    "names": [
    "hash"
    ]
}

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<virtualId:str>",
        "timestamp": "2016-03-08T17:22:33.6249648Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Create a persistent profile

Create a persistent profile configuration for a specified virtual server.

POST /virtuals/{virtualId}/persists

This operation does not accept a request body.

Request body

{
    "names": [
        "source_addr",
        "dest_addr"
    ]
}

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<virtualId:str>",
        "timestamp": "2016-03-08T17:22:33.6249648Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Remove a persistent profile

Remove a persistent profile configuration from a specified virtual server.

DELETE /virtuals/{virtualId}/persists

This operation does not accept a request body.

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<virtualId:str>",
        "eventRef": "/events/<eventId:str>",
        "timestamp": "2016-03-18T03:18:35.5077939Z"
    }
}

Retrieve virtual server information by ID

Retrieve statistics for a specified virtual server configured in the load balancer.

GET /virtuals/{virtualId}/stats

This operation does not accept a request body.

Response

Retrieve a list of stats.

{
    "data": [
        {
            "clientside": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "cmpEnableMode": "all-cpus",
            "cmpEnabled": "enabled",
            "csMaxConnDur": 0,
            "csMeanConnDur": 0,
            "csMinConnDur": 0,
            "destination": "127.0.0.1:80",
            "ephemeral": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "fiveMinAvgUsageRatio": 0,
            "fiveSecAvgUsageRatio": 0,
            "id": "VIP-127.0.0.1-80",
            "name": "VIP-127.0.0.1-80",
            "oneMinAvgUsageRatio": 0,
            "status": {
                "availabilityState": "unknown",
                "enabledState": "enabled",
                "statusReason": "The children pool member(s) either don't have service checking enabled, or service check results are not available yet"
            },
            "syncookie": {
                "accepts": 0,
                "hwAccepts": 0,
                "hwSyncookies": 0,
                "hwsyncookieInstance": 0,
                "rejects": 0,
                "swsyncookieInstance": 0,
                "syncacheCurr": 0,
                "syncacheOver": 0,
                "syncookies": 0
            },
            "syncookieStatus": "not-activated",
            "totRequests": 0
        }
    ]
}

Retrieve virtual pools by virtual ID

Retrieve information about the virtual pools associated with a specified virtual server.

GET /virtuals/{virtualId}/pool

This operation does not accept a request body.

Response

{
    "data": [
        {
            "name": "test_pool"
        }
    ]
}