Virtual IPs

A virtual IP (VIP) makes a load balancer accessible by clients. The load balancing service supports either a public VIP, routable on the public Internet, or a ServiceNet address, routable only within the region in which the load balancer resides.

Note

All load balancers must have at least one virtual IP associated with them at all times. Attempting to delete the last virtual IP results in a 400 (badRequest) fault. To bulk-delete virtual IPs, provide a query parameter list of virtual ip IDs. For example: virtualips?id='virtualIpId' &id='virtualIpId'. The current default limit is ten IDs per request. Any and all configuration data is immediately purged and is not recoverable. If one or more of the items in the list cannot be removed due to its current status, a 400 (badRequest) is returned along with the IDs of the ones the system identified as potential failures for this request.

Table. Virtual IP types

Name

Description

PUBLIC

An address that is routable on the public Internet.

SERVICENET

An address that is routable only on ServiceNet.

The following table lists the required and optional attributes:

Table. Required and optional attributes

Name

Description

Required

ipVersion

IP Version: must be set to IPV6.

Yes

type

Type of virtualIp to add:

  • PUBLIC - Virtual IP on the public internet.

  • SERVICENET - Virtual IP on the Rackspace private ServiceNet.

Yes

List virtual IPs

GET /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips

Lists virtual IPs that are associated with a specified load balancer.

The following table shows the possible response codes for this operation:

Response Code

Name

Description

200

Success

Request succeeded.

400

Bad Request

The request is missing one or more elements, or the values of some elements are invalid.

401

Unauthorized

You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token.

404

Not Found

The requested item was not found.

413

Over Limit

The number of items returned is above the allowed limit.

422

ImmutableEntity

This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified.

500

Load Balancer Fault

The load balancer has experienced a fault.

503

Service Unavailable

The service is not available.

Request

The following table shows the URI parameters for the request:

Name

Type

Description

{account}

String

The ID for the tenant or account in a multi- tenancy cloud.

{loadBalancerId}

String

The ID for the load balancer.

This operation does not accept a request body.

Response

Example List virtual IPs: JSON response

{
    "virtualIps": [
        {
            "address": "172.25.0.17",
            "id": 17,
            "type": "PUBLIC",
            "ipVersion": "IPV4"
        },
        {
            "address": "fd00:0000:0000:0101:22d6:5749:0000:0011",
            "id": 17,
            "type": "PUBLIC",
            "ipVersion": "IPV6"
        }
    ]
}

Example List virtual IPs: XML response

<virtualIps xmlns="http://docs.openstack.org/loadbalancers/api/v1.0">
    <virtualIp id="17" address="172.25.0.17" ipVersion="IPV4" type="PUBLIC"/>
    <virtualIp id="17" address="fd00:0000:0000:0101:22d6:5749:0000:0011" ipVersion="IPV6" type="PUBLIC"/>
</virtualIps>

Example List atom virtual IPs: ATOM/XML response

<feed xmlns="http://www.w3.org/2005/Atom">
    <link rel="next" href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips.atom?page=2"/>
    <title type="text">Virtual Ips Feed</title>
    <id>5806065-loadbalancers-347763-virtualips</id>
    <author>
        <name>Rackspace Cloud</name>
    </author>
    <entry>
        <title type="text">Virtual Ip Successfully Added</title>
        <summary type="text">Virtual ip successfully added with address: '184.106.24.17', type: 'PUBLIC'</summary>
        <author>
            <name>cloudUser</name>
        </author>
        <link href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips/919"/>
        <id>5806065-loadbalancers-347763-virtualips-919-20193501825450</id>
        <category term="CREATE"/>
        <updated>2019-12-16T18:25:45.000Z</updated>
    </entry>
    <entry>
        <title type="text">Virtual Ip Successfully Added</title>
        <summary type="text">Virtual ip successfully added with address: '2001:4801:79f1:0100:22d6:5749:0000:0001', type: 'PUBLIC'</summary>
        <author>
            <name>cloudUser</name>
        </author>
        <link href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips/9078732"/>
        <id>5806065-loadbalancers-347763-virtualips-9078732-20193501825450</id>
        <category term="CREATE"/>
        <updated>2019-12-16T18:25:45.000Z</updated>
    </entry>
</feed>

Add virtual IP version 6

POST /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips

Adds virtual IP version 6.

The following table shows the possible response codes for this operation:

Response Code

Name

Description

202

Success

Request succeeded.

400

Bad Request

The request is missing one or more elements, or the values of some elements are invalid.

401

Unauthorized

You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token.

404

Not Found

The requested item was not found.

413

Over Limit

The number of items returned is above the allowed limit.

422

ImmutableEntity

This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified.

500

Load Balancer Fault

The load balancer has experienced a fault.

503

Service Unavailable

The service is not available.

Request

The following table shows the URI parameters for the request:

Name

Type

Description

{account}

String

The ID for the tenant or account in a multi- tenancy cloud.

{loadBalancerId}

String

The ID for the load balancer.

Example Add virtual IP version 6: JSON request

{
    "type":"PUBLIC",
    "ipVersion":"IPV6"
}

Example Add virtual IP version 6: XML request

<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0" type="PUBLIC" ipVersion="IPV6" />

Example Add shared virtual IP version 6: JSON request

{
    "loadBalancer": {
        "name": "a-new-loadbalancer_sharedIP",
            "port": 53,
            "protocol": "TCP",
            "algorithm": "ROUND_ROBIN",
            "nodes": [{
                            "port": "80",
                            "condition": "ENABLED",
                            "address": "23.253.151.92"
                    }
            ],
            "virtualIps": [{
                    "id": 9039389

            }]
        }
}

Example Add shared virtual IP version 6: XML request

<loadBalancer xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
name="a-new-loadbalancer_sharedIP"
port="80"
protocol="HTTP">
<virtualIps>
    <virtualIp id="9039381"/>
</virtualIps>
<nodes>
    <node address="10.1.1.1" port="80" condition="ENABLED"/>
</nodes>
</loadBalancer>

Response

Example Add virtual IP version 6: JSON response

{
    "address":"fd24:f480:ce44:91bc:1af2:15ff:0000:0002",
    "id":9000134,
    "type":"PUBLIC",
    "ipVersion":"IPV6"
}

Example Add virtual IP version 6: XML response

<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
           id="9000133"
           address="fd24:f480:ce44:91bc:1af2:15ff:0000:0001"
           ipVersion="IPV6"
           type="PUBLIC" />

Example Add shared virtual IP version 6: JSON response

{
    "address":"fd24:f480:ce44:91bc:1af2:15ff:0000:0002",
    "id":9000137,
    "type":"PUBLIC",
    "ipVersion":"IPV6"
}

Example Add shared virtual IP version 6: XML response

<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
           id="9000137"
           address="fd24:f480:ce44:91bc:1af2:15ff:0000:0001"
           ipVersion="IPV6"
           type="PUBLIC" />

Bulk-delete virtual IPs

DELETE /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips

Bulk-deletes specified virtual IPs.

Note

All load balancers must have at least one virtual IP associated with them at all times. Attempting to delete the last virtual IP results in a 400 (badRequest) fault. To bulk-delete virtual IPs, provide a query parameter list of virtual ip IDs, for example: /virtualips?id=virtualIpId&id=virtualIpId.

The current default limit is ten IDs per request. Any and all configuration data is immediately purged and is not recoverable. If one or more of the items in the list cannot be removed due to its current status, a 400 (badRequest) is returned along with the IDs of the ones the system identified as potential failures for this request.

The following table shows the possible response codes for this operation:

Response Code

Name

Description

202

Success

Request succeeded.

400

Bad Request

The request is missing one or more elements, or the values of some elements are invalid.

401

Unauthorized

You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token.

404

Not Found

The requested item was not found.

413

Over Limit

The number of items returned is above the allowed limit.

422

ImmutableEntity

This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified.

500

Load Balancer Fault

The load balancer has experienced a fault.

503

Service Unavailable

The service is not available.

Request

The following table shows the URI parameters for the request:

Name

Type

Description

{account}

String

The ID for the tenant or account in a multi- tenancy cloud.

{loadBalancerId}

String

The ID for the load balancer.

The following table shows the query parameters for the request:

Name

Type

Description

virtualIpId

String

The ID for the virtual IP.

This operation does not accept a request body.

Response

This operation does not return a response body.

Delete virtual IP

DELETE /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips/{virtualIpId}

Deletes a specified virtual IP.

The following table shows the possible response codes for this operation:

Response Code

Name

Description

200

Success

Request succeeded.

401

Unauthorized

You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token.

404

Not Found

The requested item was not found.

422

ImmutableEntity

This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified.

500

Load Balancer Fault

The load balancer has experienced a fault.

503

Service Unavailable

The service is not available.

Request

The following table shows the URI parameters for the request:

Name

Type

Description

{account}

String

The ID for the tenant or account in a multi- tenancy cloud.

{loadBalancerId}

String

The ID for the load balancer.

{virtualIpId}

String

The ID for the virtual IP.

This operation does not accept a request body.

Response

This operation does not return a response body.